前面只是一些简单的调试,实际上要想真正的玩起来需要很多工作要做,我们这次的最终目的是用树莓派5打造一个Home Assistant智能助手,所以现在才是重点来了。
我们看了一下Home Assistant官网的介绍,其支持树莓派,要求的内最小就是2G,咱们的这个板卡正好合适,所以这个也是我们考虑这个配置的开发板的最重要的目的,成本和需求完美结合了。
我们可以使用imager直接安装HAOS系统,在other里面:

这里需要注意,写这种第三方的系统,不能继续系统配置,例如WiFi等信息,这个我们需要使用一些方法让它连接上wifi,不过直接通过这里安装失败了,不知道是网络原因还是怎样的,我们去Home Assistant官网去下载镜像,目前支持的最新版是16.3,可以下载先来img镜像后通过imager安装本地镜像:

将装有系统的SD卡安装到树莓派,注意这个时候先不要供电,我们需要解决一下无线连接的问题,首次安装HAOS最好通过网线连接,如果通过无线连接需要找到一个U盘,在我中创建一个文件夹存储网络信息以及一个文件(时区),然后插在树莓派上开机就可以了,主要需要修改的就是网络信息:
U盘改名为“CONFIG”(这里需要注意以下,最好用支持USB3.0的盘,并且放在中间的U口上)
创建一个文件夹为“network”,创建一个文件名为“my-network”,内容见如下文件,主要修改ssid和psk:
[connection]
id=Curtion
uuid=62073a21-301e-432c-8d65-2848bcf032b1
type=802-11-wireless
[802-11-wireless]
mode=infrastructure
ssid=XXXXXXXXXX
[802-11-wireless-security]
auth-alg=open
key-mgmt=wpa-psk
psk=XXXXXXXXXX
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
根目录创建时区文件,后续可以通过页面进行设置,设置-系统-网络-配置网络接口,通过搜索当前可以用网络进行连接,然后保存就可以了。
同一wifi下可通过“http://homeassistant:8123/”进行访问:

我们点击的使用Cloudflare DNS,进入自动初始化内容了:

经过漫长的等待,终于可以了:

创建homeassistant用户:

创建SSH账户,mqtt服务添加集成——手动配置,连接失败了,我们转战EMQX进行代理(配置-加载项-加载项商店-EMQX),打开后会使用账号密码进入,初始为admin和public,我们修改为admin admin1234,这个时候通过创建Mqtt却成功了连接到了EMQX,通过MQTTX能够连接。接下来我们创建了一个实体,通过修改configuration.yaml文件,可以通过Studio Code Server或者File editor,不过File editor已知没有安装成功(科学上网也失败了),Studio Code Server倒是成功了。通过Studio Code Server可以打开配置文件:

通过增加MQTT内容会直接创建:
mqtt:
switch:
- unique_id: led_1 #设备ID
name: "led_1" #设备名称
state_topic: "TOESP01S" #订阅端口
command_topic: "TOESP01S" #同上
payload_on: "1" #开灯的指令
payload_off: "2" #关灯的指令
上面只是一个测试内容,创建后需要通过重启操作,可以看到mqtt中有了一个实体:

使用MQTTX连接后可以通过订阅端口进行指令的发送:

我们在测试一个传感器类型的,根据如下代码创建,发现只成功了两个:

unique_id不能重复,否则后面的会失效,我们修改成如下:
sensor:
- unique_id: Work_AHT20tem
name: "AHT20tem"
state_topic: "HAOS/sensor/sensorAHT20/state"
unit_of_measurement: "°C"
value_template: "{{ value_json.AHT20tem}}"
- unique_id: Work_AHT20Hum
name: "AHT20Hum"
state_topic: "HAOS/sensor/sensorAHT20/state"
unit_of_measurement: "%"
value_template: "{{ value_json.AHT20Hum}}"
- unique_id: Home_BME280
name: "BME280"
state_topic: "HAOS/sensor/sensorBME280/state"
unit_of_measurement: "kPa"
value_template: "{{ value_json.BME280Pre}}"
unique_id都发生了变化,这个时候我们重启了一下,发现之前的传感器还都在,也就是虽然改了配置,不过会根据增量的模式增加,只能手动删除了之前的传感器:

上图是目前咱们想要的,这个时候我们可以通过MQTTX对相应的订阅主题进行发送,AHT20温度和湿度公用一个主题,如下直接修改了两个传感器的参数:
Topic: HAOS/sensor/sensorAHT20/stateQoS: 0 { "AHT20tem": 23.20, "AHT20Hum": 43.70 }
结果同时修改了参数:

注意不同类别的设备的属性是不同的,而且只能用规定的关键词,传感器的关键词有如下内容:
