HA使用MQTT更加自由化

HA使用MQTT更加自由化

一、 HA和mqtt介绍

ha是一个不错的智能、自动化管理系统
mqtt是一个不错的、轻量级的通信标准和技术
结合两个,可以更方便地接入自己的传感器和设备到HA中

二、mqtt安装

由于ha使用的是docker安装的,所以mqtt也用docker安装,后配置到ha中
参考:知乎参考和其他参考

  1. 按照第一个参考配置docker版本的mqtt
  2. 按照第二个参考配置mqtt的账密

三、发布一个传感器到HA中

发布一个传感器数据到ha中,让ha进行显示
之前以为会很麻烦,比如配置各种东西等,但是后来发现,很简单两个步骤:1. 发布config的主题、2,发布对应数据主题
参考:ha mqtt

  1. 配置运动检测(二进制传感器)
  2. 配置主题:homeassistant/binary_sensor/garden/config
  3. 状态主题:homeassistant/binary_sensor/garden/state
  4. 有效载荷:{"name": "garden", "device_class": "motion", "state_topic": "homeassistant/binary_sensor/garden/state"}
  5. 保留:添加 -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即可触发或未触发
HA使用MQTT更加自由化_第1张图片

四、手动配置yaml到ha中

可以手动配置到ha中,通过修改对应的configuration.yaml文件
参考:ha yaml和ha light
实例:配置HA的一个灯开关,可以发布某一topic,从而让对应接收该topic的灯进行开关,如下图
HA使用MQTT更加自由化_第2张图片

# 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内容,如图:
HA使用MQTT更加自由化_第3张图片

你可能感兴趣的:(OP,HA,docker,java,容器)