Matter基础用语介绍

Matter 是什么?

Matter 协议是 CSA(Connectivity Standards Alliance)连接标准联盟 于 2021 年推出的应用层连接协议。目前,亚马逊、谷歌、苹果等都已承诺 Alexa、Google Assistant 和 HomeKit 生态将兼容支持 Matter 协议的设备。CSA 联盟于 2022 年 10 月正式发布 Matter 1.0 版本,并于2023年5月证书发布Matter 1.1版本。

Matter的目标是成为一个可互操作的标准,促进技术采用和创新,逐步取代专有协议,建立统一的“语言”,成为智能家居生态系统的标准。Matter是通过一个开源的SDK实现的,其中包含了规范的实现和丰富的示例和可互操作代码。在OSI模型的前三层中,核心Matter协议适用于任何类型的IPv6传输和网络。虽然控制和其他操作通信是通过IPv6执行的,但是蓝牙低功耗(BLE)可以用于添加新设备。

Matter是灵活和可互操作的。它建立在低功耗802.15.4网络和Wi-Fi智能家居设备多年的挑战和成功基础上。与Thread一样,Matter建立在IPv6之上。它包括强大的加密、设备类型及其数据的明确定义建模以及支持多个生态系统管理员。

Matter还支持其他智能家居技术的桥接,如Zigbee、蓝牙Mesh和Z-Wave。这意味着基于这些协议的设备可以通过一个桥接器作为Matter设备进行操作,该桥接器是Matter网络和其他桥接的IoT技术的成员设备。

桥接器有双重优势。使用其他协议的设备可以访问针对原生Matter设备的技术和生态系统。同时,Matter将利用具有庞大用户群的成熟技术创建一个真正的物联网连接体系。

primer-matter-architecture

Matter 物模型

Devices 和 Node、Endpoints

所有设备,包括智能手机和家庭助手,都由Node组成。Node是网络中的一个唯一可识别和可寻址的资源,用户可以感知到其作为具有功能完整性的整体。在Matter中,网络通信始于Node并在Node处终止。

Node是Endpoint的集合。每个Endpoint包含一个特定的功能集。例如,一个Endpoint可能与照明功能相关,另一个可能与运动检测相关,另一个可能处理设备OTA等实用程序。

primer-device-node

Node 是一组相关的行为。每个Node可以具备一个或多个角色。Node角色包括:

  • Commissioner:执行委派操作的Node。
  • Controller:可以控制一个或多个Node的Node。例如,Google Home应用程序(GHA)、Google Assistant和Google Nest Hub(第二代)。某些设备类型,如开/关灯开关,具有Controller角色。
  • Controlee:可以被一个或多个Node控制的Node。除了一些具有Controller角色的设备类型(例如开/关灯开关)之外,大多数设备类型都可以是Controlee。开/关灯开关只能是Controller,不能是Controlee。
  • OTA Provider:可以提供OTA软件更新的Node。
  • OTA Requestor:可以请求OTA软件更新的Node。

Cluster

在一个Endpoint中,一个Node有一个或多个Cluster。这是设备层次结构中的另一步,它将特定的功能分组在一起,例如智能插座上的开/关Cluster或可调光灯Endpoint上的级别控制Cluster。

一个Node也可能有多个Endpoints,每个Endpoint创建相同功能的实例。例如,一个灯具可能会独立控制每个灯光,或者一个插座条可能会暴露每个插座的控制。

Attributes

在最后一级,我们会找到属性(Attributes),它们是Node保存的状态,例如Level Control 的Current Level Attribute。Attribute可以定义为不同的数据类型,如uint8、字符串或数组。

primer-node-endpoint-attribute

Commands

除了属性(Attributes)之外,Cluster还包含命令(Commands),它们是可以执行的操作。在Matter的物模型中,它们相当于远程过程调用。命令通常是动词形式的,例如在Door Lock Cluster中的Lock。命令可以生成响应和结果;在Matter中,这些响应也被定义为命令,以相反的方向进行。

Events

最后,Cluster还可以包含事件(Events),可以将其视为过去状态转换的记录。虽然Attribute表示当前状态,但事件是过去的日志,包括单调递增的计数器、时间戳和优先级。它们可以捕获状态转换,以及不易通过属性实现的数据建模。

primer-device-type

Endpoint 0是保留给实用Cluster(Utility Clusters)的。实用Cluster是指封装在Endpoint上的维护功能,例如发现、寻址、诊断和软件更新等特定Cluster。另一方面,应用Cluster(Application Clusters)支持主要操作,例如开/关或温度测量。

Device Types

总的来说,当设备制造商计划开发新设备时,应该包含哪些Cluster组合呢?虽然可以使用任何Cluster组合,但通常的做法是实现和扩展一些设备类型。设备类型是指一个或多个Endpoints上的强制和可选Cluster的集合,用于定义物理设备的顶级属性,例如可调光灯、门锁或视频播放器。

虽然Endpoint有一个较弱的要求,即它们应该实现一致的功能,但设备类型是一个强制要求。如果一个Node实现了一个设备类型,它必须在一个或多个Endpoint上包含一组Cluster,以定义一个独特的、连贯的行为,例如彩色调光开关或光线传感器。

设备类型并未在Matter规范的主要文档中指定,而是由附带的文档——设备库(Device Library)来定义。同样,所有应用Cluster都在应用Cluster库(Application Cluster Library)中定义。这三个文档可以在CSA会员网站上找到。

Clients and Servers

簇(Cluster)可以是客户端簇(Client Cluster)或服务器端簇(Server Cluster)。服务器端是有状态的,包含属性(Attributes)、事件(Events)和命令(Commands),而Client是无状态的,它的责任是与远程Server端簇启动交互,从而执行以下操作:

- 读取和写入远程属性(Attributes)。 - 读取远程事件(Events)。 - 调用远程命令(Commands)。

虽然物模型在Node内部是分层的,但Node之间的关系并非如此。在Matter中,Node之间没有垂直的controller/peripheral or leader/follower关系。相反,这种关系是水平的:任何Cluster都可以是服务器端(Server Cluster)或客户端Cluster(Client Cluster)。因此,对于不同的Cluster和功能,一个Node可能既是服务器端又是客户端。

例如,我们可能有两个台灯:A Node和B Node。这两个Node都实现了一个开/关灯设备类型。该设备类型包括一个开/关Server Cluster,用于控制它们各自的物理灯光输出。

但是,和典型的台灯一样,我们的物理设备也将包括一个用于本地开/关开关的开/关灯开关设备类型。该设备类型必须实现一个开/关Server Cluster,以便它可以控制Server Cluster。

primer-client-server

在此示例中,Node A上的开/关Client Cluster正在更改Node A和Node B上的开/关Server Cluster的属性,而Node B的Client Cluster仅更改Node B本身的Server Cluster。

Copyright © 2023 深圳绿米联创科技有限公司 all right reserved,powered by Gitbook文档修改时间: 2025-04-17 11:08:05

results matching ""

    No results matching ""