Zigbee2MQTT多控网关开发专题:【第一篇】系统配置与初始化

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 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/56103.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux shellcheck工具

安装工具 通过linux yum源下载,可能因为yum源的问题找不到软件包,或者下载的软件包版本太旧。 ShellCheck的源代码托管在GitHub上(推荐下载方式): GitHub - koalaman/shellcheck: ShellCheck, a static analysis tool for shell scripts 对下…

关于不建议使用北京新网数码信息技术公司的服务器和虚拟机的说明(重要说明)

尊敬的用户们, 我们注意到了关于北京新网数码信息技术有限公司服务器和虚拟机服务的一些用户反馈,特别是关于虚拟机不支持根目录设置、免费查杀以及WAF防护效果的问题。此外,还有用户提到云主机的保护措施不到位,并且实际提供的防…

【selenium】webdriver测试脚本

【背景】 不同电脑上运行selenium时总是因为环境问题出幺蛾子,所以需要一个最简单的脚本每次先验证一下能不能正常启用selenium。 【脚本】 这个脚本做的事情就是试着用selenium启动网页,默认用了百度首页,也可以根据情况自己修改。 from…

VSCode搭建C/C++开发环境【Windows】

VSCode搭建C/C开发环境 1. 配置C/C开发环境1.1 下载和配置MinGW-w64编译器套件1.2 安装C/C插件 2. 在VSCode上编写C语言代码,并编译执行2.1 先打开一个文件夹,写一份C语言代码2.2 设置C/C编译的选项:c_cpp_properties.json2.3 创建执行任务&a…

Unity MVC框架1-2 实战分析

该课程资源来源于唐老狮,吃水不忘打井人,不胜感激 Unity MVC框架演示 1-1 理论分析-CSDN博客 首先你需要知道什么mvc框架,并且对三个层级有个比较清晰的认识,当然不清楚也好,下面例子中将会十分细心地让你理解&#x…

光控资本:牛市一般维持多长时间?牛市的轮涨顺序是什么?

牛市继续多长时间没有一个统一标准,我们是无法判断牛市什么时候到来,什么时候结束的。以A股牛市前史为例,继续时间从几十天到几年的情况都有,是没有规则可循的,现在A股继续最久的一次牛市是862天。 纵观A股前史&#…

CGNS资料

CGNS数据文件 资料 CFD General Notation System CGNS Converters vtkCGNSReader cgnsToFromFoam Example Computer Codes 8.1.2. CGNS Mesh Format and Multizone Interface Connectivity 8 Multizone Interface Connectivity pyvista.cgnsreader CGNS for MATLAB and Octave…

【路径规划】创建末端执行器的路径,导入URDF模型,使用逆向运动学进行路径规划

摘要 本文通过路径规划为机器人末端执行器生成运动路径,采用URDF(Unified Robot Description Format)导入机器人模型,并结合逆向运动学进行路径规划和控制。使用Matlab进行建模和仿真,以确保执行器沿预定路径顺利运动…

API调用comfyui工作流,做一个自己的app,chatgpt给我写的前端,一键创建自己的卡通形象,附源码

前言 工具介绍 首先 comfyui你是少不了的,这个是工作流的后端支持,用这个去调试工作流和生成API可调用文件 前端我们就用很流行的gradio吧,什么你一时半会没有学gradio的计划,没事,笔者也没系统学过,我干…

Ubuntu18.04安装cuda11.1(出现c++版本问题)

一、概述 需要使用到ubuntu18.04进行cuda的配置,最新版本的cuda跟pytorch的版本不太适配,所以为了能够复现,我选择了一些老版本的cuda11,其使用的范围更加广泛。将自己 二、具体操作 (一)安装流程 1.官网…

[Linux#62][TCP] 首位长度:封装与分用 | 序号:可靠性原理 | 滑动窗口:流量控制

目录 一. 认识TCP协议的报头 1.TCP头部格式 2. TCP协议的特点 二. TCP如何封装与分用 TCP 报文封装与解包 如何封装解包,如何分用 分离有效载荷 隐含问题:TCP 与 UDP 报头的区别 封装和解包的逆向过程 如何分用 TCP 报文 如何通过端口号找到绑…

帝国CMS系统开启https后,无法登陆后台的原因和解决方法

今天本地配置好了帝国CMS7.5,传去服务器后,使用http访问一切正常。但是当开启了https(SSL)后,后台竟然无法登陆进去了。 输入账号密码后,点击登陆,跳转到/e/admin/ecmsadmin.php就变成页面一片…

多线程会在一个事务里面吗?

目录 多线程会在一个事务里面吗? 多线程、数据库事务以及数据库连接之间的关系 Spring的事务管理​​​​​​​ 声明式事务Transactional的实现原理 声明式事务Transactional的失效场景 Transactional注解的方法不是public为什么会失效 Spring AOP的代理机制…

【C++】——继承(下)

【C】——继承(下) 5 继承与友元6 继承与静态成员7 多继承7.1 继承模型7.2 菱形继承的问题7.3 虚继承7.4 多继承中的指针偏移问题 8 组合与继承 5 继承与友元 友元关系不能被继承。即一个函数是父类的友元函数,但不是子类的友元函数。也就是说…

【C++】用红黑树模拟实现set与map

目录 一、红黑树的完善: 1、红黑树节点模版的修改: 2、仿函数在模拟实现中的应用: 3、新增迭代器: 4、红黑树中的迭代器实现: 二、set与map的模拟实现: 1、insert: 2、map的[ ]: 三、测…

vue中关于router.beforeEach()的用法

router.beforeEach()是Vue.js中的路由守卫,用于在路由跳转前进行校验、取消、重定向等操作。 基本使用: const router new VueRouter({ ... })router.beforeEach((to, from, next) > {// ... }) to: 即将要进入的目标路由对象 from: 当前导航正要…

HTML的介绍

HTML HTML是一种超文本标记语言,超文本是指,除了文本之外,还可能包含图片,音频,或者评注等的 文本形式,比文本强大,通过链接和交互方式来组织和呈现信息.标记语言是指,由标签构成的语言.HTML定义了多种不同的标签,用来表示不同的内容. 标签的介绍: 1.<h3> 三级 </h3&…

如何彻底掌握 JavaScript 23种设计模式

设计模式是解决特定问题的常用解决方案&#xff0c;它们可以帮助开发者编写更清晰、可维护、可扩展的代码。在 JavaScript 中&#xff0c;常见的设计模式可以分为三大类&#xff1a;创建型模式、结构型模式 和 行为型模式。本文将全面介绍 JavaScript 中常见的设计模式&#xf…

03_23 种设计模式之《原型模式》

文章目录 一、原型模式基础知识原型模式的结构应用场景 实例拷贝构造函数被调用场景如下&#xff1a;典型的应用场景&#xff1a; 一、原型模式基础知识 原型模式是一种创建型设计模式&#xff0c;其功能为复制一个运行时的对象&#xff0c;包括对象各个成员当前的值。而代码又…

Python知识点:基于Python技术,如何使用YOLO进行实时物体检测

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 使用YOLO进行实时物体检测的Python技术详解 实时物体检测是计算机视觉中的一个关…