HA使用MQTT更加自由化
一、 HA和mqtt介绍
ha是一个不错的智能、自动化管理系统
mqtt是一个不错的、轻量级的通信标准和技术
结合两个,可以更方便地接入自己的传感器和设备到HA中
二、mqtt安装
由于ha使用的是docker安装的,所以mqtt也用docker安装,后配置到ha中
参考:知乎参考和其他参考
- 按照第一个参考配置docker版本的mqtt
- 按照第二个参考配置mqtt的账密
三、发布一个传感器到HA中
发布一个传感器数据到ha中,让ha进行显示
之前以为会很麻烦,比如配置各种东西等,但是后来发现,很简单两个步骤:1. 发布config的主题、2,发布对应数据主题
参考:ha mqtt
- 配置运动检测(二进制传感器)
- 配置主题:
homeassistant/binary_sensor/garden/config
- 状态主题:
homeassistant/binary_sensor/garden/state
- 有效载荷:
{"name": "garden", "device_class": "motion", "state_topic": "homeassistant/binary_sensor/garden/state"}
- 保留:添加 -r 开关以在代理中保留配置主题。否则,家庭助理重新启动后传感器将不可用。
mosquitto_pub -r -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m '{"name": "garden", "device_class": "motion", "state_topic": "homeassistant/binary_sensor/garden/state"}'
mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/state" -m ON
mosquitto_pub -h 127.0.0.1 -p 1883 -t "homeassistant/binary_sensor/garden/config" -m ''
效果如下:发布对应的topic即可触发或未触发
四、手动配置yaml到ha中
可以手动配置到ha中,通过修改对应的configuration.yaml文件
参考:ha yaml和ha light
实例:配置HA的一个灯开关,可以发布某一topic,从而让对应接收该topic的灯进行开关,如下图
# Example configuration.yaml entry
mqtt:
light:
- command_topic: "office/rgb1/light/switch"
五、配置node-red使mqtt传感器自动发送config
上面提到,要mqtt配置config让ha知道该传感器的类型等,但是要是重启了,就需要重新发送config配置
方法1:ha启动后,发布一个topic让所有传感器知道,然后各个传感器发送对应的config文件
方法2:(调试使用)nodered中配置流程,读取ha状态,延时发送对应的config内容,如图: