要通过 MQTT 将温度、湿度数据以及一个灯的开关状态传输到 Home Assistant 并实现设备自动发现,可以按照以下步骤操作:
1.前期准备工作
-
安装MQTT服务器(
EMQX
)配置好(可以在HA加载项中安装,也可以在NAS上Docker安装)
-
HA的集成中安装MQTT,并且连接上(
EMQX
)
2.设备需要通过 MQTT 发送三条配置消息,HA会自动识别:
- 温度传感器配置消息:
发布到主题:homeassistant/sensor/temp_sensor/config
{
"name": "Temperature Sensor",
"device_class": "temperature",
"state_topic": "homeassistant/all/esp8266/state",
"unit_of_measurement": "°C",
"value_template": "{
{ value_json.temperature }}",
"unique_id": "temp_sensor",
"device": {
"identifiers": ["esp8266_sensor"],
"name": "ESP8266 Sensor",
"manufacturer": "Espressif",
"model": "ESP8266EX",
"sw_version": "1.0.0"
}
}
- 湿度传感器配置消息:
发布到主题:homeassistant/sensor/hum_sensor/config
{
"name": "Humidity Sensor",
"device_class": "humidity",
"state_topic": "homeassistant/all/esp8266/state",
"unit_of_measurement": "%",
"value_template": "{
{ value_json.humidity }}",
"unique_id": "hum_sensor",
"device": {
"identifiers": ["esp8266_sensor"]
}
}
- 灯的开关配置消息:
发布到主题:homeassistant/switch/light/config
{
"name": "Light S