Home Assistant使用 MQTT 消息负载来设置二进制传感器为两种状态之一:打开或关闭。
只有在匹配的 MQTT 主题上发布新消息后,二进制传感器状态才会更新。如果这些消息以保留标志进行发布,二进制传感器将在订阅后立即接收到状态更新,并且在启动时,Home Assistant 将显示正确的状态。否则,在 Home Assistant 中显示的初始状态将是未知的。
Home Assistant可选择支持从 MQTT 设备接收在线和离线消息(出生和 LWT 消息)。在正常操作期间,如果 MQTT 设备离线(即发布到失去连接的主题),Home Assistant 将显示二进制传感器为不可用。如果这些消息以保留标志进行发布,二进制传感器将在订阅后立即接收到更新,并且 Home Assistant 在启动时将显示正确的可用性状态。如果未设置标志,Home Assistant 在启动时将显示二进制传感器为不可用。如果未定义 availability_topic,则 Home Assistant 将认为 MQTT 设备可用。
要在您的安装中使用 MQTT 二进制传感器,请将以下内容添加到您的配置文件 configuration.yaml 中:
# 示例 configuration.yaml 条目
binary_sensor:
- platform: mqtt
state_topic: "home-assistant/window/contact"
配置变量:
- name(可选):二进制传感器的名称。默认为“MQTT 二进制传感器”。
- state_topic(必填):订阅以接收传感器值的 MQTT 主题。
- payload_on(可选):表示打开状态的负载。默认为“ON”。
- payload_off(可选):表示关闭状态的负载。默认为“OFF”。
- availability_topic(可选):订阅以接收 MQTT 设备的出生和 LWT 消息。如果未定义,二进制传感器的可用性状态将始终为“可用”。如果定义了该主题,则二进制传感器的可用性状态将默认为“不可用”。
- payload_available(可选):表示在线状态的负载。默认为“online”。
- payload_not_available(可选):表示离线状态的负载。默认为“offline”。
- qos(可选):接收消息时要使用的最大 QoS 级别。默认为 0。
- device_class(可选):用于设置前端图标的传感器类型/类别。
- value_template(可选):定义从负载中提取值的模板。
要进行测试,您可以使用随附的命令行工具或包来发送 MQTT 消息。要手动设置二进制传感器的状态:
$ mosquitto_pub -h 127.0.0.1 -t home-assistant/window/contact -m "OFF"
# 示例 configuration.yaml 条目
binary_sensor:
- platform: mqtt # 使用MQTT
name: "窗户传感器" # 二进制传感器的名称
state_topic: "home-assistant/window/contact" # 订阅以接收传感器值的MQTT主题
payload_on: "ON" # 表示打开状态的负载
payload_off: "OFF" # 表示关闭状态的负载
availability_topic: "home-assistant/window/availability" # 订阅以接收MQTT设备的出生和LWT消息的主题
payload_available: "online" # 表示在线状态的负载
payload_not_available: "offline" # 表示离线状态的负载
qos: 0 # 接收消息时要使用的最大QoS级别
device_class: opening # 用于设置前端图标的传感器类型/类别
value_template: '{{ value.x }}' # 定义从负载中提取值的模板
请注意,以上示例中的配置仅供参考,您需要根据您的 MQTT 设备和主题进行相应的配置。