本帖最后由 lmy8812 于 2018-12-4 11:23 编辑
计划把家里20多路照明全部都用远程+本地双控,Sonoff可以实现但是布线太麻烦,ESP8266+继电器模块也可以实现不过需要编译。因此节后从某宝淘了网络继电器模块,支持Modbus协议,优点:弱电控制安全,布线相对简单(新装修)检修方便。
关于继电器 - 首先要确定输入端可控继电器输出;
- 其次要实现完美双控,需要继电器支持输入端反转,即本地开关接通-->远程控制断开之后本地开关切换成下一状态(断开)也能接通电路。(自复位开关据了解一般是点动开关,所以要找支持点动开关的相应板子)。
- 还有一个问题,不确定是否都会有,我这块板子默认输入端输入信号到继电器响应会有几秒延迟,是因为默认允许交流输入,关了就能即时响应。我是直流输入,不知道交流输入会怎样。
- 当然是不是导轨式的可能也会成为值得考虑的一个问题。
Modbus通信有两大类一类是Modbus RTU,使用485总线,可以用485转usb接入;一类是Modbus TCP用网线连接,configuration里配置如下:
开关配置超级简单:
这里简单说一下slave,Modbus RTU是主从通讯模式,485总线把主机(HA设备)和各从机(继电器板子)手拉手串联起来,每个从机都有唯一的从机地址(即slave)。这样虽然所有从机都能接到主机发送的通信,但只有指定从机才会处理相关指令。一般默认从机地址为1,可以用串口调试工具根据通讯协议修改地址。不建议使用官网上的register来配置开关,反正怎么设我都只能开不能关。
而Modbus TCP其实是星状结构,每个设备直接接入交换机,都有自己的ip地址,所以不存在slave的定义。问题来了,HA对Modbus这种古老实用的通讯方式不太关注,RTU可以通过设定不同的从机地址来接入多块设备,而TCP因为脚本太简单只能控制一个ip地址的设备但无法多块接入。解决办法可以参考网络继电器-接入HA(MQTT转socket协议)python脚本和8通道网络继电器接入HA支持状态反馈。
最后分享点小工具:
12.04
好吧其实发完这个帖子之后就发现了另一个致命问题,要实现设备状态即时同步,必须高频率扫描各设备状态,会影响其他信号的传输。
所以就放弃modbus了,直接在node-red里控制串口信号。
|