01 前言
本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,请搜索公众号: 智能家居NodeRed和HomeAssistant 即可关注。
这是春节前的最后一次更新,感谢朋友们大半年以来的持续关注与支持,在此提前祝大家新春快乐、阖家幸福、万事如意!
言归正传,上一篇主要讲解基于NodeRed的Zigbee2MQTT多功能多控网关第一篇【系统配置与初始化】,如果您已阅读并完该篇操作,即可继续本篇:系统的分组同步控制。
文章快速访问链接:
1.项目简介
02 项目功能概要
03 本章主题:分组同步控制设置
本章完整流程图如下:
分组同步功能演示功能如下:
演示视频:
Zigbee2MQTT多控网关开发专题-分组同步演示
本章新增节点及功能描述:
数据分组:
对设定设备进行分组输出,同时统计设置的设备数量、分组数量和主控数量。
数据过滤:
对分组数据重复数据进行处理,避免后续节点多次触发,同时显示分组编号和名称;
分析同步执行:
对过滤的分组数据进行处理,识别需要处理的分组数据,判断各回路状态,根据设定逻辑输出执行主题,这里最重要的逻辑是处理反馈超时的“阻断”和“放行”。即当指令发出后判断所有回路的执行反馈,如果反馈执行正确则允许执行下一条指令,如果反馈不正确则阻断(默认10S)后再允许执行下一条指令。
节点实时显示阻断或放行状态,获取的通道数量/配置的通道数量以及各通道回路的当前状态。
过滤重复:
这是执行环节中的最后一道保险,其目的是对多余的控制指令进行拦截阻断,防止设备重复执行操作(防止设备频繁操作进行死循环),主要是对单位时间内消息超量、开关同步过滤超限阻断拦截,从而保证系统正常运行。
下面继续对关键节点”数据定义”进行详细说明并完成分组定义,Excel数据表需完成以下三分部内容设置:
1.基础信息设置;
2.分组、分区、场景;
3.HA自动发现;
4.涂鸦云;
5.定时;
6.数据合并。
本章涉及分组定义,样表如下图所示,可在文章末尾网盘中进行下载。
基础信息设置请转阅第一篇内容。
本章重点为分组定义字段“Group”。
分组控制也可以理解为多联开关控制,分组即把控制目标相同的实体开关定义到同一组别,可以实现同时开关和状态反馈功能,例如开关1的第一路和开关2的第三路为一组,把它们的Group值设置成相同值即可,要想实现灯具同步控制其中必须有一路连接有实体灯具的回路即其中有一路MC的值为true,其它各路可以是不连接实体灯具的控制开关,并作为多联控制开关的分控。
Group值的定义范围需为大于等于1的数值,存在多个分组时需连续设置,另外对于不在任何分组内的开关回路需设置该项值为0,否则将影响后面的HA自动发现功能。以下是分组1的定义示例:
当完成以上设置后,这时可以在表格“合并数据”内容复制到“数据定义”节点中替换成预设数据,这时可以通过附带的小工具“输出配置数据内容”查看配置情况。
此时可以通过导入“数据分组”节点,然后设置节点中输出数量,此输出数量值等于你的分组数值,示例中分组数为17,如下:
随后导入“消息过滤”、“分析同步执行”、“过滤重复”并连接到“数据分组”的全部节点,如流程中所示完成即可,注意这些节点是无需更改的,设置完成部署后流程会自动运行,点击分组内的开关即可实现分组同步功能(调试完成后需打开禁用的Z2m发布节点并设置)
至此,分组同步功能就此完成,设置完成后即可对开关进行分组控制,即实现双控和多控功能。当然有人说此功能实现很简单,但是只有实际使用过的人才知道其中存在的问题和难点,尤其对于稍大的系统。经过近一年来的流程测试,事实证明它完全和tuya网关的多控功能一致,甚至更强。
04 结束语
此流程开发编写不易,还望朋友们理解和支持!
请大家点赞、转发以便更多的朋友能够读到本文章,感谢大家的支持与厚爱!
本文涉及的流程代码及工具请访问公众号获取: