文章目录

  • 有用链接
  • supervisor添加第三方Home Assistant Community Add-ons
  • Samba share
  • NodeRed
  • Home Assistant Add-on: Terminal & SSH
  • ESPHOME
  • 显示组件
  • 显示图片以及gif
  • 图片
  • 动画
  • PWM调光
  • ESP32相机组件
  • 输入字符
  • 显示时间
  • ESP32蓝牙组件配合Itag使用
  • 显示温度等各种参数
  • 使用树莓派自带摄像头
  • 安装hacs
  • 主题更改
  • 无线连接
  • 推荐用命令行方式
  • nmcli
  • PVE安装homeassistant
  • 内置VScode可以和ESPhome连用
  • vscode homeassistant插件连接配置
  • vscode esphome插件
  • 本地文件访问,/local/file
  • 相机实体
  • mjpeg IP 相机
  • MQTT
  • homeassistant集成
  • tcp集成
  • 修改hosts
  • 彩云天气
  • vscode显示当前打开的文件夹中没有git存储库,但实际上有.git文件夹。
  • samba备份
  • google盘备份
  • ha手动修改网络
  • 易微联接入
  • device_tracker
  • ping的方式
  • https ssl nginx反向代理
  • 挂载nas
  • 支持语言
  • 小米
  • 获取小米设备token
  • 小米设备接入
  • 电量电费
  • pve_homeassistant物理音频使用

有用链接

pi安装homeassistantHACSubuntu测试有问题,debian10没有问题supervisor安装一键安装supervisor脚本地址homeassistant开发者文档docker学习接入电网

安装完了不是立马可以进入,而是要等系统安装一系列依赖等,还有就是addon可能也不会很快出来!!,最好保证网络通畅,让其更新.

supervisor添加第三方Home Assistant Community Add-ons

教程官网 在gitee上面创建一个同步仓库URL为https://github.com/hassio-addons/repository

https://gitee.com/bingooo/hassio-addons-repository.git

然后

使用supervisor 管理docker homeassistant docker supervisor_Text

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_02


然后添加自己同步的gitee链接即可64位的可以用vscode等

必须开启高级模式才能够使用ssh等

使用supervisor 管理docker homeassistant docker supervisor_Text_03

Samba share

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_04


记住,可以要在Windows凭据里面添加这个密码,homeassistant samba有时候不会询问你的密码

使用supervisor 管理docker homeassistant docker supervisor_git_05


使用supervisor 管理docker homeassistant docker supervisor_homeassistant_06

NodeRed

关闭ssl才能够用http访问

使用supervisor 管理docker homeassistant docker supervisor_IP_07

Home Assistant Add-on: Terminal & SSH

安装完后,配置

使用supervisor 管理docker homeassistant docker supervisor_Text_08

authorized_keys: ["这里是你的公钥"]
apks: []
password: '这里是你的密码'
server:
  tcp_forwarding: false

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_09


网络要设置一个端口才可以访问

ssh No supported authentication methods available (server sent:publickey,keyboard-interactive)

使用supervisor 管理docker homeassistant docker supervisor_Text_10


如果用mobaxterm登录报ssh No supported authentication methods available (server sent:publickey,keyboard-interactive)注意:用户名是root!!!

则在编辑栏把私钥地址填入

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_11

ESPHOME

在插入nodemcu后重新进入一下界面即可显示

使用supervisor 管理docker homeassistant docker supervisor_IP_12

turn_on_action 以及 on_turn_on区别一定要分清

显示组件

显示组件SSD1306 OLED显示器DHT温度+湿度传感器

esphome:
  name: nodemcu
  platform: ESP8266
  board: nodemcuv2

wifi:
  ssid: "V10"
  password: "13699689976"

  # Enable fallback hotspot (captive portal) in case wifi connection fails
  ap:
    ssid: "Nodemcu Fallback Hotspot"
    password: "0yKsM7vxVPKr"

captive_portal:

# Enable logging
logger:

# Enable Home Assistant API
api:
  password: "1152679377"

ota:
  password: "1152679377"

switch:
  - platform: gpio
    name: "led"
    id: led
    pin: 16
    inverted: yes
    #初始化为off
    restore_mode: ALWAYS_OFF
i2c:
  sda: D2 
  scl: D1

sensor:
  - platform: dht
    pin: D7
    temperature:
      name: "Living Room Temperature"
      id: temperature1
    humidity:
      id: humidity1
      name: "Living Room Humidity"
    update_interval: 10s
    model: DHT11

font:
  - file: "fonts/SIMYOU.ttf"
    id: my_font
    size: 12

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.print(0, 0, id(my_font), "WillPower:");
      it.printf(0, 15, id(my_font), "Temp: %.1f°C", id(temperature1).state);
      it.printf(0, 30, id(my_font), "Humidity: %.1f%%", id(humidity1).state);
      if (id(led).state) {
        it.print(0, 45, id(my_font), "state: ON");
      } 
      else {
        it.print(0, 45, id(my_font), "state: OFF");
      }

使用supervisor 管理docker homeassistant docker supervisor_git_13

显示图片以及gif

图片

首先图片放的位置挨着你的yaml文件就行

使用supervisor 管理docker homeassistant docker supervisor_Text_14


然后在image中包含你的文件,不用预处理文件,这点esphome会帮你处理的

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_15

动画

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_16

PWM调光

ESP8266软件PWM输出输出组件

高速风扇

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_17


pwm灯形式

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_18

output:
  - platform: esp8266_pwm
    id: pwm_output
    pin: D4
    frequency: 100 Hz 
  - platform: esp8266_pwm
    id: ledpwm
    pin: D0
    frequency: 100 Hz 
    inverted: yes
light:
  - platform: monochromatic
    output: ledpwm
    name: "LED"
    id: led
output:
  - platform: esp8266_pwm
    pin: D0
    frequency: 1000 Hz
    id: pwm_output
    inverted: yes
fan:
  - platform: speed
    output: pwm_output
    name: "Living Room Fan"

ESP32相机组件

ESP32相机组件

使用supervisor 管理docker homeassistant docker supervisor_IP_19

输入字符

使用supervisor 管理docker homeassistant docker supervisor_Text_20

# 首先要在homeassistant中添加
# Example configuration.yaml entries
input_text:
  text1:
    name: Text 1
    initial: Some Text
  text2:
    name: Text 2
    min: 8
    max: 40
  text3:
    name: Text 3
    pattern: "[a-fA-F0-9]*"
  text4:
    name: Text 4
    mode: password

#然后在esphome中调用homeassistant的text_sensor组件
text_sensor:
  - platform: homeassistant
    id: ssd1306input
    entity_id: input_text.text1 #这里调用第一个其实text1就是其id了
# 只要这个文本改变了,那么就会在esphome中也可以用,比如ssd1306中
display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.printf(0, 0, id(my_font),"Tmp: %s", id(ssd1306input).state.c_str());
      it.printf(0, 15, id(my_font), "Temp: %.1f°C", id(temperature1).state);
      it.printf(0, 30, id(my_font), "Humidity: %.1f%%", id(humidity1).state);
      if (id(led).state) {
        it.print(0, 45, id(my_font), "state: ON");
      } 
      else {
        it.print(0, 45, id(my_font), "state: OFF");
      }

显示时间

display:
  - platform: ssd1306_i2c
    model: "SSD1306 128x64"
    address: 0x3C
    lambda: |-
      it.strftime(0, 0, id(my_font1), "%H:%M:%S", id(homeassistant_time).now());

ESP32蓝牙组件配合Itag使用

使用supervisor 管理docker homeassistant docker supervisor_Text_21


ESP32蓝牙组件连接itagESPHOME舵机控制

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_22


可以使用蓝牙调试助手去获取itag的mac地址

esphome:
  name: nodemcu
  platform: ESP8266
  board: nodemcuv2
  on_boot:
    then:
      lambda: |-
        id(door).publish_state(false);#在开机赋值

# Example configuration entry
servo:
  - id: my_servo
    output: pwm_output
    
# Example output platform
# On ESP32, use ledc output
output:
  - platform: esp8266_pwm
    id: pwm_output
    pin: D4
    frequency: 50 Hz 
# Example configuration entry
binary_sensor:
  - platform: homeassistant
    id: blacktag
    entity_id: binary_sensor.black_itag_button
    on_click:
      then:
      - servo.write:
          id: my_servo
          level: !lambda |-
            if(id(door).state)
            {
              id(door).publish_state(false);
              return 1.0;
            }
            else
            {
              id(door).publish_state(true);
              return -1.0;
            }
  - platform: template
    name: "Door"
    id: door

显示温度等各种参数

sensor:
  # Minimal configuration of the standard time and date sensor
  - platform: time_date
    display_options:
      - 'date_time_iso'
      - 'time'
  # Build on the standard sensor to produce one that can be customized
  - platform: template
    sensors:
      time_formatted:
        friendly_name: "Date and time"
        value_template: "{{ as_timestamp(states('sensor.date_time_iso')) | timestamp_custom('%A %B-%d %H:%M:%S') }}"
        icon_template: mdi:calendar-clock
  # 平台名,不用多说
  - platform: command_line
    name: CPU Temperature
    # 用于获取温度数据的命令
    command: "cat /sys/class/thermal/thermal_zone0/temp"
    #传感器数据的单位
    unit_of_measurement: "°C"
    # 若未定义模板,则直接将 command 传回的数据作为传感器的值。
    value_template: '{{ value | multiply(0.001) | round(1) }}'
    #(可选)更新间隔,默认为 60s
    scan_interval: 20
    #(可选)命令执行超时设置,默认为 15s
    command_timeout: 15

使用树莓派自带摄像头

usermod -a -G video hass将用户加入摄像头的使用组中,然后重启
Raspberry Pi Camera

安装hacs

github链接 在上述链接下载最新的hacs.zip

然后在Homeassistant的根目录新建custom_componentswww两个文件夹,再在custom_components文件夹中新建hacs文件夹,将下载的hacs.zip解压到hacs文件夹中,然后重启homeassistant,然后在集成中搜索hacs安装

然后

使用supervisor 管理docker homeassistant docker supervisor_IP_23


打开这个网址,将其中的key填入重启即可


主题更改

使用supervisor 管理docker homeassistant docker supervisor_IP_24


在configuration.yaml中加入

无线连接

将u盘插入电脑在boot分区建立文件夹\CONFIG\network
然后在network中新建文件为my-network 然后在其中填入一下wifi信息即可

[connection]
id=my-network
uuid=72111c67-4a5d-4d5c-925e-f8ee26efb3c3
type=802-11-wireless

[802-11-wireless]
mode=infrastructure
ssid=MY_SSID
# Uncomment below if your SSID is not broadcasted
#hidden=true

[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=MY_WLAN_SECRET_KEY

[ipv4]
method=auto

[ipv6]
addr-gen-mode=stable-privacy
method=auto

参考链接

使用supervisor 管理docker homeassistant docker supervisor_IP_25

推荐用命令行方式

键盘键入ctrl+alt+F2进入tty2

然后输入

nmcli radio 保证wifi已经启用

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_26


现在扫描并列出可用的 wifi 访问:

nmcli device wifi rescan

nmcli device wifi

使用supervisor 管理docker homeassistant docker supervisor_Text_27


连接到无线网络:

在您的 ssid 和密码周围使用引号:

nmcli device wifi connect "YOUR_SSID" password "YOUR_WIFI_PASSWORD"

这将尝试连接到您的 SSID,如果成功,将为您生成网络配置文件。

输出将类似于

“Device ‘wlan0’ successfully activated with…”

然后再次检查您的连接:

nmcli con show

使用supervisor 管理docker homeassistant docker supervisor_git_28


您应该看到至少两个配置文件并且都是绿色的。

如果您看到一些想要删除的配置文件,可以使用以下方法删除它们:

nmcli connection delete CONNECTION_NAME

使用supervisor 管理docker homeassistant docker supervisor_git_29


这些在您的网络上可能有两个单独的 IP 地址:一个用于以太网,一个用于 wifi。

您可以使用以下方法检查 IP 地址:ip addr show 您可以从 Supervisor > System > Host card 在 UI 中设置静态 IP 地址,

使用supervisor 管理docker homeassistant docker supervisor_IP_30


但以下步骤将向您展示如何使用 nmcli 设置它:

nmcli connection show 列出您的连接

nmcli con show "Your Connection Name" 列出该连接的当前属性

nmcli con edit "Your Connection Name" 进入该连接的编辑模式

nmcli> print ipv4 将向您显示该连接的 ipv4 属性

== 这步开始!==
添加您的静态 IP 地址(手动方法选择“是”);
nmcli> set ipv4.addresses 192.168.1.10/24
Do you also want to set ‘ipv4.method’ to ‘manual’? [yes]:
如果您愿意,您还可以在此处编辑设置 dns 服务器和本地网关。如果您使用 Adguard 附加组件,这很重要:
nmcli> set ipv4.dns 1.1.1.1
nmcli> set ipv4.gateway 192.168.1.1
nmcli> save
nmcli> quit
最后,您应该使用以下方法完全重新启动
hassio ho reboot

使用 nmcli 禁用 ipv6(可选):
nmcli connection show 列出您的连接

nmcli con show "Your Connection Name" 列出该连接的当前属性

nmcli connection modify "Your Connection Name" ipv6.method "disabled"

然后重新启动您的家庭助理实例。

nmcli

创建接口nmcli con add con-name V10 ifname ens33 type ethernet ip4

修改配置文件执行生效:systemctl restart network 或 nmcli con reload nmcli命令生效:nmclicon down eth0 ; nmclicon up eth0

PVE安装homeassistant


  1. 下载qcow2格式镜像
  2. 使用supervisor 管理docker homeassistant docker supervisor_homeassistant_31

  3. 将镜像通过mobaxterm传入

  4. 创建正常的虚拟机,记住id
  5. 使用supervisor 管理docker homeassistant docker supervisor_git_32

  6. 解压命令 xz -d haos_ova-6.1.qcow2.xz
  7. 导入命令
    qm importdisk 101 haos_ova-6.1.qcow2 local-lvm qm importdisk

  8. 将bios改成UEFI
  9. 使用supervisor 管理docker homeassistant docker supervisor_homeassistant_33


内置VScode可以和ESPhome连用

需要在ESPHOME设置中打开

使用supervisor 管理docker homeassistant docker supervisor_Text_34

vscode homeassistant插件连接配置

注意URL

使用supervisor 管理docker homeassistant docker supervisor_IP_35


使用supervisor 管理docker homeassistant docker supervisor_git_36

vscode esphome插件

使用supervisor 管理docker homeassistant docker supervisor_git_37


id

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_38

本地文件访问,/local/file

如果你想使用Home Assistant来托管或服务静态文件
那么在配置路径(/config)下创建一个名为www的目录。
例如,www/中的静态文件可以通过以下URL http://your.domain:8123/local/访问
Audio.mp3将以http://your.domain:8123/local/audio.mp3访问
== 如果您必须第一次创建www/文件夹,则需要重新启动Home Assistant。==
== 来自www文件夹(/local/url)的文件不受Home Assistant身份验证的保护。存储在这个文件夹中的文件,如果URL是已知的,任何人都可以在没有身份验证的情况下访问。==

相机实体

mjpeg IP 相机

链接 这种相机的特点就是利用网页访问,有的还带验证登录名和密码等

\# Example configuration.yaml entry
camera:
  - platform: mjpeg
    mjpeg_url: http://192.168.1.92/mjpeg

带密码的:

camera:
 - platform: mjpeg
   name: Livingroom Camera
   mjpeg_url: http://IP:PORT/mjpg/CAMERASHORTNAME/video.mjpeg
   username: BLUE_IRIS_USERNAME
   password: BLUE_IRIS_PASSWORD
   authentication: basic

MQTT

当不再使用mqtt的时候,要删除mqtt的实体的时候删不掉,应当先禁用其实体,然后点开其关联的实体然后删除即可

eth0:
dc:a6:32:ca:62:38
wlan:
42:a6:4e:05:9a:fa

中间
eth0:
02:42:AC:1E:21:02
wlan:
DC:A6:32:CA:60:53	

x86
eth0:
5A:50:63:15:D7:A1

homeassistant集成

tcp集成

tcp集成

sensor:
  - platform: tcp
    host: 192.168.3.112
    port: 2020
    payload: "good"
    timeout: 10
    value_template: "{{ value.split(';')[0] }}"
    unit_of_measurement: Bar

其工作的方式就是,作为tcp客户端连接tcp服务器,然后周期性的给服务器发送payload有效载荷,服务器接收到这个载荷之后,给出相应值,而value_template可以对值做出处理提取自己想要的值然后显示
注:只有在发送payload之后的time_out时间服务器才能够向其发送值,其他时间,他会主动断开连接

修改hosts

vim /etc/hosts

添加

使用supervisor 管理docker homeassistant docker supervisor_Text_39

彩云天气

bilibili视频

vscode显示当前打开的文件夹中没有git存储库,但实际上有.git文件夹。

注意是在本机执行命令

samba备份

  1. 添加add_on仓库 https://github.com/thomasmauerer/hassio-addons
  2. 右上角点击更新
  3. 配置如下:
host: 192.168.0.144
share: surveillance_ST500
target_dir: backup
username: xxxxx
password: xxxxx
keep_local: all
keep_remote: all
trigger_time: "00:20"
trigger_days:
  - Mon
  - Tue
  - Wed
  - Thu
  - Fri
  - Sat
  - Sun
exclude_addons:
  - core_mariadb
exclude_folders:
  - media

google盘备份

  1. 添加add_on仓库 https://github.com/sabeechen/hassio-google-drive-backup
  2. 右上角点击更新
  3. 直接打开,然后打开web UI
  4. 按照指引在google网盘获取key,填入即可

ha手动修改网络

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_40

易微联接入

hacs sonoffLAN项目地址 首先在hacs下载

然后config文件中

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_41


然后重启,就可以看到易微联的设备了。连接后,就可以看到.sonoff.json这个文件,有了这个文件你就不需要联网了,但是如果有新的设备连入,就删除这个文件,他就会重新update.

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_42


摄像头进入还不能直接控制,先添加实体,把代号拿到

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_43


使用supervisor 管理docker homeassistant docker supervisor_Text_44


然后调用一下服务,这个就可以控制摄像头

device_tracker

ping的方式

device_tracker:
  - platform: ping
    hosts:
      zyjphone: 192.168.10.118
      count: 5
    interval_seconds: 10
    consider_home: 120

然后生成know_devices.yaml文件,里面可以配置图片这些

zyjphone:
  name: xxx
  mac: 'xx:b6:07:xx:xx:xx'  	
  icon: mdi:account
  picture: local/zyj.jpg
  track: true
  consider_home: 0:02:00

https ssl nginx反向代理

https://www.bilibili.com/read/cv17141953我也是旁路由不得行,不旁路由就可以了。

挂载nas

首先要安装媒体集成:

使用supervisor 管理docker homeassistant docker supervisor_Text_45


然后必须要把挂载的文件夹给标出来!!必须

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_46


然后需要给一个shellcommand

使用supervisor 管理docker homeassistant docker supervisor_IP_47


然后自动化挂载:

alias: mount nas files
description: ""
trigger:
  - platform: homeassistant
    event: start
condition: []
action:
  - service: shell_command.mount_nas_folder
    data: {}
mode: single

支持语言

网站 不过不一样,简体叫zh-Hans,繁体叫zh-Hant

使用supervisor 管理docker homeassistant docker supervisor_Text_48

小米

获取小米设备token

pip3 install pycryptodome pybase64 requests

下载token_extractor.py文件

https://github.com/PiotrMachowski/Xiaomi-cloud-tokens-extractor/blob/master/token_extractor.py

python3 token_extractor.py

然后输入用户名和密码就可以得到了

小米设备接入

下载这个插件

使用supervisor 管理docker homeassistant docker supervisor_Text_49


记住,登录的时候,如果要验证必须保证你的设备和hass是同一网络并且是同一网关!(否则可能会不通过)

电量电费

使用这个docker镜像,然后填写用户名和密码以及hass地址和token即可
https://registry.hub.docker.com/r/dscao/sgcc_electricity

注意docker镜像里面的说明配置

pve_homeassistant物理音频使用

首先分配音频给虚拟机

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_50

注意不要勾选所有功能,因为还有一个0000:00.1f.4设备.(否则开不了机)

使用supervisor 管理docker homeassistant docker supervisor_homeassistant_51

添加仓库
https://github.com/bestlibre/hassio-addons

使用supervisor 管理docker homeassistant docker supervisor_git_52


然后,下载mopidy

使用supervisor 管理docker homeassistant docker supervisor_Text_53


然后config.yaml设置

ip设置为homeassistant url

使用supervisor 管理docker homeassistant docker supervisor_git_54


最后就可以使用设备了

使用supervisor 管理docker homeassistant docker supervisor_Text_55


参考链接

使用supervisor 管理docker homeassistant docker supervisor_Text_56