MQTT二进制传感器
这mqtt
二进制传感器平台使用收到的MQTT消息将二进制传感器的状态设置为上
,,,,离开
或者未知
。
仅在发布新消息后,该州才会更新state_topic
匹配payload_on
,,,,payload_off
或者没有任何
。如果这些消息与保持
标志集,二进制传感器将在订阅和家庭助理将在启动时显示正确的状态后,将获得即时状态更新。必威是什么否则,在家庭助理中显示的初始状态将是必威是什么未知
。
无状态设备(例如按钮,遥控器等)更好地表示MQTT设备触发而不是通过二进制传感器。
配置
这mqtt
二进制传感器平台可选支持可用性
从MQTT设备接收在线和离线消息(出生和LWT消息)的主题。在正常操作期间,如果MQTT传感器设备脱机(即,发布)payload_not_available
到一个可用性
主题),家庭助理必威是什么将显示二进制传感器不可用
。如果这些消息与保持
标志集,二进制传感器将在订阅和家庭助理启动后显示正确的二进制传感器可用性状态后,将获得即时更新。必威是什么如果是保持
未设置标志,家庭助理将显示二进制传必威是什么感器不可用
当家庭助理必威是什么开始时。如果不可用性
主题是定义的,家庭助理将考虑MQTT必威是什么设备为可用的
并将显示其状态。
要在安装中使用MQTT二进制传感器,请添加以下内容configuration.yaml
文件:
#示例Configuration.yaml条目binary_sensor:-平台:mqttstate_topic:“家庭辅助/窗口/联系”
配置变量
MQTT主题列表订阅以接收可用性(在线/离线)更新。不得一起使用availability_topic
。
什么时候可用性
已配置,这控制了将实体设置为可用的
。有效的条目是全部
,,,,任何
, 和最新的
。如果设置为全部
,,,,payload_available
在实体被标记为在线之前,必须在所有配置的可用性主题上收到。如果设置为任何
,,,,payload_available
在实体被标记为在线之前,必须在至少一个配置的可用性主题上收到。如果设置为最新的
, 最后payload_available
或者payload_not_available
在任何配置的可用性主题上都收到了可用性。
定义a模板从中提取设备的可用性availability_topic
。为了确定设备的可用性结果,将与payload_available
和payload_not_available
。
MQTT主题订阅以从MQTT设备接收出生和LWT消息。如果可用性
不是定义的,二进制传感器将始终被考虑可用的
它的状态将是上
,,,,离开
或者未知
。如果可用性
定义,二进制传感器将被视为不可用
默认情况下,传感器的初始状态将是不可用
。不得一起使用可用性
。
该设备与外界的连接列表作为元组列表[Connection_Type,Connection_Identifier]
。例如,网络接口的MAC地址:'Connections':['Mac','02:5B:26:A8:DC:12']
。
设置设备类,更改前端上显示的设备状态和图标。
这类别实体。
发送更新事件(这导致更新状态对象slast_changed
)即使传感器的状态没有改变。如果您想在历史记录中具有有意义的值图或想创建触发的自动化,则有用每一个传入状态(不仅是传感器的新状态与当前的状态不同时)。
MQTT主题订阅以接收JSON字典有效载荷,然后将其设置为传感器属性。使用示例可以在MQTT传感器文档。
定义a模板这返回了一个要比的字符串payload_on
/payload_off
或一个空字符串,在这种情况下,将删除MQTT消息。可用变量:ENTITY_ID
。当“ payload_on”和“ payload_off”足以匹配您的有效载荷时,请删除此选项(即不需要预先处理原始消息)。
例子
在本节中,您将找到一些如何使用此传感器的现实示例。
带有JSON数据的完整配置
这是从JSON格式的MQTT消息中提取状态的配置的示例。要测试,您可以使用命令行工具Mosquitto_pub
发货蚊子
或者蚊子客户
包装发送MQTT消息。
手动设置二进制传感器的状态:
Mosquitto_pub-H127.0.0.1-t家庭辅助/窗口/可用性-m“在线的”Mosquitto_pub-H127.0.0.1-t家庭辅助/窗口/联系人-m'{“ state”:“ on”}'Mosquitto_pub-H127.0.0.1-t家庭辅助/窗口/联系人-m'{“ state”:“ off”}'
下面的示例显示了二进制传感器的完整配置:
#示例Configuration.yaml条目binary_sensor:-平台:mqtt姓名:“窗户接触传感器”state_topic:“家庭辅助/窗口/联系”payload_on:“上”可用性:-话题:“家庭辅助/窗口/可用性”payload_available:“在线的”payload_not_available:“离线”QoS:0device_class:开场value_template:“{{{value_json.state}}””
每次在state_topic上收到消息时,请切换二进制传感器
#示例Configuration.yaml条目binary_sensor:-平台:mqttstate_topic:“lab_button/cmnd/power“value_template:“{%如果is_state(entity_id,\”上\”) - %} off {% - else-%} on {% - endif%}”
获得带有特殊设备的状态
假设您已经用特别是。在“配置”下是为您的设备设置的名称(“单位名称:”)(在这里是“浴室”)。存在用于MQTT的“控制器”的配置,其中包括协议“ OpenHAB MQTT”,并且调整了条目(“控制器订阅:”和“控制器发布:”)以符合您的需求。在此示例中,主题以“家庭”为前缀。另外,在“设备”中添加一个“开关输入”点击,名称为“开关”和“按钮”为值。
单元在线后,您将获得附加按钮的状态。
家庭/浴室/状态连接...家庭/浴室/开关/按钮1
配置看起来像以下示例:
#示例Configuration.yaml条目binary_sensor:-平台:mqtt姓名:浴室state_topic:“家庭/浴室/开关/按钮”payload_on:“1“payload_off:“0”