「Matter」的裝置具有定義明確的資料模型 (DM),這是裝置功能的階層模型。頂端 「裝置」。
裝置和端點
所有裝置 (包括智慧型手機和居家助理) 是由 節點1:節點是唯一可識別及定址的資源, 供使用者視為完整功能Matter 中的網路通訊起源和終點都是節點。
節點是一組「端點」。每個端點都會包含一組功能。舉例來說,端點可能與燈光功能有關 另一個與動作偵測有關,並且與公用程式 做為裝置 OTA 使用。
節點角色
「節點角色」是一組相關行為。每個節點可以有一或多個 角色。節點角色包括:
- 編譯器:執行 佣金。
- 控制器:可控制一或多個節點的節點。 例如 Google Home app (GHA)、 Google Assistant 和 Google Nest Hub (2nd gen)。只有部分通知 裝置類型,例如開燈/關燈 切換鈕,介紹「控制器」 角色。
- 受控節點:可由一或多個節點控制的節點。除了部分裝置類型以外,大多數的裝置類型都可以做為控制組 擁有「控管者」角色,例如開啟/關閉燈具 切換鈕。開啟/關閉指示燈 切換鈕「只能」做為控制器。但不能是受控端。
- OTA 供應商:提供 OTA 軟體更新的節點。
- OTA 要求者:可要求 OTA 軟體更新的節點。
叢集
在「端點」中,節點有一或多個叢集。這是裝置階層中的另一個步驟,因為它會將特定功能分組,例如智慧插座上的開/關叢集,或是可調光燈具端點上的亮度控制叢集。
一個節點也可能有多個端點,每個端點都會建立 功能。舉例來說,燈具可能會公開個別燈具的獨立控制項,或電源延長線可能會公開個別插座的控制項。
屬性
最後一個層級是「屬性」,也就是節點持有的狀態。 例如層級管控叢集的目前層級屬性。屬性 可以定義為不同的資料類型,例如 uint8、字串或陣列。
指令
除了屬性之外,叢集還有指令,即動作 執行狀態與 Matter 的即時訊息 取得遠端程序呼叫指令類似於動詞,例如門鎖叢集中的鎖門。指令可能會產生回應和結果;在 Matter 中,這類回應也定義為指令,並以相反方向傳送。
活動
最後,叢集也可能有「事件」,可以視為記錄 記錄狀態屬性代表「目前」狀態 活動是過去的日誌,其中包含單調遞增 計數器、時間戳記和優先順序 可讓您擷取狀態轉換,以及建立 表示無法馬上透過屬性達成目標
端點 0 是保留給公用叢集的。公用叢集 是特定的叢集,以包覆端點上的服務功能,例如 包括發現、處理、診斷和軟體更新。另一方面,應用程式叢集支援主要動作,例如開啟/關閉或溫度測量。
裝置類型
所有叢集組合都應該納入裝置中 製造商打算購買新裝置?
Matter 規格要求裝置必須採用 或擴充一或多個裝置類型。裝置類型是一組 一組必要的和選用的叢集 實體裝置,例如調光燈、門鎖或影片播放器。
Matter 未指定裝置類型 完整規格文件,但隨附文件中的:裝置 程式庫。同樣地,所有應用程式叢集都是在 Applications 中定義 叢集程式庫。您可以在 「Connectivity Standards Alliance (Alliance)」會員網站。
導入裝置類型的每個端點都必須實作必要的叢集 定義該裝置類型除了必要叢集外, 端點可能會實作額外叢集,包括一或多部裝置 類型的選用叢集,甚至是不屬於裝置類型的叢集。
用戶端和伺服器
叢集可能是用戶端叢集或伺服器叢集。雖然伺服器是有狀態的,且會保留屬性、事件和指令,但用戶端是無狀態的,其職責是與遠端伺服器叢集啟動互動,因此會執行以下操作:
- 讀取及寫入其遠端屬性。
- 讀取其遠端事件。
- 叫用其遠端指令。
DM 在節點中是階層式,但「節點」之間的關係為 而不是Matter 中的節點無垂直 控制器/週邊裝置或領導者/追蹤者關係。相反地 是水平關係:任何叢集可以是「Server」或「Client」(用戶端)。 因此,就不同叢集而言,節點可能會同時屬於伺服器「和」用戶端 各項功能及特性
舉例來說,假設我們有兩個表格燈,分別是「Node A」和「Node B」。兩個節點都實作 On/Off Light 裝置類型。這個裝置類型包含一個開/關伺服器叢集,用於控制各自的實體燈具輸出。
不過,如同典型的桌燈,我們的實體裝置也包含 開/關燈開關:其本機開啟/關閉開關的裝置類型。此裝置 類型必須實作開啟/關閉用戶端叢集,才能控制伺服器 叢集
在此範例中,節點 A 上的開啟/關閉用戶端叢集正在變更屬性 節點 A 和節點 B 的「開啟/關閉」伺服器叢集,而節點 B 的用戶端 叢集只會變更節點 B 上的伺服器叢集。
在下一節中,我們會詳述用戶端與伺服器叢集的互動方式: 互動模型:
描述元叢集
顧名思義,描述元叢集伺服器 可能不準確或不適當其中「說明」端點列舉了其:
- 伺服器叢集。
- 用戶端叢集
- 裝置類型。
- 其他端點,稱為「零件」。
每種裝置類型都需要導入描述元叢集。根 端點類型定義於 Endpoint 0。讀取其 Descriptor 叢集可讓用戶端瞭解如何遍歷可用端點的完整樹狀結構,並執行適用的作業。
委員會或控制裝置 (例如手機或中樞裝置) 可以使用 相關資訊,進而建立模型 以及泵、溫度控制器) 和該特定執行個體實作的特定功能 並向使用者顯示正確的 UI。
伺服器叢集
ServerList
屬性會列出端點中的叢集伺服器。
用戶端叢集
ClientList
屬性會列出端點中的叢集用戶端。
裝置類型清單
DeviceTypeList
屬性是端點支援的裝置類型清單,以及相應的修訂版本。必須包含至少一個
裝置類型。
零件清單
PartsList
包含用於實作此裝置類型的端點清單。
端點 0 的 PartsList
(根節點) 包含
不同的裝置 (端點 0)。
其他端點的 PartsList
通常為空白。舉例來說
溫度感應器必須規定溫度測量伺服器叢集
其他種類的廣告。
其他類型的裝置可由多部裝置的樹狀結構組成 類型執行個體。舉例來說,影片播放器裝置類型可由電視、 影片播放器、喇叭和各種內容應用程式裝置類型 不同的端點
-
Matter 規格判定裝置可能會 有多個節點 舉例來說,智慧型手機可能有好幾個應用程式,每個應用程式都是不同的節點。基於本文目的,所有「裝置」將包含以下內容: 例如單個節點大部分實體裝置都會遵循這個模式。 ↩