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

标题: 精装修全屋KNX设备接入homekit简明教程(一) [打印本页]

作者: helloworld    时间: 2023-1-9 16:37
标题: 精装修全屋KNX设备接入homekit简明教程(一)
本帖最后由 helloworld 于 2023-2-8 15:39 编辑

跳转:精装修全屋KNX设备接入homekit简明教程(二)
https://bbs.hassbian.com/thread-19493-1-1.html
补充了:空调、地暖、门铃、窗帘、阀门、排风扇、耶鲁锁超级简单抓包接入homekit
(出处: 『瀚思彼岸』» 智能家居技术论坛)


开篇缘由:      
      因为全家都是苹果生态,所以对ui要求高点。从来没有接触过智能家电,不过通过本论坛的不断学习,以及朋友的帮助,最后顺利将knx接入homekit。


      开发商配置的智能家居系统为KNX,配置的app ui过于朴素,并且自动化不是特别好操作,后期也不好添加新的设备,如下图:

        [attach]44586[/attach]


       对应homekit效果炸裂:

        [attach]44584[/attach]
        [attach]44590[/attach]


      通过百度学习,knx的数据通过红黑线进行数据传输+供电。首先要想办法读取、修改knx上设备的数据。经过研究发现,我的解决思路:1.原始网关抓包;2.knx/ip接口(最后选的此方法)。

      1.原始网关抓包

开发商使用的是deepsmart的综合性网关,将485、knx等设备都接入了,然后它通过tcp和官方服务器进行交互,用户使用对应的app就可以远程控制家电。整体反应还可以,本想着,局域网内直接使用此网关的ip:3671 端口,就能获取knx上的数据。但是对应网关的3671端口似乎只能1个客户端进行衔接。按道理,通过ssh登录上网关,然后修改参数,能够增加多用户。但是通过沟通,对方不愿意给我本网关的root用户密码,那就算了。然后通过简单的stream软件,对其app进行抓包,发现不容易。遂放弃,转头研究方法2

      2.knx/ip接口

knx/ip接口设备本身是个knx设备,能够读取knx上红黑线上的数据,然后转化成tcp的数据包。通过tcp协议就能够进行对knx上的设备状态进行读取、修改。和其网关功能类似,只是没有编程逻辑。正好nodered上有,对应的插件。通过插件就能配置网关,导入knx网络上的所有数据,进行读取和修改。然后配上nodered上的homekit插件,能够将绝大多数的设备接入。


架构:
       knx设备-->knx/ip接口-->nodered编程-->homekit

[attach]44573[/attach]
[attach]44592[/attach]



说明:


       [attach]44576[/attach]

       knx/ip接口作用:将knx设备的信号转化成tcp数据,在nodered中使用插件就可以读取,控制数据

       树莓派:安装nodered,使用knx插件和 knx/ip接口交互

教程:
        1.修改网关knx节点的ip和端口
        2.修改对应的组地址和地址类型,开关反馈 就能完美对接入homekit
        [attach]44577[/attach]


    开关、简单的灯、可以调节亮度的灯:只需要根据模板,修改网关ip,端口;复制对应的节点,修改设备的操作地址,反馈地址。然后apple手机在homekit软件内添加局域网网关(docker版本的nodered需要使用host模式,手机才能扫描到网关),送上3个简单的模板如下:
[attach]44581[/attach]

        总结:knx设备想要接入homekit,需要knx/ip的接口设备,进行数据交互。然后使用nodered的knx-ultimate插件进行数据读取修改,然后接入homekit插件。最后就能够全部knx设备接入homekit。空调和地暖稍微复杂点,不过框架一样


ps:附件是nodered的流,下次再整理下空调、地暖、耶鲁锁抓包的流










作者: 隔壁的王叔叔    时间: 2023-1-9 16:46
感谢分享

作者: zhuguoqing    时间: 2023-1-9 16:49
感谢分享
作者: gmshiwoge    时间: 2023-1-9 18:18
你node-red 配置是不是每一个灯光要单独弄一个节点啊 多了配置感觉好麻烦
感觉用表格写一个通用格式的knx表格 再配置到ha回比较快一点 比如附件的表格
作者: helloworld    时间: 2023-1-9 19:12
Nodered应该就是这样,复制节点再改下地址。我本来也没多少设备
作者: tking4    时间: 2023-1-9 20:25
感谢分享
作者: h542199349    时间: 2023-1-10 11:35
直接找开发商要KNX的工程文件啊
作者: helloworld    时间: 2023-1-10 11:53
h542199349 发表于 2023-1-10 11:35
直接找开发商要KNX的工程文件啊

对的,直接要的。deepsmart他们也有网关数据的web,可以直接内网看
所以还比较方便

作者: zfgjy2005    时间: 2023-1-10 20:57
gmshiwoge 发表于 2023-1-9 18:18
你node-red 配置是不是每一个灯光要单独弄一个节点啊 多了配置感觉好麻烦
感觉用表格写一个通用格式的knx表 ...

请教下,通用格式的node red 里面怎么写,可以给个示例嘛
作者: Mydfeng    时间: 2023-1-11 09:38
mark、近期准备看看
作者: liy517    时间: 2023-1-11 18:32
你有KNX的IP接口,可以直接在配置-集成里面把KNX设备添加进来,然后再到HomeKit,毕竟noderedred里那么多的节点,还是很多人不会写的(包括我
作者: chencain    时间: 2023-1-15 05:41
感谢分享
作者: helloworld    时间: 2023-1-16 16:18
liy517 发表于 2023-1-11 18:32
你有KNX的IP接口,可以直接在配置-集成里面把KNX设备添加进来,然后再到HomeKit,毕竟noderedred里那么多的 ...

主要是我喜欢nodede的操作风格,图文感觉更清晰点。

然后,节点直接复制,修改设备对应的knx地址,就行了。按道理还是比较简单。

ha里面导入节点,应该也要配置knx的地址嘛。看自己喜欢吧。只是分享下,怎么接入的
作者: zbaba    时间: 2023-1-16 18:59

感谢分享!学习收藏。
作者: liy517    时间: 2023-1-17 22:22
helloworld 发表于 2023-1-16 16:18
主要是我喜欢nodede的操作风格,图文感觉更清晰点。

然后,节点直接复制,修改设备对应的knx地址,就行 ...

嗯,多出点nodered的教程
作者: lswq    时间: 2023-1-18 17:35
楼主能分享下valve的流吗,我配置好InUse从homekit可以正常控制及得到状态反馈,但是从原app操作则会显示正在停止或启动
作者: helloworld    时间: 2023-1-21 10:39
lswq 发表于 2023-1-18 17:35
楼主能分享下valve的流吗,我配置好InUse从homekit可以正常控制及得到状态反馈,但是从原app操作则会显示正 ...

[{"id":"55f20542fc81baa0","type":"subflow","name":"active","info":"","category":"","in":[{"x":80,"y":80,"wires":[{"id":"cac081cd3cd1ec5d"}]}],"out":[{"x":300,"y":80,"wires":[{"id":"cac081cd3cd1ec5d","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"cac081cd3cd1ec5d","type":"function","z":"55f20542fc81baa0","name":"","func":"msg.payload = msg.payload.Active\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":190,"y":80,"wires":[[]]},{"id":"62281231543d7ce9","type":"subflow","name":"Vavle","info":"","category":"","in":[{"x":60,"y":80,"wires":[{"id":"43429e7a58770272"}]}],"out":[{"x":320,"y":80,"wires":[{"id":"43429e7a58770272","port":0}]}],"env":[],"meta":{},"color":"#DDAA99"},{"id":"43429e7a58770272","type":"function","z":"62281231543d7ce9","name":"反馈","func":"msg.payload = {\n        \"Active\": msg.payload,\n        \"InUse\": msg.payload\n    }\nreturn msg;","outputs":1,"noerr":0,"initialize":"","finalize":"","libs":[],"x":190,"y":80,"wires":[[]]},{"id":"aa8225fa.45a8e8","type":"knxUltimate","z":"d86e8a646cbc6781","server":"1d670c832649ebb6","topic":"0/1/39","outputtopic":"","dpt":"1.001","initialread":"1","notifyreadrequest":false,"notifyresponse":true,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","listenallga":false,"name":"主卧主卫地暖反馈","outputtype":"read","outputRBE":false,"inputRBE":false,"formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","x":470,"y":4600,"wires":[["bcfba739.d00c98"]]},{"id":"bcfba739.d00c98","type":"subflow:62281231543d7ce9","z":"d86e8a646cbc6781","name":"","env":[],"x":680,"y":4600,"wires":[["168438c2.0d1c9f"]]},{"id":"168438c2.0d1c9f","type":"homekit-service","z":"d86e8a646cbc6781","isParent":true,"hostType":"0","bridge":"f29d837f.9839c","accessoryId":"","parentService":"","name":"主卧地暖阀门","serviceName":"Valve","topic":"","filter":false,"manufacturer":"IOT DREAM","model":"1.3.6","serialNo":"Default Serial Number","firmwareRev":"1.3.6","hardwareRev":"1.3.6","softwareRev":"1.3.6","cameraConfigVideoProcessor":"ffmpeg","cameraConfigSource":"","cameraConfigStillImageSource":"","cameraConfigMaxStreams":2,"cameraConfigMaxWidth":1280,"cameraConfigMaxHeight":720,"cameraConfigMaxFPS":10,"cameraConfigMaxBitrate":300,"cameraConfigVideoCodec":"libx264","cameraConfigAudioCodec":"libfdk_aac","cameraConfigAudio":false,"cameraConfigPacketSize":1316,"cameraConfigVerticalFlip":false,"cameraConfigHorizontalFlip":false,"cameraConfigMapVideo":"0:0","cameraConfigMapAudio":"0:1","cameraConfigVideoFilter":"scale=1280:720","cameraConfigAdditionalCommandLine":"-tune zerolatency","cameraConfigDebug":false,"cameraConfigSnapshotOutput":"disabled","cameraConfigInterfaceName":"","characteristicProperties":"{    \"ValveType\":{       \"minValue\":0,       \"maxValue\":0    } }","waitForSetupMsg":false,"outputs":2,"x":970,"y":4600,"wires":[[],["447d3f89.55477"]]},{"id":"447d3f89.55477","type":"subflow:55f20542fc81baa0","z":"d86e8a646cbc6781","name":"Homekit 开关控制","env":[],"x":1200,"y":4600,"wires":[["cdda6b4f.83d1c"]]},{"id":"cdda6b4f.83d1c","type":"knxUltimate","z":"d86e8a646cbc6781","server":"1d670c832649ebb6","topic":"0/0/39","outputtopic":"","dpt":"1.001","initialread":"0","notifyreadrequest":false,"notifyresponse":true,"notifywrite":true,"notifyreadrequestalsorespondtobus":false,"notifyreadrequestalsorespondtobusdefaultvalueifnotinitialized":"0","listenallga":false,"name":"阀门","outputtype":"write","outputRBE":false,"inputRBE":false,"formatmultiplyvalue":1,"formatnegativevalue":"leave","formatdecimalsvalue":999,"passthrough":"no","x":1450,"y":4600,"wires":[[]]},{"id":"1d670c832649ebb6","type":"knxUltimate-config","host":"192.168.2.100","port":"3671","physAddr":"15.15.44","hostProtocol":"TunnelUDP","suppressACKRequest":true,"csv":"","KNXEthInterface":"Auto","KNXEthInterfaceManuallyInput":"","statusDisplayLastUpdate":true,"statusDisplayDeviceNameWhenALL":true,"statusDisplayDataPoint":true,"stopETSImportIfNoDatapoint":"skip","loglevel":"error","name":"KNX Gateway","localEchoInTunneling":true,"delaybetweentelegrams":"50","delaybetweentelegramsfurtherdelayREAD":"1","ignoreTelegramsWithRepeatedFlag":false,"keyringFileXML":"","knxSecureSelected":false,"autoReconnect":"yes"},{"id":"f29d837f.9839c","type":"homekit-bridge","bridgeName":"一号","pinCode":"637-33-325","port":"","advertiser":"bonjour-hap","allowInsecureRequest":false,"manufacturer":"NRCHKB","model":"1.4.3","serialNo":"Default Serial Number","firmwareRev":"1.4.3","hardwareRev":"1.4.3","softwareRev":"1.4.3","customMdnsConfig":false,"mdnsMulticast":true,"mdnsInterface":"","mdnsPort":"","mdnsIp":"","mdnsTtl":"","mdnsLoopback":true,"mdnsReuseAddr":true,"allowMessagePassthrough":false}]
作者: airwb    时间: 2023-1-24 15:30
mark,说不定哪天就能用上
作者: kingzhang13    时间: 2023-1-26 20:23
nodered 里面的KNX 的插件节点下载不下来啊   搞不了啊
作者: Jarvis    时间: 2023-1-30 18:26
helloworld 发表于 2023-1-16 16:18
主要是我喜欢nodede的操作风格,图文感觉更清晰点。

然后,节点直接复制,修改设备对应的knx地址,就行 ...

确实,Node-Red操作起来很方便
作者: annr01    时间: 2023-1-31 19:25
knx抛开价格不讲 应该是最香的
作者: i_Seven    时间: 2023-2-1 10:48
感谢分享!!!
作者: tdct    时间: 2023-2-3 15:03
感谢分享!!
作者: centurion2009    时间: 2023-2-4 11:53
厉害!Mark一下
作者: hasszhuang    时间: 2023-2-5 16:06
麻烦问一下,你的homtkit有未响应的问题吗
作者: helloworld    时间: 2023-2-7 18:45
hasszhuang 发表于 2023-2-5 16:06
麻烦问一下,你的homtkit有未响应的问题吗

没得
一般来说中间连接有问题,才会未响应
估计是有什么连接问题,或者程序有错误就会这样

作者: hasszhuang    时间: 2023-2-8 10:31
helloworld 发表于 2023-2-7 18:45
没得
一般来说中间连接有问题,才会未响应
估计是有什么连接问题,或者程序有错误就会这样

好的 谢谢哈,我的中枢设备 hoomepod 一直都不能在线,搞不清原因
作者: baocha    时间: 2023-7-12 10:01
楼主怎么处理homekit对空调的模式,只支持冷热以及没法支持控制风量大小?
作者: zhujy09    时间: 2023-11-27 14:15
node-red是 HA的 add-on这种方式么?
HA现在又官方的KNX集成了啊,但是对于空调控制有不少问题。比如没有风速控制,Homekit里面也没有风速控制。好奇 你通过Node-Red的方式 把空调接入Homekit之后,家庭App控制空调的页面 是什么样子?
作者: zhang2niu    时间: 2023-12-18 16:38
先MARK一下 学习中
作者: linjz    时间: 2024-1-6 12:46
zhujy09 发表于 2023-11-27 14:15
node-red是 HA的 add-on这种方式么?
HA现在又官方的KNX集成了啊,但是对于空调控制有不少问题。比如没有风 ...

node-red 写流    mqtt订阅状态配置
然后ha里面出来的空调实体就是全功能了
风速 状态 模式 温度全部正常  然后 本论坛讨论的所有卡片都直接使用
作者: hbyuxiang    时间: 2024-1-11 17:14
同开发商预埋的KNX,可是提供KNX支持的公司已经倒闭了,只能自强了
作者: 13661918857    时间: 2024-8-18 20:17
感谢分享
作者: 木天    时间: 2024-9-9 21:38
感谢分享
作者: ck214    时间: 2024-9-13 23:06
感谢分享
作者: feiniao7168    时间: 2024-10-6 21:14
楼主我也有一个deepsmart网关你是怎么搞到账号密码的
作者: qujisong18    时间: 2024-10-20 21:56
gmshiwoge 发表于 2023-1-9 18:18
你node-red 配置是不是每一个灯光要单独弄一个节点啊 多了配置感觉好麻烦
感觉用表格写一个通用格式的knx表 ...

大佬,具体怎么弄?

作者: qujisong18    时间: 2024-10-21 11:22
gmshiwoge 发表于 2023-1-9 18:18
你node-red 配置是不是每一个灯光要单独弄一个节点啊 多了配置感觉好麻烦
感觉用表格写一个通用格式的knx表 ...

具体怎么弄?

作者: helloworld    时间: 2024-11-19 22:34
feiniao7168 发表于 2024-10-6 21:14
楼主我也有一个deepsmart网关你是怎么搞到账号密码的

不需要进去。直接用它放开的端口,可以直接接入nodered的knx插件。就能共享它里面所有的knx设备
ip:3671

你参照我这个流,试一下吧。应该是都能用的,你不需要取修改它的。只要他弄好的话
作者: feiniao7168    时间: 2024-11-21 11:43
helloworld 发表于 2024-11-19 22:34
不需要进去。直接用它放开的端口,可以直接接入nodered的knx插件。就能共享它里面所有的knx设备
ip:3671  ...

弄进去了 设备没了
作者: smith3    时间: 2024-12-4 15:21
这个 KNX IP 设备名字叫什么?搜 OSIX 没找到这款。
作者: 三哥住柳江    时间: 2025-2-27 09:31
feiniao7168 发表于 2024-10-6 21:14
楼主我也有一个deepsmart网关你是怎么搞到账号密码的

默认账号:admin  默认密码:12345
作者: feiniao7168    时间: 2025-3-1 19:45
三哥住柳江 发表于 2025-2-27 09:31
默认账号:admin  默认密码:12345

谢谢解开了 485还是不会玩
作者: 三哥住柳江    时间: 2025-3-3 10:02
feiniao7168 发表于 2025-3-1 19:45
谢谢解开了 485还是不会玩

有需要可以帮你看看。深渡和KNX我还是比较了解的。
作者: feiniao7168    时间: 2025-3-3 10:27
三哥住柳江 发表于 2025-3-3 10:02
有需要可以帮你看看。深渡和KNX我还是比较了解的。

能私信个联系方式吗
作者: 三哥住柳江    时间: 2025-3-3 16:36
feiniao7168 发表于 2025-3-3 10:27
能私信个联系方式吗

我等级不够,不能发私信。你私信给我,我加你。
作者: yangsyzh    时间: 2025-3-8 09:58
感谢分享啊,大神
作者: helloworld    时间: 2025-3-10 21:22
smith3 发表于 2024-12-4 15:21
这个 KNX IP 设备名字叫什么?搜 OSIX 没找到这款。

是这样的,一般的knx网关,我看了下都自带knx/ip 接口,你直接把你的网关的ip加3671端口,就能对接


作者: helloworld    时间: 2025-3-10 21:29
helloworld 发表于 2025-3-10 21:22
是这样的,一般的knx网关,我看了下都自带knx/ip 接口,你直接把你的网关的ip加3671端口,就能对接

...

这样就不用买knx/ip 这个设备了,我的0six就闲置了
作者: smith3    时间: 2025-6-9 22:57
helloworld 发表于 2025-3-10 21:22
是这样的,一般的knx网关,我看了下都自带knx/ip 接口,你直接把你的网关的ip加3671端口,就能对接

...

我看开发商的网关是有接网线的,但是很奇怪的是路由器里根本没有这个设备。想如果实在找不到它就还是买一个算了,但是发现都很贵,大佬是哪里买的?
作者: smith3    时间: 2025-6-16 20:19
三哥住柳江 发表于 2025-2-27 09:31
默认账号:admin  默认密码:12345

大佬牛逼!如果没有 nodered 可以连它的端口吗?
作者: layer_hhh    时间: 2025-7-8 16:08
liy517 发表于 2023-1-11 18:32
你有KNX的IP接口,可以直接在配置-集成里面把KNX设备添加进来,然后再到HomeKit,毕竟noderedred里那么多的 ...

这个集成找到deepsmart了,但没看到设备,怎么破?




欢迎光临 『瀚思彼岸』» 智能家居技术论坛 (https://bbs.hassbian.com/) Powered by Discuz! X3.5