裝置資料模型

Matter」的裝置具有定義明確的資料模型 (DM),這是裝置功能的階層模型。頂端 「裝置」

裝置和端點

所有裝置 (包括智慧型手機和居家助理) 是由 節點1節點是唯一可識別及定址的資源, 供使用者視為完整功能Matter 中的網路通訊起源和終點都是節點。

節點是一組「端點」。每個端點都會包含一組功能。舉例來說,端點可能與燈光功能有關 另一個與動作偵測有關,並且與公用程式 做為裝置 OTA 使用。

裝置、節點和端點的階層
圖 1:裝置、節點和端點

節點角色

「節點角色」是一組相關行為。每個節點可以有一或多個 角色。節點角色包括:

  • 編譯器:執行 佣金
  • 控制器:可控制一或多個節點的節點。 例如 Google Home app (GHA)Google AssistantGoogle Nest Hub (2nd gen)。只有部分通知 裝置類型,例如開燈/關燈 切換鈕,介紹「控制器」 角色。
  • 受控節點:可由一或多個節點控制的節點。除了部分裝置類型以外,大多數的裝置類型都可以做為控制組 擁有「控管者」角色,例如開啟/關閉燈具 切換鈕。開啟/關閉指示燈 切換鈕「只能」做為控制器。但不能是受控端。
  • OTA 供應商:提供 OTA 軟體更新的節點。
  • OTA 要求者:可要求 OTA 軟體更新的節點。

叢集

在「端點」中,節點有一或多個叢集。這是裝置階層中的另一個步驟,因為它會將特定功能分組,例如智慧插座上的開/關叢集,或是可調光燈具端點上的亮度控制叢集。

一個節點也可能有多個端點,每個端點都會建立 功能。舉例來說,燈具可能會公開個別燈具的獨立控制項,或電源延長線可能會公開個別插座的控制項。

屬性

最後一個層級是「屬性」,也就是節點持有的狀態。 例如層級管控叢集的目前層級屬性。屬性 可以定義為不同的資料類型,例如 uint8、字串或陣列。

節點、端點、屬性和指令的階層
圖 2:節點、端點、屬性和指令

指令

除了屬性之外,叢集還有指令,即動作 執行狀態與 Matter 的即時訊息 取得遠端程序呼叫指令類似於動詞,例如門鎖叢集中的鎖門。指令可能會產生回應和結果;在 Matter 中,這類回應也定義為指令,並以相反方向傳送。

活動

最後,叢集也可能有「事件」,可以視為記錄 記錄狀態屬性代表「目前」狀態 活動是過去的日誌,其中包含單調遞增 計數器、時間戳記和優先順序 可讓您擷取狀態轉換,以及建立 表示無法馬上透過屬性達成目標

完整範例裝置
圖 3:Matter 裝置互動模型階層的範例

端點 0 是保留給公用叢集的。公用叢集 是特定的叢集,以包覆端點上的服務功能,例如 包括發現、處理、診斷和軟體更新。另一方面,應用程式叢集支援主要動作,例如開啟/關閉或溫度測量。

裝置類型

所有叢集組合都應該納入裝置中 製造商打算購買新裝置?

Matter 規格要求裝置必須採用 或擴充一或多個裝置類型。裝置類型是一組 一組必要的和選用的叢集 實體裝置,例如調光燈門鎖影片播放器

Matter 未指定裝置類型 完整規格文件,但隨附文件中的:裝置 程式庫。同樣地,所有應用程式叢集都是在 Applications 中定義 叢集程式庫。您可以在 Connectivity Standards Alliance (Alliance)」會員網站

導入裝置類型的每個端點都必須實作必要的叢集 定義該裝置類型除了必要叢集外, 端點可能會實作額外叢集,包括一或多部裝置 類型的選用叢集,甚至是不屬於裝置類型的叢集。

用戶端和伺服器

叢集可能是用戶端叢集伺服器叢集。雖然伺服器是有狀態的,且會保留屬性、事件和指令,但用戶端是無狀態的,其職責是與遠端伺服器叢集啟動互動,因此會執行以下操作:

  • 讀取寫入其遠端屬性。
  • 讀取其遠端事件。
  • 叫用其遠端指令。

DM 在節點中是階層式,但「節點」之間的關係為 而不是Matter 中的節點無垂直 控制器/週邊裝置或領導者/追蹤者關係。相反地 是水平關係:任何叢集可以是「Server」或「Client」(用戶端)。 因此,就不同叢集而言,節點可能會同時屬於伺服器「和」用戶端 各項功能及特性

舉例來說,假設我們有兩個表格燈,分別是「Node A」和「Node B」。兩個節點都實作 On/Off Light 裝置類型。這個裝置類型包含一個開/關伺服器叢集,用於控制各自的實體燈具輸出。

不過,如同典型的桌燈,我們的實體裝置也包含 開/關燈開關:其本機開啟/關閉開關的裝置類型。此裝置 類型必須實作開啟/關閉用戶端叢集,才能控制伺服器 叢集

支援開/關燈和燈具開關的燈
圖 4:用戶端和伺服器叢集

在此範例中,節點 A 上的開啟/關閉用戶端叢集正在變更屬性 節點 A 和節點 B 的「開啟/關閉」伺服器叢集,而節點 B 的用戶端 叢集只會變更節點 B 上的伺服器叢集。

在下一節中,我們會詳述用戶端與伺服器叢集的互動方式: 互動模型

描述元叢集

顧名思義,描述元叢集伺服器 可能不準確或不適當其中「說明」端點列舉了其:

  • 伺服器叢集。
  • 用戶端叢集
  • 裝置類型。
  • 其他端點,稱為「零件」。

每種裝置類型都需要導入描述元叢集。根 端點類型定義於 Endpoint 0。讀取其 Descriptor 叢集可讓用戶端瞭解如何遍歷可用端點的完整樹狀結構,並執行適用的作業。

委員會或控制裝置 (例如手機或中樞裝置) 可以使用 相關資訊,進而建立模型 以及泵、溫度控制器) 和該特定執行個體實作的特定功能 並向使用者顯示正確的 UI。

伺服器叢集

ServerList 屬性會列出端點中的叢集伺服器。

用戶端叢集

ClientList 屬性會列出端點中的叢集用戶端。

裝置類型清單

DeviceTypeList 屬性是端點支援的裝置類型清單,以及相應的修訂版本。必須包含至少一個 裝置類型。

零件清單

PartsList 包含用於實作此裝置類型的端點清單。

端點 0 的 PartsList (根節點) 包含 不同的裝置 (端點 0)。

其他端點的 PartsList 通常為空白。舉例來說 溫度感應器必須規定溫度測量伺服器叢集 其他種類的廣告。

其他類型的裝置可由多部裝置的樹狀結構組成 類型執行個體。舉例來說,影片播放器裝置類型可由電視、 影片播放器、喇叭和各種內容應用程式裝置類型 不同的端點


  1. Matter 規格判定裝置可能會 有多個節點 舉例來說,智慧型手機可能有好幾個應用程式,每個應用程式都是不同的節點。基於本文目的,所有「裝置」將包含以下內容: 例如單個節點大部分實體裝置都會遵循這個模式。