【ESP-Matter】matter协议学习笔记--以乐鑫方案为例

news/2024/11/15 23:24:40/

matter协议学习笔记--以乐鑫方案为例

  • 0. 写在前边的话
  • 1. matter 协议基本概念
  • 2. 设备间的本地自动化交互
    • 2.1 同步控制的实例:
    • 2.2 异步通知(订阅、报告)
  • 3. 桥接设备
  • 4. thread 边界路由器
  • 5. 专业名词

0. 写在前边的话

以下学习笔记均参考乐鑫官方给出的 esp_matter 方案;
主要包括matter基本概念,设备间的监护、设备桥接、thread边界路由器等

关于乐鑫 esp-matter 方案,自己的环境搭建以及测试过程见以下两篇博文:

【ESP32-Matter】基于 Matter 协议的 esp32-c3 开发板通讯测试过程

【ESP32-Matter】基于matter协议 chip-tool 控制 esp32-c3 开发板点灯

1. matter 协议基本概念

参考资料:【智能家居互联标准 Matter 的数据模型】

matter node:节点,灯泡类设备

–-> endpoints0 ,端点0,保留

–-> endpoints1 ,端点1,可以调节亮度的灯泡设备

​ –> cluster1: on、off

attribute

command

–-> endpoints2 , 端点2,只能开关的灯泡设备

​ –> cluster2: 灯的亮度

attribute

command

–-> endpointsx ,端点x,xxxx

image-20221226160006895

可调光灯泡作为一个 endpoint,是服务端,一个遥控器或者手机App都可以作为客户端控制服务端。

image-20221226160959432

2. 设备间的本地自动化交互

每个 cluster 都有一个 cluster 服务器及其对应的客户端, Matter 设备之间的通信实际上就是 Cluster 服务器和客户端之间的通信。终端用户可以配置家中的 Matter 设备,使其与一个或多个设备进行交互。比如,通过matter手机APP绑定多个要控制的设备。

image-20221226161823791

2.1 同步控制的实例:

image-20221226163612082

手机APP向开关发送绑定指令—命令开关和灯泡绑定

开关和灯泡绑定后,二者建立通信链路

用户使用手机对开关操作,开关就会操作灯泡的开关

若一个通过一个 Dimmer Switch(调光器开关)控制一个 Dimmable Light(可调光灯泡),则需要再部署一个 Level Control Cluster 客户端

2.2 异步通知(订阅、报告)

image-20221226163803044

用户需要将恒温器与传感器绑定

恒温器订阅传感器的 Attribute,并定期或在传感器 Attribute 变化时,接收来自传感器的数据

当传感器的数据发生变化时,可以触发恒温器进行一系列操作

3. 桥接设备

matter fabric:即同一安全域下的 Node 集合,在该安全域下 Node 能够彼此认证建立安全通信。 一个 Fabric 共享同一证书机构(Certificate Authority (CA)) 的根证书(Root of Trust),同时约定一个 Fabric ID。

参考资料:【Matter 系列之 Fabric】 【Matter 系列之 Commissioning】

一个生态可以描述一个 Fabric,如上的 Google Fabric。一个设备可以同时加入多个 Fabric,也就是同时被多个生态使用,取决于设备能力。

image-20221227083357565

【桥接设备】

如下,Matter-Zigbee 桥接设备可以让两个 Zigbee 灯泡加入 Matter 生态系统

image-20221227092144667

Matter 桥接设备除了充当协议“翻译”外,还可以具有 Matter 原生功能:比如一个智能恒温器设备既可以作为桥接设备,完成 Zigbee 等协议与 Matter 生态的通信,也可以同时作为一个标准的 Matter 智能恒温器设备,通过 Matter 协议向暖通系统发送控制指令。

桥接过程解释:给出一个例子,一个ZigBee 设备 ,加入matter网络,实现被matter APP 控制。

matter 生态 桥接设备 非matter网路

matter fabric bridge ZigBee network

  • 第一步,matter 桥接设备遵循matter配网流程,桥接设备首先加入matter网络
  • 第二步,桥接设备加入ZigBee网络,注意,桥接设备加入不同的网络是根据不同厂商定义的不同的网络加入方式
  • 第三步,桥接设备成功加入ZigBee 和 matter 网络后,在ZigBee网络中广播消息来发现ZigBee网络中的设备,比如:谁是OnOff灯泡?ZigBee网络中满足条件的设备会给出response,并回复自己的网络地址,桥接设备将为每一个匹配的 Zigbee 设备添加一个动态端点,使其作为被桥接设备加入 Matter 网络。
  • 第四步,matter 系统会根据matter协议中的设备发现机制发现桥接设备
  • 第五步,通过以上四步之后,matter APP 就可以在桥接设备的过渡下,控制ZigBee网络中的灯泡了

4. thread 边界路由器

参考:【Matter 中的 Thread 边界路由器】

matter 协议拓扑结构:

image-20221227094302996

thread 边界路由器:在 wifi 网络和 thread 网络之间转发IP帧。只需专注于IP层通信,无需关注应用层数据

5. 专业名词

参考:【matter设备调试(Device Commissioning):】

Device Commissioning:设备调试

Commissionee:被调试的设备

Commissioner:调试专员,管理设备调试的设备

【基本概念与专业英文词汇】


http://www.ppmy.cn/news/7712.html

相关文章

一文了解什么是NFT

一、什么是NFT NFT 是我们可以用来代表独特物品所有权的代币。他们让我们对艺术品、收藏品甚至房地产等事物进行代币化。资产的所有权由以太坊区块链保护——没有人可以修改所有权记录或复制/粘贴新的 NFT。 NFT 代表不可替代的代币。Non-fungible 是一个经济学术语&#xff…

Java数组,list,set相互转换

1.list转为set List listnew ArrayList<>(new HashSet()); 2.set转为list Set setnew HashSet<>(new ArrayList()); 3.数组转为list int a{1,2,3,4}; List listArrays.asList(a); 4.数组转set int a{1,2,3,4,5,6}; Set setnew HashSet<>(Arrays.asLis…

Spark 之 Join

broadcast join spark.sql.autoBroadcastJoinThreshold 所配置的值&#xff0c;默认是10M&#xff0c;当某一张表的大小小于这个值时&#xff0c;将这张表收集到driver&#xff0c;然后广播到每一个executor上&#xff0c;这样的好处就是&#xff0c;大表进行join的时候&#…

【nowcoder】笔试强训Day12

目录 一、选择题 二、编程题 2.1二进制插入 2.2 查找组成一个偶数最接近的两个素数 一、选择题 1.以下方法&#xff0c;哪个不是对add方法的重载? public class Test {public void add( int x,int y,int z){} } A. public int add(int x,int y,float z){return 0;} B.…

解决医疗健康领域的网络安全和云技术技能差距

说明信息 近年来&#xff0c;网络安全事件 频发&#xff0c;事件造成的影响也日益增大&#xff0c;对于医疗健康行业&#xff0c;网络安全的重要性凸显。随着医疗信息化的普及&#xff0c;医疗设备与相关系统的安全性已经关系到医疗机构 业务的正常运营。勒索软件&#xff0c;…

Vim生成递增递减的数字【记录器的使用】

一、添加一列连续递增的数字 1、vim打开待编辑文本&#xff0c;先将光标定位到某空行行首&#xff0c;并保证vim处于普通模式&#xff08;normal模式&#xff09;&#xff0c;然后按顺序执行以下命令&#xff1a; i #进入插入模式; 9 #输入数字9 ESC…

C++【跳表】

文章目录一、什么是跳表二、跳表的实现三、跳表性能分析一、什么是跳表 skiplist本质上也是一种查找结构&#xff0c;用于解决算法中的查找问题&#xff0c;跟平衡搜索树和哈希表的价值是一样的&#xff0c;可以作为key或者key/value的查找模型。 skiplist是由William Pugh发…

apt-fast 使用

apt-fast 使用1. 安装2. 使用默认的apt-get install&#xff0c;有时下载会非常的慢&#xff0c;尤其是安装的一些ppa包的时候。apt-fast 通过使用多线程来给apt提速&#xff0c;极大地提高了效率。 1. 安装 添加ppa仓库 sudo add-apt-repository ppa:apt-fast/stable 更新软…