- 积分
- 482
- 金钱
- 381
- 威望
- 0
- 贡献
- 0
- HASS币
- 0
中级会员
- 积分
- 482
- 金钱
- 381
- HASS币
- 0
|
本帖最后由 louwu 于 2024-2-8 09:35 编辑
本人小白一枚,不懂编程,纯靠乐趣和爱好,没事就看看论坛,摸索着搞智能。
目前家里有一个莱特智能家居的主机,可以发送自定义指令,然后家里的开关、灯、窗帘都是通过485控制的。
主机地址192.168.31.188,端口4196(这个是监听端口,实际控制端口是4198)这个主机有tcp转485的功能,
目前的做法是:
一、建一个nodered流监听485线路上指令,tcp in设置4196端口监听主机的数据,tcp out设置4198端口发送指令给总线设备。(已解决,流已附后)
二、虚拟配置一个开关,通过开关状态改变用switch判断,发送相应的485指令,控制设备。(已解决,流已附后)
进一步使用,调光模块、485窗帘,控制亮度比例和窗帘开合比例。(未解决)
三、通过查询设备状态进一步同步实体开关和虚拟开关的状态(这步还没开始,只是设想)
四、通过ha把其他的小米设备联动485设备。
这是第二步:
1、通过mqtt配置了一个demo_light1开关
2、再通过mqtt订阅homeassistant/light/+/set主题,debug得到ON\OFF的结果,
3、再通过switch判断ON\OFF,分别对应function函数,payload发送485指令,
(这里之前没搞清楚,生搬硬抄了,实际应该按照homeassistant/light/+/set主题的debug输出,复制完全的路径,实际是payload.state,不只是payload,后面的流中要改一下)
4、再通过mqtt发送到主机4198端口,从而控制485设备。
目前已经能通过虚拟开关,发送自定义指令控制485设备了。
接下来又开始折腾灯的调光了,无从下手;
需要解决的问题是:
1、灯都是双色温筒灯,调光模块有开和关的功能,还有调黄光和白光的功能。
比如设备地址是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进制指令的转换,这里请大佬指点一下
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;
[size=10.5000pt]
|
|