通过Node-red 将HA中的传感器接入HomeKit
本帖最后由 lanhemeng 于 2018-1-13 20:23 编辑先看效果
主要用到的Node有以下两个,node-red-contrib-home-assistant和node-red-contrib-homekit
这里以小米插座为例:
1.先插入一个Node current state,用来检测当前插座的开关状态,进行反馈
新添加Server节点,如下图:
之后,Node-red会自动搜索EntityID,选择相对应的无线开关
2.插入Change节点,用于格式化payload为相应的JSON格式;
3.添加Homekit节点,并新建一个Switch Accessory节点
设置Server为Switch
4.分别添加一个Function和Switch节点,
Function里的代码
on1=msg.payload.On;
global.set("on1",on1);
var msg= { payload:on1};
return msg;
Switch节点里的设置
5.添加两个call service节点;
Service一个设置为turn_on,另外一个设置为turn_off,不要用触发;
部署之后就可以在Home APP里添加设备了;
在Node-Red里,每一个HomeKit的节点都是独立的,这样就避免诸如HB里一个设备没有响应其他设备都挂了的窘境;
另外Node-red里还有小米全家桶的Node节点,可以直接介入小米网关里的设备,非常方便;
这种图形化编程不用码代码,非常方便;
谢谢大家;
大神,请问下HA怎么去控制接入node 的设备,我现在卡在这了。 wanyakui520 发表于 2018-1-13 21:13
大神,请问下HA怎么去控制接入node 的设备,我现在卡在这了。
直接用current state检测HA的状态控制进入Node-red就行了啊 lanhemeng 发表于 2018-1-13 21:17
直接用current state检测HA的状态控制进入Node-red就行了啊
current state不是状态监测吗?这个能实现HA控制接入在NODE的485设备? wanyakui520 发表于 2018-1-13 21:30
current state不是状态监测吗?这个能实现HA控制接入在NODE的485设备?
说下具体你要实现的功能啊 我手上有个开放tcp协议的设备,设备现在已经接入node-red,先通过node-red做桥接入HA 最后实现用HA控制 :lol 谢谢分享! 感谢分享 node-red里的homekit插件,你知道如何只更新按钮状态吗?
因为{"On":true}就直接执行动作了,我只想更新homekit里按钮的状态,是按下去还是弹起来就可以了;
比如我想实现通过ping检测电脑开机状态,假如电脑是通过物理按键打开了(没有用程序开),电脑被打开后,homekit的按钮状态可以同步更新为按下去状态 先支持y一波,感谢分享!~~~~~~~~~·