本帖最后由 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节点,可以直接介入小米网关里的设备,非常方便;
这种图形化编程不用码代码,非常方便;
谢谢大家;
|