一囚霸、設(shè)備數(shù)據(jù)模型
Matter 中的設(shè)備具有明確定義的 數(shù)據(jù)模型(DM)读规,它是設(shè)備功能的分層建模宜咒。使用 屬性(Attribute)
幌绍、命令(Command)
和 事件(Event)
的概念描述 Matter 節(jié)點支持的遠程操作,并分組為稱為集群的邏輯塊趾牧。Matter 應(yīng)用集群規(guī)范中包含的集群具有明確定義的范圍和行為检盼,以確保不同供應(yīng)商開發(fā)的 Matter 節(jié)點之間的互操作性。集群可以是抽象的武氓,這意味著它可以作為多種設(shè)備類型的基礎(chǔ)梯皿,以減少向 Matter 引入新產(chǎn)品類別的時間和成本。
此層次結(jié)構(gòu)的頂層有 設(shè)備(Device)
县恕。
1.1 節(jié)點和端點
所有設(shè)備(包括智能手機和家居助理)都由一個或多個節(jié)點 節(jié)點 組成东羹。節(jié)點是網(wǎng)絡(luò)中唯一可識別且可尋址的資源,用戶可以將其視為整個功能忠烛。Matter 中的網(wǎng)絡(luò)通信源自和終止于節(jié)點属提。
節(jié)點是 端點 的集合。每個端點都包含一個功能集美尸。 例如冤议,在語音控制門鎖設(shè)備中,一個端點可以包括用于操作門鎖的功能集师坎,而另一端點可以包括用于處理溫度傳感器的功能集恕酸,而另一個端點與實用程序(例如設(shè)備 OTA)相關(guān)。
注意:端點 0 始終保留給 Matter 的實用程序集群胯陋。這是每個 Matter 設(shè)備的唯一強制端點蕊温。其中包含端點的服務(wù)功能,例如發(fā)現(xiàn)遏乔、尋址义矛、診斷和軟件更新。
節(jié)點角色 是一組相關(guān)行為盟萨。每個節(jié)點可以有一個或多個角色凉翻。節(jié)點角色包括:
- Commissioner:執(zhí)行調(diào)試的節(jié)點。
- 控制器:可以控制一個或多個節(jié)點的節(jié)點捻激。例如 Google Home app (GHA)制轰、Google Assistant 和 Google Nest Hub (2nd gen)前计。某些設(shè)備類型(例如開/關(guān)燈開關(guān))具有 Controller 角色。
- 受控方:可由一個或多個節(jié)點控制的節(jié)點艇挨。大多數(shù)設(shè)備類型都可以是控制方残炮,但具有“控制器”角色的某些設(shè)備類型除外韭赘,例如開/關(guān)燈開關(guān)缩滨。開/關(guān)燈開關(guān)只能是控制器。不能是被控制方泉瞻。
- OTA 提供方:可以提供 OTA 軟件更新的節(jié)點脉漏。
- OTA 請求方:可以請求 OTA 軟件更新的節(jié)點。
1.2 集群
詳細內(nèi)容查看:Application Cluster Specification
端點由一個或多個集群組成袖牙,這些 集群 對屬性侧巨、命令和事件進行分組,這些屬性鞭达、命令和事件共同構(gòu)成了一組中的每個功能司忱。例如智能插座上的“開啟/關(guān)閉”集群,或可調(diào)暗的淺色端點上的“級別控制”集群畴蹭。
一個節(jié)點可能還有多個端點坦仍,每個端點都會創(chuàng)建一個功能相同的實例。例如叨襟,燈具可以單獨控制各個燈繁扎,或者電源板可以對各個插座進行控制。
1.2.1 客戶端和服務(wù)器
集群可以有以下類型:
- 服務(wù)器: 負責(zé)保存屬性糊闽、命令和事件的值梳玫。
-
客戶端: 負責(zé)與其他服務(wù)器集群進行交互,從而執(zhí)行以下操作:
- 讀取和寫入服務(wù)器屬性右犹。
- 讀取服務(wù)器事件提澎。
- 調(diào)用服務(wù)器遠程命令。
雖然數(shù)據(jù)模型在節(jié)點內(nèi)是分層的念链,但節(jié)點之間的關(guān)系不是盼忌。Matter 中的節(jié)點沒有垂直的控制器/外圍設(shè)備或主/從關(guān)系。相反钓账,關(guān)系是水平關(guān)系:任何集群都可以是服務(wù)器或客戶端碴犬。因此,就不同的集群和功能而言梆暮,節(jié)點可以既是服務(wù)器又是客戶端服协。
例如,我們可能有兩個臺燈:節(jié)點 A 和 節(jié)點 B啦粹。這兩個節(jié)點都實現(xiàn)了開/關(guān)燈設(shè)備類型偿荷。此設(shè)備類型包含一個開啟/關(guān)閉服務(wù)器集群窘游,用于控制其各自的物理光輸出。
不過跳纳,與典型臺燈一樣忍饰,我們的實體設(shè)備還會包含用于本地開/關(guān)的開關(guān)設(shè)備類型。此設(shè)備類型必須實現(xiàn)開啟/關(guān)閉客戶端集群寺庄,以便控制服務(wù)器集群艾蓝。
1.2.2 描述符集群(Descriptor Cluster)
這是存在于每個節(jié)點的 Server Cluster,它用于描述節(jié)點信息斗塘,這個節(jié)點可以是一個Endpoint赢织,也可以是多個Endpoint的組合;
每種設(shè)備類型都需要實現(xiàn)描述符集群馍盟。根設(shè)備類型在端點 0 上定義于置。讀取其描述符集群可讓客戶端了解遍歷所有可用端點樹并執(zhí)行適用的操作。
調(diào)試器或控制設(shè)備(如手機或集線器)可以使用在描述符集群上找到的信息對設(shè)備(燈贞岭、開關(guān)八毯、泵、溫控器)以及該設(shè)備的特定實例實現(xiàn)的特定功能進行建模瞄桨,從而向用戶顯示正確的界面话速。
其中描述了端點及其屬性以下枚舉:
- 設(shè)備類型(DeviceTypeList): 是端點支持的設(shè)備類型以及相應(yīng)修訂版本的列表。它必須至少包含一種設(shè)備類型讲婚。
- 服務(wù)器列表(ServerList): 列出了端點中的集群服務(wù)器尿孔。
- 客戶端列表(ClientList): 列出了端點中的集群客戶端。
-
其他端點筹麸,稱為零件列表(PartsList): 包含用于實現(xiàn)此設(shè)備類型的端點列表活合。
端點 0(根節(jié)點)的PartsList
包含設(shè)備本身以外的所有端點(端點 0)。
其他端點的PartsList
通常為空物赶。例如白指,溫度傳感器會強制要求運行溫度測量服務(wù)器集群,而不需要任何其他配置酵紫。
其他設(shè)備類型可能采用由多個 Device Type 實例的樹結(jié)構(gòu)組成告嘲。例如,視頻播放器設(shè)備類型可以由電視奖地、視頻播放器橄唬、音響設(shè)備和不同的內(nèi)容應(yīng)用設(shè)備類型組成,每種類型位于不同的端點上参歹。
1.3 屬性
屬性 是表示物理量或狀態(tài)的數(shù)據(jù)實體仰楚。它們存儲在 Matter 設(shè)備的內(nèi)存中,但也可以根據(jù)需要動態(tài)計算。例如級別控制集群的當(dāng)前級別屬性僧界。屬性可定義為不同的數(shù)據(jù)類型侨嘀,例如 uint8、字符串或數(shù)組捂襟。
1.4 命令
除了屬性之外咬腕,集群還有命令。命令 是可用于觸發(fā)其他設(shè)備上某些行為的操作葬荷。例如在門鎖設(shè)備中涨共,鎖門命令可用于在物理設(shè)備上觸發(fā)此類操作。命令可以生成響應(yīng)和結(jié)果闯狱;在 Matter 中煞赢,此類響應(yīng)也被定義為反向執(zhí)行的命令。
1.5 事件
最后哄孤,集群還可能包含事件。事件 是一種傳達設(shè)備狀態(tài)更改的特殊屬性吹截。它們也可以被視為設(shè)備狀態(tài)轉(zhuǎn)換的記錄瘦陈。屬性表示當(dāng)前狀態(tài),而事件是過去的日志波俄,包含單調(diào)遞增的計數(shù)器晨逝、時間戳和優(yōu)先級。 它們能夠捕獲狀態(tài)轉(zhuǎn)換懦铺,以及不易用屬性實現(xiàn)的數(shù)據(jù)建模捉貌。
二、設(shè)備類型
詳細內(nèi)容查看:Device Library Specification
Matter 設(shè)備類型是一個或多個端點的正式定義的要求集合冬念。設(shè)備類型旨在確保市場上不同設(shè)備品牌的互操作性趁窃。
所有設(shè)備類型均在設(shè)備庫規(guī)范中定義,該規(guī)范可從CSA 規(guī)范下載請求頁面獲取急前。每個設(shè)備類型定義由以下元素組成:
- 設(shè)備類型 ID
- 設(shè)備類型修訂
- 一個或多個強制集群醒陆,包括每個集群的最小修訂版
設(shè)備庫規(guī)范中的設(shè)備類型定義可能會隨著時間而改變。使用設(shè)備類型修訂值(最初設(shè)置為 )來跟蹤更改裆针。更改不會改變設(shè)備的工作方式刨摩,而只會改進其功能。
設(shè)備類型可以需要其他設(shè)備類型來進行組合世吨,從而使其成為組合設(shè)備類型澡刹。例如強制性集群之外,端點還可以實現(xiàn)其他集群耘婚,包括設(shè)備類型的一個或多個可選集群罢浇,甚至是不屬于設(shè)備類型的集群。
? 由 Leung 寫于 2023 年 11 月 9 日
? 參考:設(shè)備數(shù)據(jù)模型 | Matter | Google Home Developers
nRF Connect SDK - Matter
實例刨析边篮,沉浸式掌握Matter重要概念
【Matter】Matter學(xué)習(xí)筆記1