配置MQTT。搜索并选择MQTT。
将搭建好的mosquitto服务信息绑定到Home Assistant中,这样Home Assistant就可以接收MQTT信息并展示。
![](https://img-blog.csdnimg.cn/img_convert/56483dad80a2b93babfd67f0c7064009.png)
点击完成,我们就能够看到界面。
创建传感器
使用MQTT Discovery
新建一个温度传感器和一个湿度传感器,内容为json格式,字段含义见附1。
$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/sensor/room1-temp/config" -u mqtt -P mqtt -i "pub1" -m '{"device_class": "temperature", "name": "ROOM1-TEMP", "unique_id":"room1-temp", "state_topic": "homeassistant/sensor/room1/state", "unit_of_measurement": "°C", "value_template": "{{ value_json.temp}}" }'
$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/sensor/room1-humi/config" -u mqtt -P mqtt -i "pub1" -m '{"device_class": "humidity", "name": "ROOM1-HUMI", "unique_id":"room1-humi", "state_topic": "homeassistant/sensor/room1/state", "unit_of_measurement": "%", "value_template": "{{ value_json.humi}}" }'
打开配置->实体注册表,在里面我们应该能够看到刚创建的温度和湿度传感器。
![](https://img-blog.csdnimg.cn/878b4371b28548e4b28118503821b031.png)
在概览页面(也就是首页),我们可以通过编辑Dashboard的方式把传感器数据放在页面上。
自行发送一个传感器数据
作为测试,我们可以使用mosquitto的工具自己发送一个数据,如果Web页面能够正常展示数据,说明我们的Home Assistant已经彻底配置完成。
$ mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/sensor/room1/state" -u mqtt -P mqtt -i "pub1" -m '{ "temp": 27.20, "humi": 40.70 }'
附1 discovery参数表
参数 | 含义 |
-t | mqtt中的发送主题,格式为homeassistant/sensor/{name}/config |
-u | mqtt的用户名 |
-P | mqtt的密码 |
-i | mqtt的clientId,注意在连接同一个MQTT Server的时候不要重复 |
-m | device_class:设备类型,支持列表见https://www.home-assistant.io/integrations/sensor/#device-class,若设备与列表中均不匹配(例如甲醛传感器),则在json中不要包含该字段。 |
name:显示在界面上的传感器名称。 | |
unique_id:全局唯一的传感器id,此处若不传数据,在系统中将无法更改属性。 | |
state_topic:当传递传感器数据时需要订阅的主题,格式为homeassistant/sensor/{name}/state | |
unit_of_measurement:量纲,此处可以自由传递字符串,但若不传,前端展示会出现问题。 | |
value_template:在传感器数据中取哪个json字段作为数据。 |
参考文献