Matter 系列 #2 I 智能家居互聯(lián)標(biāo)準(zhǔn) Matter 的數(shù)據(jù)模型
Matter 系列文章
Matter 系列 #1 I 智能家居互聯(lián)標(biāo)準(zhǔn) Matter 將帶來哪些好處?
Matter 系列 #2 I 智能家居互聯(lián)標(biāo)準(zhǔn) Matter 的數(shù)據(jù)模型
持續(xù)更新中......

在上一篇文章中,我們介紹了智能家居互聯(lián)標(biāo)準(zhǔn) Matter 將帶來哪些好處。這篇文章,讓我們來聊聊 Matter 的數(shù)據(jù)模型。設(shè)備開發(fā)人員通常會通過數(shù)據(jù)模型來定義 Matter 設(shè)備的功能。它將定義一個典型 Matter 節(jié)點的主要組成部分。

為了方便理解,我們以構(gòu)架一個照明系統(tǒng)為例,它包括一個 Dimmable Light(可調(diào)光燈泡)和一個 On/Off Light(簡單開關(guān)燈泡)。

Matter 結(jié)構(gòu)的主要組成部分
照明系統(tǒng)在 Matter 結(jié)構(gòu)下的表示方式如下圖所示。

Node(節(jié)點):節(jié)點通常被定義為一個具有某些功能的網(wǎng)絡(luò)可尋址實體,具有唯一性。用戶可以看到的智能設(shè)備實體,比如我們的這個照明系統(tǒng),就是一個節(jié)點。

Endpoint(端點):端點可以被想象為一個可提供某種或某些服務(wù)的虛擬設(shè)備,每個節(jié)點可以擁有多個端點。比如,我們照明系統(tǒng)節(jié)點就擁有不止一個端點,Dimmable Light 和 On/Off Light 都是照明系統(tǒng)節(jié)點的端點。
注意,每個節(jié)點的第一個端點 Endpoint 0 用于提供一些適用于整個節(jié)點的服務(wù),因此需要保留。我們將在下文具體介紹。
Matter 規(guī)范還定義了一些常見的 Device Types(設(shè)備類型),可代表一組常用功能。例如,我們的 Dimmable Light 和 On/Off Light 均為 Matter 規(guī)范中定義的標(biāo)準(zhǔn)設(shè)備類型。

Cluster:多個常用操作組合為一個可復(fù)用的模塊。
以上圖為例,我們的 Dimmable Light (Endpoint 1) 中有 2 個標(biāo)準(zhǔn) Cluster:On/Off Cluster 和 Level Control Cluster。其中,On/Off Cluster 可完成打開或關(guān)閉設(shè)備的操作,Level Control Cluster 可完成配置設(shè)備電平的操作。也就是說,在實際的的 Dimmable Light 應(yīng)用中,On/Off Cluster 可以控制燈泡的開關(guān),Level Control Cluster 可以調(diào)節(jié)燈泡的亮度。
更進(jìn)一步,假設(shè)我們還希望使 Dimmable Light 支持顏色控制功能,那么在該 Endpoint 中,還需要引入一個名為 Color Control 的標(biāo)準(zhǔn) Cluster,用于控制燈泡的顏色。
我們照明系統(tǒng)中的另一個燈泡 On/Off Light 僅支持打開或關(guān)閉功能,因此只包括一個 On/Off Cluster。

從上圖中,我們可以看到,每個 Cluster 內(nèi)都有自己的 Attribute 和 Command。
Attribute:Attribute 表示可以讀取或?qū)懭氲膬?nèi)容。比如,On/Off Cluster 包含一個 OnOff Attribute,代表設(shè)備實際打開或關(guān)閉的狀態(tài);Level Control Cluster 包含一個 CurrentLevel Attribute,代表設(shè)備的電平等級。
Attribute 既可以長期有效,也可以在設(shè)備重啟之后失效;讀寫權(quán)限也可設(shè)置為“只讀”或“可讀可寫”。
Matter 規(guī)范中的 Attribute 支持豐富的數(shù)據(jù)類型:包括典型值、布爾值、整數(shù)(有符號/無符號)、浮點數(shù)、枚舉數(shù)、字符串,甚至集合(列表或數(shù)據(jù)結(jié)構(gòu))。
Command:Command 代表觸發(fā) Cluster 進(jìn)行某種行為的能力。每條 Command 可以有自己的參數(shù)。以上圖為例,On/Off Cluster 中的 Toggle(切換開關(guān))Command,可以改變 Cluster 的 OnOff Attribute;Level Control Cluster中有 MoveToLevel、Move、Step 等 Command,可以調(diào)整 Cluster 的 CurrentLevel Attribute。
Matter 規(guī)范提供了一系列標(biāo)準(zhǔn) Cluster(及其 Attribute 和 Command)。用戶可根據(jù)具體設(shè)備,從列表中尋找適合自己設(shè)備的 Cluster。
以上是 Matter 數(shù)據(jù)模型中常見組成部分的介紹。接下來,我們將介紹另一組概念:Cluster Server(Cluster 服務(wù)器)和 Cluster Client(Cluster 客戶端)。

Cluster 服務(wù)器和 Cluster 客戶端
每個 Matter Cluster 均有自己的服務(wù)器以及對應(yīng)的客戶端。以我們的照明系統(tǒng)為例,Dimmable Light 和 On/Off Light 均可提供照明服務(wù),因此均作為服務(wù)器,而用戶通過 Cluster 客戶端與服務(wù)器進(jìn)行交互。
Cluster 服務(wù)器和客戶端之間的關(guān)系如下圖所示,其中:

在 Dimmable Light 的例子中,Dimmer Switch(調(diào)光開關(guān))作為 OnOff Cluster 和 Level Control Cluster 的客戶端,可以控制作為 Cluster 服務(wù)器的燈泡。
在 On/Off Light 的例子中,Simple Switch(簡單開關(guān))作為 OnOff Cluster 的客戶端,可以控制作為 Cluster 服務(wù)器的燈泡。
此外,我們還可以將手機(jī) App 作為 Cluster 的客戶端,它同樣可以控制作為 Cluster 服務(wù)器的燈泡。
請注意,這里的 Dimmer Switch、Simple Switch、Dimmable Light、On/Off Light 和手機(jī) App 均為 Matter 節(jié)點。
下圖表示了上述概念在其他用例中的定義。


Endpoint 0
最后,讓我們回到前文未作介紹的 Endpoint 0。Endpoint 0 的設(shè)備類型為“根節(jié)點”。作為一個特殊的 Endpoint,它提供了一些適用于整個節(jié)點的 Cluster,包括:
Basic Information Cluster Server(基本信息 Cluster 服務(wù)器):提供有關(guān)節(jié)點的基本信息,如固件版本、制造商等。
ACL Cluster Server(ACL Cluster 服務(wù)器):允許配置可訪問控制此節(jié)點的其他節(jié)點列表。
Network Commissioning Cluster Server(網(wǎng)絡(luò)調(diào)試 Cluster 服務(wù)器):允許在節(jié)點上配置網(wǎng)絡(luò)(Wi-Fi、以太網(wǎng)、Thread 等)。

請注意,Matter 規(guī)范中還定義了所有 Endpoint 均需提供的強(qiáng)制性 Cluster。同理,每個 Cluster 中也可能定義了一些強(qiáng)制性 Attribute 和 Command,這里不一一列出。
以上是 Matter 系列文章第二篇的全部介紹,希望本文有助于用戶使用 Matter 數(shù)據(jù)模型定義設(shè)備功能。