0. 背景
根据论坛上大佬们:狗哥、莫哥的教程,大家已经掌握了m61发送mqtt消息的技能,本文主要解答王哥的问题,如何通过mqtt简单的在ha中注册实体。本文以温度传感器为例,班门弄斧介绍两种方式。
1. 前置条件
ha中已经装好mqtt服务器,我这里使用的是mosquitto broker为例。
启动服务,并且记录当前ha服务器的ip和broker的监听端口。这里,我的ip是192.168.3.130,broker的监听端口是1883。
此时,未新增实体前,我的MQTT插件中有3个实体。
分别是我创建的壁挂炉的开关和climate控制器。
2. 注册实体
2.1 方式一、通过mqtt消息主动注册
使用上一篇帖子中的工具,(链接:【从零开始玩HA】mqtt调试服务器与客户端 - 智能家居 - 物联网开发者社区-安信可论坛 - Powered by Discuz! (ai-thinker.com))向mosquitto broker发送消息。
step1. 发送消息注册设备
发布主题:homeassistant/sensor/temp1/config
发送消息格式:json
发送内容:
{
"name": "temp1",
"state_topic": "sensor/temp1",
"device_class": "temperature",
"value_template": "{{ value_json.temperature}}",
"device_class": "temperature",
"unique_id": "tttt1111",
"device": {
"name": "aithinker",
"identifiers": [
"temp1"
]
}
}
此时,mqtt集成界面显示多了一个设备和一个实体。
可以看到,已经注册上了一个温度计。
step2. 发布温度数据,更新实体数据。
发布主题:sensor/temp1
发送消息格式:json
发送内容:
{
"temperature":99.99
}
此时,从ha中可以看到温度数据已经更新成99.99摄氏度。
2.2 方式二、通过yaml的方式注册实体
step1. 修改ha的配置文件configuration.yaml中的配置
增加:
mqtt:
sensor:
- name: "aithinker temp2"
state_topic: "sensor/temp2"
value_template: "{{ value_json.temperature}}"
unit_of_measurement: '°C'
修改完成后,保存并且重启ha。
重启完成后,实体注册表中增加temp2实体。
step2. 发布温度数据,更新实体数据。
发布主题:sensor/temp2
发送消息格式:json
发送内容:
{
"temperature":88.88
}
此时,从ha中可以看到温度数据已经更新成88.88摄氏度。
3. 添加到仪表盘
|