乐鑫 Matter 系列文章 #2
在上一篇文章中,我们介绍了智能家居互联标准 Matter 将带来哪些好处。这篇文章,让我们来聊聊 Matter 的数据模型。设备开发人员通常会通过数据模型来定义 Matter 设备的功能。它将定义一个典型 Matter 节点的主要组成部分。
一个简单的 Matter 数据模型结构
为了方便理解,我们以构架一个照明系统为例,它包括一个 Dimmable Light(可调光灯泡)和一个 On/Off Light(简单开关灯泡)。
照明系统在 Matter 结构下的表示方式如下图所示。
一个 Matter 数据模型的示例
Node(节点):节点通常被定义为一个具有某些功能的网络可寻址实体,具有唯一性。用户可以看到的智能设备实体,比如我们的这个照明系统,就是一个节点。
Endpoint(端点):端点可以被想象为一个可提供某种或某些服务的虚拟设备,每个节点可以拥有多个端点。比如,我们照明系统节点就拥有不止一个端点,Dimmable Light 和 On/Off Light 都是照明系统节点的端点。
注意,每个节点的第一个端点 Endpoint 0 用于提供一些适用于整个节点的服务,因此需要保留。我们将在下文具体介绍。
Matter 规范还定义了一些常见的 Device Types(设备类型),可代表一组常用功能。例如,我们的 Dimmable Light 和 On/Off Light 均为 Matter 规范中定义的标准设备类型。
Cluster:多个常用操作组合为一个可复用的模块。
以上图为例,我们的 Dimmable Light (Endpoint 1) 中有 2 个标准 Cluster:On/Off Cluster 和 Level Control Cluster。其中,On/Off Cluster 可完成打开或关闭设备的操作,Level Control Cluster 可完成配置设备电平的操作。也就是说,在实际的 Dimmable Light 应用中,On/Off Cluster 可以控制灯泡的开关,Level Control Cluster 可以调节灯泡的亮度。
更进一步,假设我们还希望使 Dimmable Light 支持颜色控制功能,那么在该 Endpoint 中,还需要引入一个名为 Color Control 的标准 Cluster,用于控制灯泡的颜色。
我们照明系统中的另一个灯泡 On/Off Light 仅支持打开或关闭功能,因此只包括一个 On/Off Cluster。
从上图中,我们可以看到,每个 Cluster 内都有自己的 Attribute 和 Command。
Attribute:Attribute 表示可以读取或写入的内容。比如,On/Off Cluster 包含一个 OnOff Attribute,代表设备实际打开或关闭的状态;Level Control Cluster 包含一个 CurrentLevel Attribute,代表设备的电平等级。
Attribute 既可以长期有效,也可以在设备重启之后失效;读写权限也可设置为“只读”或“可读可写”。
Matter 规范中的 Attribute 支持丰富的数据类型:包括典型值、布尔值、整数(有符号/无符号)、浮点数、枚举数、字符串,甚至集合(列表或数据结构)。
Command:Command 代表触发 Cluster 进行某种行为的能力。每条 Command 可以有自己的参数。以上图为例,On/Off Cluster 中的 Toggle(切换开关)Command,可以改变 Cluster 的 OnOff Attribute;Level Control Cluster中有 MoveToLevel、Move、Step 等 Command,可以调整 Cluster 的 CurrentLevel Attribute。
Matter 规范提供了一系列标准 Cluster(及其 Attribute 和 Command)。用户可根据具体设备,从列表中寻找适合自己设备的 Cluster。
以上是 Matter 数据模型中常见组成部分的介绍。接下来,我们将介绍另一组概念:Cluster Server(Cluster 服务器)和 Cluster Client(Cluster 客户端)。
每个 Matter Cluster 均有自己的服务器以及对应的客户端。以我们的照明系统为例,Dimmable Light 和 On/Off Light 均可提供照明服务,因此均作为服务器,而用户通过 Cluster 客户端与服务器进行交互。
Cluster 服务器和客户端之间的关系如下图所示,其中:
下图表示了上述概念在其他用例中的定义。
电源开关和电源插座
最后,让我们回到前文未作介绍的 Endpoint 0。Endpoint 0 的设备类型为“根节点”。作为一个特殊的 Endpoint,它提供了一些适用于整个节点的 Cluster,包括:
请注意,Matter 规范中还定义了所有 Endpoint 均需提供的强制性 Cluster。同理,每个 Cluster 中也可能定义了一些强制性 Attribute 和 Command,这里不一一列出。
以上是 Matter 数据模型的全部介绍,希望本文有助于用户使用 Matter 数据模型定义设备功能。
本文是乐鑫 Matter 系列文章的第二篇,敬请期待后续的更多内容。