01 前言
本文章原文发表于我的微信公众号,请大家关注阅读,涉及的源代码等都在公众号,请搜索公众号: 智能家居NodeRed和HomeAssistant 即可关注。
02 概述
在智能家居领域,Zigbee2MQTT已经成为了许多爱好者和开发者的热门选择,它能无缝的与HomeAssistnat对接,当然现在不是讲如何配置Zigbee2MQTT,也不是讲如何接入HA,因为随便一搜就有一大把教程,今天分享的是在其他地方都看不到的,那就是把Zigbee2MQTT接入云。
03 流程概览
Zigbee2MQTT以下简称Z2m,理论上可以通过NodeRed接入任何云平台,我已经测试过接入华为云、阿里云、涂鸦云,这里主要讲的是接入涂鸦云。在前面曾用两篇文章详细讲解过涂鸦生态云的对接,大家可以通过以下链接阅读前面的文章:
1.如何让本地设备接入涂鸦云(一);
2.如何让本地设备接入涂鸦云(二);
这两篇文章主要讲解涂鸦生态云对接的基本操作,仅能对接单一设备接入且操作复杂,为了简化操作步骤和批量化的接入,我设计了一套NodeRed流程如下:
接入涂鸦生态后的操作界面如下:
用过涂鸦的朋友应该已经发现涂鸦生态的界面没有网关接入的酷炫,但是在功能使用上基本没有区别。
04 流程特点
只要能够接入Z2m的设备都可以接入涂鸦云,因我自有设备有限目前流程暂时只能接入传感器、开关、阀门、类型的设备(窗帘接入正在测试中,下次更新)。
1.无需涂鸦网关;
2.可选HomeAssistant自动发现功能,如不需要可以删除相应节点;
3.HA自动发现为设备,按照自定义方式接入;
4.免设置订阅和发布主题,简化设置流程;
5.用较少的节点,实现复杂的功能;
6.涂鸦分组状态可视化显示;
05 流程使用方法
我把接入流程分成了5个板块,下面逐一对每个板块进行讲解;
板块①
该板块为此流程的核心,其作用是对设备进行定义,打开此节点可以看到如下信息:
设备的定义各键对应的含义如下:
Devices配置
-
id:为每路设备的序号,目前暂无实际用途;
-
Notes:在HA自动发现时的设备名称;
-
Friendly_name:在Z2m中的设备昵称;
-
Key:用于提取Z2m订阅消息的键名,用于读取设备状态;
-
Path:MQTT识别路径;
-
DrvClass:HA中的设备类别;
-
Drv:HA中的设备类别;
-
entities:HA中的实体名称定义;
-
DrvClass:HA中的设备类别;
-
entities:HA中的实体名称定义;
-
Path:MQTT路径,需以“/”结尾;
-
Notes:HA中显示的中文名称;
-
icon:自定义HA图标;
-
DevName:HA中自动发现为设备的名称;
-
TY_Group:分组涂鸦设备的序号;
-
TY_CTL:为tuya功能定义中的标识符(同一组中的标识符不能重复)
TYG配置(涂鸦信息)
TY_Group:分组涂鸦设备的序号,即和DevicesTY_Group值相等的设备都为同一组别;
ID:在涂鸦生态中的设备名称/设备ID;
Name:仅做分组标识;
把以上信息修改设置完成后,系统定义就基本完成了。
板块②
该部分的主要功能是通过订阅Z2m服务信息以及设备定义生成涂鸦生态所能识别的消息格式,即状态上报至涂鸦服务器,同时它能根据分组编号输出到相应的通道,每路通道对应输出到不同的涂鸦生态设备。限制速率节点能够有效的限制上报消息传输数量,同时也能在状态改变时及时上报状态。
板块③
作用是订阅涂鸦服务的控制命令并解析成Z2m可以识别的命令,从而达到通过涂鸦控制Z2m设备的目的。
板块④
作用是HomeAssistant自动发现为设备,如果不需要,可以将此板块全部删除。
板块⑤
节点本身没有任何意义,目的是连接板块1中的主动查询状态指令,使设备第一时间能够反馈当前状态,让流程看起来更清爽。
为什么要对涂鸦进行分组?
分组不是必须的,完全取决于你对接入涂鸦生态的规划和设备数量。
特别说明:
流程中的MQTT节点,标注有Z2m的节点是连接Z2m的MQTT服务器,标注有HA的节点是连接HA的MQTT服务器,标注有涂鸦的是连接涂鸦云的MQTT设备服务,特别是对涂鸦节点的MQTT服务设置需参考前面的文章设置,每个分组的MQTT服务需要分别设置。
06 流程获取
请关注公众号智能家居NodeRed和HomeAssistant 在粉丝专享专区获取。