『瀚思彼岸』» 智能家居技术论坛

 找回密码
 立即注册
查看: 37986|回复: 51

[教程系列] 通过Node-red 将HA中的传感器接入HomeKit

  [复制链接]

9

主题

127

帖子

1072

积分

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
940
HASS币
20
发表于 2018-1-13 20:23:53 | 显示全部楼层 |阅读模式
本帖最后由 lanhemeng 于 2018-1-13 20:23 编辑

先看效果
捕获1.PNG

主要用到的Node有以下两个,node-red-contrib-home-assistant和node-red-contrib-homekit

捕获2.PNG

这里以小米插座为例:
捕获3.PNG
1.先插入一个Node current state,用来检测当前插座的开关状态,进行反馈
新添加Server节点,如下图:
捕获4.PNG
之后,Node-red会自动搜索EntityID,选择相对应的无线开关
捕获5.PNG
2.插入Change节点,用于格式化payload为相应的JSON格式;
捕获6.PNG
3.添加Homekit节点,并新建一个Switch Accessory节点
捕获7.PNG
设置Server为Switch
捕获8.PNG
4.分别添加一个Function和Switch节点,
Function里的代码
on1=msg.payload.On;
global.set("on1",on1);
var msg= { payload:on1};
return msg;


Switch节点里的设置
捕获9.PNG

5.添加两个call service节点;
Service一个设置为turn_on,另外一个设置为turn_off,不要用触发
捕获10.PNG

部署之后就可以在Home APP里添加设备了;

在Node-Red里,每一个HomeKit的节点都是独立的,这样就避免诸如HB里一个设备没有响应其他设备都挂了的窘境;

另外Node-red里还有小米全家桶的Node节点,可以直接介入小米网关里的设备,非常方便;
捕获11.PNG

这种图形化编程不用码代码,非常方便;

谢谢大家;

回复

使用道具 举报

4

主题

208

帖子

1408

积分

金牌会员

Rank: 6Rank: 6

积分
1408
金钱
1199
HASS币
0
发表于 2018-1-13 21:13:59 | 显示全部楼层
大神,请问下HA怎么去控制接入node 的设备,我现在卡在这了。
回复

使用道具 举报

9

主题

127

帖子

1072

积分

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
940
HASS币
20
 楼主| 发表于 2018-1-13 21:17:01 | 显示全部楼层
wanyakui520 发表于 2018-1-13 21:13
大神,请问下HA怎么去控制接入node 的设备,我现在卡在这了。

直接用current state检测HA的状态控制进入Node-red就行了啊
回复

使用道具 举报

4

主题

208

帖子

1408

积分

金牌会员

Rank: 6Rank: 6

积分
1408
金钱
1199
HASS币
0
发表于 2018-1-13 21:30:31 | 显示全部楼层
lanhemeng 发表于 2018-1-13 21:17
直接用current state检测HA的状态控制进入Node-red就行了啊

current state不是状态监测吗?这个能实现HA控制接入在NODE的485设备?
回复

使用道具 举报

9

主题

127

帖子

1072

积分

金牌会员

Rank: 6Rank: 6

积分
1072
金钱
940
HASS币
20
 楼主| 发表于 2018-1-13 21:32:02 | 显示全部楼层
wanyakui520 发表于 2018-1-13 21:30
current state不是状态监测吗?这个能实现HA控制接入在NODE的485设备?

说下具体你要实现的功能啊
回复

使用道具 举报

4

主题

208

帖子

1408

积分

金牌会员

Rank: 6Rank: 6

积分
1408
金钱
1199
HASS币
0
发表于 2018-1-13 21:35:45 | 显示全部楼层
我手上有个开放tcp协议的设备,设备现在已经接入node-red,先通过node-red做桥接入HA 最后实现用HA控制
回复

使用道具 举报

5

主题

120

帖子

253

积分

中级会员

Rank: 3Rank: 3

积分
253
金钱
133
HASS币
0
发表于 2018-1-13 21:58:07 | 显示全部楼层
谢谢分享!
回复

使用道具 举报

6

主题

100

帖子

431

积分

中级会员

Rank: 3Rank: 3

积分
431
金钱
331
HASS币
0
发表于 2018-1-13 23:00:38 | 显示全部楼层
感谢分享
回复

使用道具 举报

42

主题

523

帖子

2517

积分

金牌会员

Rank: 6Rank: 6

积分
2517
金钱
1989
HASS币
30
发表于 2018-1-18 15:36:47 | 显示全部楼层
node-red里的homekit插件,你知道如何只更新按钮状态吗?
因为{"On":true}就直接执行动作了,我只想更新homekit里按钮的状态,是按下去还是弹起来就可以了;
比如我想实现通过ping检测电脑开机状态,假如电脑是通过物理按键打开了(没有用程序开),电脑被打开后,homekit的按钮状态可以同步更新为按下去状态
回复

使用道具 举报

6

主题

269

帖子

1074

积分

论坛积极会员

积分
1074
金钱
804
HASS币
0
发表于 2018-1-18 15:52:19 | 显示全部楼层
先支持y一波,感谢分享!~~~~~~~~~·
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Hassbian

GMT+8, 2024-11-23 16:07 , Processed in 0.273971 second(s), 34 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表