01 前言
本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,请搜索公众号: 智能家居NodeRed和HomeAssistant 即可关注。
02 概述
基于NodeRed的Zigbee2MQTT多功能多控网关开发专题正式开贴,上一篇文章中已经对该项目开发目的、规划进行过详细介绍,有兴趣的朋友可以通过以下链接访问阅读《Zigbee2MQTT应用开发:实现多控、区域、场景、定时控制与云接入》。
03 项目功能概要
04 本章主题:系统配置和初始化
本章是项目的核心内容,也是该流程中唯一需要自定义数据的部分,只要在这个环节完成数据定义,后续只需要加入各个功能模块即可。以下是系统配置与初始化部分的流程图。
本流程附带了三个小工具
1.流程中存在的变量名称:可以显示当前流程页面中存在的变量名称;
2.删除流程中的所有变量:可以对当前流程页面中存在的变量全部删除;
3.输出配置数据内容:即输出系统的配置信息以供检查;
下面就针对关键节点”数据定义”节点进行详细说明,该节点的作用是对Zigbee2MQTT的数据进行定义,为简化操作和方便排错,我制作了一个Excel表以供编写定义:表格分成了如下6个部分:
1.基础信息设置;
2.分组、分区、场景;
3.HA自动发现;
4.涂鸦云;
5.定时;
6.数据合并。
本章只涉及基础信息部分,故暂只对该部分进行说明,样表如下图所示,可在文章末尾网盘中进行下载。
id:为每个开关回路或者设备序号,需保持唯一不可重复;
FN:即FriendName对应Zigbee2MQTT中“昵称”值;
Notes:为每个开关回路或者设备的名称,根据自己喜好自信设置,如果使用HA自动发现,则改值为HA中实体的中文名称;
CH:该选项主要是为多路开关进行设置,例如四路开关1~4路分别为L1、L2、L3、L4,以此来定义每路开关,单路开关则留空或者删除该项;
CMD:定义控制命令,默认为/set,无特殊需要此项可删除不设置;
MC:Master_Control,意为主控,即该回路直接连接的灯具或回路;
DevClass:设备类型,需按照HA定义的设备类型进行设置;
当按照家庭具体开关灯具配置完成后基础配置也就完成,这时可以在表格“合并数据”当内容复制到“数据定义”节点中替换成预设数据,这是可以通过附带的小工工具“输出配置数据内容”查看配置情况,如下图所示:
通过以上设置后,可以设置MQTT节点:“主动查询Z2m设备状态”和“动态订阅Z2m设备主题”,这两个节点设置为Zigbee2MQTT所连接MQTT服务器。
“主动查询Z2m设备状态”的作用是通过“设备注册及初始化”节点自动生成查询Zigbee2MQTT的设备状态指令即时输出设备状态,以便快速构建设备信息序列;
“动态订阅Z2m设备主题“的作用是通过“设备注册及初始化”节点自动生成动态订阅MQTT服务主题并接收订阅主题信息发送给“主题转换提取”节点生成MQTT状态主题。
完成设置后可以通过Debug节点输出结果如下:
至此,基础设置就已经完成,以后功能定义就极为简单,根据需要适当调整即可,后续更新会不断的添加功能模块,逐步实现预期的功能。
05 结束语
此流程开发编写不易,还望朋友们理解和支持!
请大家点赞、转发以便更多的朋友能够读到本文章,感谢大家的支持与厚爱!
流程代码及配置文档工具请在公众号获取:智能家居NodeRed和HomeAssistant