louwu 发表于 2024-2-6 14:31:15

莱特智能的485设备通过TCP接入ha,请大佬指导,也记录一下...

本帖最后由 louwu 于 2024-2-8 09:35 编辑

本人小白一枚,不懂编程,纯靠乐趣和爱好,没事就看看论坛,摸索着搞智能。
目前家里有一个莱特智能家居的主机,可以发送自定义指令,然后家里的开关、灯、窗帘都是通过485控制的。
主机地址192.168.31.188,端口4196(这个是监听端口,实际控制端口是4198)这个主机有tcp转485的功能,
https://bbs.hassbian.com/forum.php?mod=attachment&aid=NTU4NzB8Mjc1ZGU5Y2Z8MTcwNzM1NTY3Nnw3NTk1MXwyNDE3Mg%3D%3D&nothumb=yes
目前的做法是:
一、建一个nodered流监听485线路上指令,tcp in设置4196端口监听主机的数据,tcp out设置4198端口发送指令给总线设备。(已解决,流已附后)
https://attachment.hasstatic.com/forum/202402/06/143010ooeeoelbk9ork5ro.png
二、虚拟配置一个开关,通过开关状态改变用switch判断,发送相应的485指令,控制设备。(已解决,流已附后)https://attachment.hasstatic.com/forum/202402/07/160630qkgdgwdlz0lw0mwb.png
       进一步使用,调光模块、485窗帘,控制亮度比例和窗帘开合比例。(未解决)
三、通过查询设备状态进一步同步实体开关和虚拟开关的状态(这步还没开始,只是设想)
四、通过ha把其他的小米设备联动485设备。

这是第二步:
1、通过mqtt配置了一个demo_light1开关
2、再通过mqtt订阅homeassistant/light/+/set主题,debug得到ON\OFF的结果,
3、再通过switch判断ON\OFF,分别对应function函数,payload发送485指令,
https://attachment.hasstatic.com/forum/202402/07/160817xt983xpep9topor9.png(这里之前没搞清楚,生搬硬抄了,实际应该按照homeassistant/light/+/set主题的debug输出,复制完全的路径,实际是payload.state,不只是payload,后面的流中要改一下)
4、再通过mqtt发送到主机4198端口,从而控制485设备。


目前已经能通过虚拟开关,发送自定义指令控制485设备了。
接下来又开始折腾灯的调光了,无从下手;
需要解决的问题是:
1、灯都是双色温筒灯,调光模块有开和关的功能,还有调黄光和白光的功能。
https://attachment.hasstatic.com/forum/202402/06/143045xzmcaiofc3ydm2w3.png比如设备地址是1A 17 12 12 B1
指令分别是:
开:1A 17 12 12 B1 FF FF 01 FF FF 01 0F
关:1A 17 12 12 B1 FF 00 01 FF 00 01 0F
调光的话就是调中间这个00-FF,具体没试过
后面的第一个FF FF 01代表一路黄光开,第二个FF FF 01代表第二路白光开,0F校验位。(FF 00 01代表关)
如何虚拟这个调光设备,应该是在配置虚拟开关时加入一个brightness_state:的选项,包括亮度调节0-100%,对应的16进制指令的转换,这里请大佬指点一下:handshake
var id = 'demo_light_1'
msg.topic="homeassistant/light/"+id+"/config"
msg.payload ={
    '~':'homeassistant/light/'+id,
   'name':'light_'+id,
   'command_topic':'~/set',
   'state_topic':'~/state',
   "unique_id":"light_"+id,
   "schema": "json"
}

return msg;



ylilike 发表于 2024-2-6 17:42:04

mqtt,辅助元素,nodered集成,随便搞个都行

louwu 发表于 2024-2-7 15:50:43

本帖最后由 louwu 于 2024-2-7 16:23 编辑

根据楼上大佬提示,去b站反复翻看大头_西瓜的视频,学会了一小步。
1、通过mqtt配置了一个demo_light1开关,
mqtt配置虚拟开关.rar
2、再通过mqtt订阅homeassistant/light/+/set主题,debug得到ON\OFF的结果,
https://bbs.hassbian.com/forum.php?mod=image&aid=55897&size=300x300&key=40fe741bc62cb367&nocache=yes&type=fixnone
mqtt订阅转换.rar
3、再通过switch判断ON\OFF,分别对应function函数,payload发送485指令,
https://bbs.hassbian.com/forum.php?mod=image&aid=55898&size=300x300&key=bd3e476f68e920b6&nocache=yes&type=fixnone
4、再发送到主机4198端口,从而控制485设备。
第3步出现问题:不知道如何从mqtt订阅的结果中用switch判断ON\OFF。本人纯小白,请大佬们不吝赐教


louwu 发表于 2024-2-7 15:52:10

第三步占位

louwu 发表于 2024-2-7 16:20:09

不知道怎么插入大图:L

louwu 发表于 2024-2-8 09:08:03

louwu 发表于 2024-2-7 15:50
根据楼上大佬提示,去b站反复翻看大头_西瓜的视频,学会了一小步。
1、通过mqtt配置了一个demo_light1开关 ...

这个解决了,实际第3步应该按照homeassistant/light/+/set主题的debug输出,复制完全的路径,实际是payload.state,不只是payload
页: [1]
查看完整版本: 莱特智能的485设备通过TCP接入ha,请大佬指导,也记录一下...