上一篇《ESP8266通过MQTT接入Home Assistant(基于Micropython)》,我们分享了将自制的ESP8266开发板作为一个设备,通过MQTT协议接入Home Assistant,实现温湿度和电量的实时上传。然而,我们发现了一个问题:每当Home Assistant重启后,通过发送配置主题自动发现的设备和实体就无法继续使用,需要重新发送配置主题来恢复它们的功能。
本篇笔记介绍另一种方法,通过直接修改YAML配置文件来实现设备和实体的添加,从而避免了上述问题。这种方法可以确保即使在Home Assistant重启后,新添加的设备和实体依然能够正常工作。
1、发现设备和实体
Home Assistant的YAML配置文件是核心组件,用于定义实体、集成、自动化等。通过编辑configuration.yaml文件,可以集成新设备、创建自动化规则,以及优化整个家居自动化体验。
安装File editor
Home Assistant支持使用文件编辑器(File editor)来编辑配置文件。我们安装的是冬瓜HAOS,这个版本已经集成了File editor。通过设置->加载项可以找到File editor,然后勾选显示于侧边栏,可将其添加到侧边栏中,方便使用。
修改配置文件
进入File editor,点击左上角的文件夹图标,找到configuration.yaml,进入configuration.yaml编辑。将ESP8266的设备信息和传感器的实体信息添加到configuration.yaml,yaml内容如下:
mqtt:sensor: - name: "温度" state_topic: "homeassistant/sensor/esp8266/state" device_class: "temperature" unit_of_measurement: "°C" value_template: "{{ value_json.temperature}}" unique_id: "temp01ae" device: name: "ESP8266" suggested_area: "客厅" manufacturer: "PY学习笔记" model: "E103-W01" model_id: "ESP8266EX" serial_number: "pysn" hw_version: "v1.2.0" sw_version: "1.24.1" identifiers: - "esp8266_aht10" - name: "湿度" state_topic: "homeassistant/sensor/esp8266/state" device_class: "humidity" unit_of_measurement: "%" value_template: "{{ value_json.humidity}}" unique_id: "hum01ae" device: identifiers: - "esp8266_aht10" - name: "电量" state_topic: "homeassistant/sensor/esp8266/state" device_class: "battery" unit_of_measurement: "%" value_template: "{{ value_json.battery}}" unique_id: "batt01be" device: identifiers: - "esp8266_aht10"
YAML 语法要求严格的缩进和格式,错误的缩进或语法可能导致配置失效。
手动配置MQTT实体
YAML修改后,需要重新加载才能生效。通过开发者工具,找到手动配置的MQTT实体,点击重新加载。
至此,在Home Assistant上就能看到MQTT发现了一个设备和3个实体:
2、发送传感器数据
再上一张这几天电量测试的曲线图:
中间无数据部分为停机充电时间。
领取专属 10元无门槛券
私享最新 技术干货