说明:本文主要介绍Matter标准的基本概念以及Matter协议组成。
Matter是由智能家居行业的行业巨头共同提出的目的在于提高不同厂商只能家居产品间的兼容性和互操作性的统一只能家居标准。
解决生态壁垒问题,同一个Matter设备可以同时支持多家厂商的生态系统。(比如个Matter设备可以同时接入苹果和亚马逊)。
解决通信壁垒问题,Matter网络层基于IPV6,天生就有IP连接能力,目前可以在WiFi、thread、以太网上运行,蓝牙仅在配网过程中使用。
更好的兼容性,通过Matter桥接设备可以让非Matter协议的设备加入到Matter网络中。
更加自动化,除去入网配置过程,正常工作的Matter设备间的交互通过本地局域网络实现,不需要额外的转发设备。
更安全,Matter设备从入网到正常工作整个过程都有相关的加密保证。
虽然Matter是应用层的协议,但是作为开发学习人员有必要了解Matter的协议架构,这有助于加深理解。
由架构图可知,Matter日后可能支持另外的“future network layers”
上图中体现了Matter over wi-fi、Matter over thread以及Matter桥接设备的工作情况。
首先设备通过蓝牙加入到Matter网络,因为WiFi本身支持IP,但是thread网络不持支IP,所以Matter over thread 必须通过thread边界路由器给thread网络中的设备分配IP地址,才能进行通信。非Matter协议的设备通过特定的Matter桥接设备也能加入到Matter网络中进行通信。
Matter的应用层可以详细分为7层:
应用:实际使用效果。
数据模型:描述设备各种功能的数据原型。
互动模型:表示可以在设备上执行的能于设备交互的一组操作,即一些对于数据模型的操作。
动作框架:典型的基于互动模型的数据封装。**
安全性&加密和签名:对交互的数据进行加密和签名。
消息构架和路由:与加密和签名的交互,通过可选的或需要的包头创建需要的数据构造,指定消息的属性以及一些路由信息。
IP 成帧和传输管理:将交互的数据进行IP封包,将其发送到底层传输协议以进行数据的 IP 管理。
对于开发学习人员来说,主要的精力放在数据模型、互动模型、动作框架上面,其中的数据模型尤为关键,是Matter能够首先互联互通的关键所在。
Matter其实就是通过使用统一的数据模型来提高智能家居设备的互通性。通讯的过程就是本地的Endpoint和远端Endpoint交互。Matter数据模型可以将具体的设备的所用功能都抽象出来,使得开发过程得到极大的简化。
Matter Node:Matter网络里面的可寻址的,唯一的,具备一系列功能和能力的单元。实际中对应一个具体的设备或者一个具体的软件。
Endpoint:一个物理设备可以划分成为1个或者多个逻辑实体,每个逻辑实体都是一个endpoint。
Endpoint有3种类型:第一种是 Root Endpoint,每一个物理设备都有必须具有。它用来描述一个设备的能力集合; 还有复合(composed endpoint),对于功能比较复杂的设备,我们可以按照一定的层级结构组合这个endpoint。最后还有叶(leaf endpoint)。
Cluster:Cluster是用来实习一种具体功能的模型。Cluster是一个client-server通信模型,即有一个client端和一个server端。Cluster中定义了一些属性、命令和事件。属性一般定义在server端(on/off level等)。Client和server之间是通过预先定义好的命令来控制设备状态,这些命令以请求-应答的方式来工作。Event可以视为一种特殊的命令,即在server发生变化的时候主动通知client端,进行状态同步。
Attribute:Attribute 表示可以读取或写入的内容,支持多种数据格式,实际中代表了智能设备的相关属性(门的开关、室内温度等)。 Attribute 也可以设置为只读。
Command:命令,即触发 Cluster 进行某种行为的指令,每条 Command 可以有自己的参数。比如on/off控制开关,MoveToLevel+参数 控制亮度等。
Matter中的交互发生在本地endpoint和远端endpoint之间,交互的最基本元素是path和action。path是action操作的对象,path可以是一个属性、命令或者是event。Action包括读/写,上报、订阅、调用等,action要么是一个请求,要么是一个响应。
举例如下:
桥接目的:让非Matter设备(Zigbee、Z-Wave、Bluetooth LE Mesh 等协议的物联网设备)可以和Matter设备协同工作。而此功能的实现必须要借助Matter桥接设备。
桥接设备的数据模型如下:
当桥接设备仅仅完成协议翻译工作时,其数据结构如上图所示,EP0中PartsList字段列出桥接设备的所有端点,每个端点代表一个非 Matter 设备。其设备类型为 Bridge。
除过EP0外其他端点上的 Descriptor(描述符)Cluster 可以提供有关特定被桥接设备的信息。它们的设备类型为Bridge Node。
当桥接设备除了翻译协议外还具备Matter原生功能(比如恒温器)时,其数据结构发生细微变化。
此时虽然EP0的PartsList中包含EP1,但是EP1代表桥接设备本身而不是非Matter设备的功能,这种情况下EP1的设备类型中没有Bridge Node。
#【参考目录】:
Silicon Labs在B站的系列视频。
乐鑫推出 Matter 系列博客。
@Eagle115博主的Matter系列文章。
https://github.com/project-chip/connectedhomeip#connected-home-over-ip
(注:任何相关问题,欢迎在文末技术交流QQ群中交流讨论。)