智能家居软件篇——用NodeRed在HomeAssistant中自动发现实体--开关

   1 前言

本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,扫描以下二维码即可关注。

也可点击链接访问:用NodeRed在HomeAssistant中自动发现实体--开关

02概述

前面已经讲过用NodeRed在HomeAssistant中自动发现传感器,这篇讲解如何在HA中自动发现开关设备。

03定义函数

开关发现原理和传感器是是一致的,区别在于增加了状态识别和控制命令的识别。根据HomeAssistant相关文档写出节点函数如下:

如果看过前面传感器节点函数文章就会发现,这条函数需要自行填写的内容变少了。设备类别不需要特别指定,也不需要设定单位,图标用系统默认,当然也可以根据自己喜好设定,函数中被我注释掉了。

另外HA是能自己识别布尔值、0或1、ON或OFF的状态的,所以状态识别的定义也不需更改。

有两点还是再次说明下:

1.id3定义的state_topic为开关状态反馈,即HA会根据state_topic定义的主题获取状态值(布尔值、0或1、ON或OFF),HA会自动判断输出状态在前端;

2.id5是在HA中的路径,homeassistant/switch/不要更改,他会自动识别为开关类型。其他注意事项和传感器的一致就不再赘述。

04发布至HomeAssistant

完成以上工作后就可以把自动发现数据发布至HA了,流程如下:

图片

手动触发一次inject注入节点就可以把数据发布至HA,这时就可以在HA中看到生成的实体:

图片

05 接收HomeAssistant的控制命令

上面已经完成的开关的实体自动发现和状态反馈,下面说说如何控制。首先如果HA发出控制指令即点击HA中开关图标的开启或关闭,他是通过MQTT发布到相应主题,在上面函数中可以看到,控制命令的主题为~+/set的格式,即:homeassistant/switch/12way_switch/test_switches/set,所以我们在NodeRed中只需订阅该主题就可以接收到HA的控制指令,结果如下:

图片

这样就获取到了来自HA的控制指令,后面就可以根据该指令控制相应的Modbus设备或直接用MQTT控制设备,这样就完成了HA自动发现开关的全部流程。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值