Matter 中的裝置具有明確定義的資料模型 (DM),這是裝置功能的階層式模型。這個階層的頂層是「裝置」。
裝置和端點
所有裝置 (包括智慧型手機和居家助理) 都是由節點1 組成。「節點」是網路中可明確識別及定址的資源,使用者可將其視為功能完整的資源。Matter 網路通訊的起點和終點都是節點。Matter
節點是一組端點。每個端點都包含一組功能。舉例來說,端點可能與照明功能相關,另一個端點則與動作偵測相關,還有一個端點處理公用程式,例如裝置 OTA。

節點角色
節點角色是一組相關行為。每個節點可有一或多個角色。節點角色包括:
- 調試裝置:執行調試的節點。
- 控制器:可控制一或多個節點的節點。 例如 Google Home app (GHA)、Google Assistant 和 Google Nest Hub (2nd gen)。部分裝置類型 (例如開/關燈開關) 具有「控制器」角色。
- 受控節點:可由一或多個節點控制的節點。大多數裝置類型都可以是受控裝置,但部分裝置類型除外,例如開/關燈開關,這類裝置具有控制器角色。「開/關燈」切換開關只能做為控制器。不得為受控者。
- OTA 供應商:可提供 OTA 軟體更新的節點。
- OTA 要求者:可要求 OTA 軟體更新的節點。
叢集
在 Endpoint 中,Node 具有一或多個 Clusters。這是裝置階層中的另一個步驟,因為這些功能會將特定功能分組,例如智慧插座上的開啟/關閉叢集,或是可調光燈端點上的等級控制叢集。
節點也可能有多個端點,每個端點都會建立相同功能的執行個體。舉例來說,燈具可能會公開個別燈泡的獨立控制項,或電源線可能會公開個別插座的控制項。
屬性
最後一個層級是「屬性」,這是節點持有的狀態,例如「層級控制項」叢集的「目前層級」屬性。屬性可定義為不同資料類型,例如 uint8、字串或陣列。

指令
除了屬性,叢集也有指令,也就是可執行的動作。在 Matter 的 DM 中,這相當於遠端程序呼叫。指令類似於「動詞」,例如「門鎖」叢集上的「鎖門」。指令可能會產生回應和結果;在 Matter 中,這類回應也定義為指令,方向相反。
事件
最後,叢集也可能包含「事件」,可視為過去狀態轉換的記錄。屬性代表目前的狀態,而事件則是過去的記錄,包括單調遞增的計數器、時間戳記和優先順序。可擷取狀態轉換,以及屬性不易實現的資料模型。

端點 0 保留給公用程式叢集。公用程式叢集是特定叢集,可封裝端點上的服務功能,例如探索、定址、診斷和軟體更新。另一方面,「應用程式叢集」支援開/關或溫度測量等主要動作。
裝置類型
裝置製造商規劃新裝置時,應納入哪些叢集組合?
Matter 規格要求裝置實作或擴充一或多個裝置類型。裝置類型是必要和選用叢集的集合,用於定義實體裝置的頂層屬性,例如可調光燈、門鎖或影片播放器。
裝置類型並非由 Matter 規格主要文件指定,而是由隨附的裝置庫指定。同樣地,所有應用程式叢集都定義在應用程式叢集程式庫中。這三份文件都可以在Connectivity Standards Alliance (Alliance)會員網站上找到。
實作裝置類型的每個端點都必須實作定義該裝置類型的必要叢集。除了必要叢集外,端點還可以實作其他叢集,包括一或多個裝置類型選用叢集,甚至是裝置類型以外的叢集。
用戶端和伺服器
叢集可以是「用戶端叢集」或「伺服器叢集」。伺服器是有狀態,會保留屬性、事件和指令,而用戶端是無狀態,負責啟動與遠端伺服器叢集的互動,因此會執行下列動作:
- 讀取及寫入遠端屬性。
- 讀取遠端事件。
- 叫用遠端指令。
雖然 DM 在節點內是階層式,但節點之間的關係並非如此。Matter 中的節點沒有垂直控制器/周邊裝置或領導者/追隨者關係。相反地,叢集之間的關係是水平的:任何叢集都可能是伺服器或用戶端。因此,就不同叢集和功能而言,節點可能同時是伺服器和用戶端。
舉例來說,我們可能有兩盞桌燈:節點 A 和節點 B。兩個節點都實作「開/關燈」裝置類型。這類裝置包含「開/關伺服器」叢集,可控制各自的實體燈光輸出。
但與一般檯燈一樣,實體裝置也會包含「開/關燈切換」裝置類型,用於本機開/關切換。這個裝置類型必須實作「開啟/關閉用戶端」叢集,才能控制伺服器叢集。

在本範例中,節點 A 上的 On/Off Client Cluster 會變更節點 A 和節點 B 上 On/Off Server Cluster 的屬性,而節點 B 的 Client Cluster 只會變更節點 B 本身的 Server Cluster。
下一節將詳細說明用戶端和伺服器叢集的互動方式:互動模型。
描述元叢集
顧名思義,描述元叢集伺服器提供內省資訊。這份文件說明了端點,並列舉下列項目:
- 伺服器叢集。
- 用戶端叢集。
- 裝置類型。
- 其他端點,又稱為「零件」。
每種裝置類型都需要實作描述元叢集。根裝置類型定義於端點 0。讀取其描述元叢集可讓用戶端查看可用的完整端點樹狀結構,並執行適用的作業。
手機或中樞等控制裝置或控制裝置可以使用描述元叢集中的資訊,模擬裝置 (燈、開關、幫浦、恆溫器) 和該裝置特定例項實作的特定功能,向使用者顯示正確的 UI。
伺服器叢集
ServerList
屬性會列出端點中的叢集伺服器。
用戶端叢集
ClientList
屬性會列出端點中的叢集用戶端。
裝置類型清單
DeviceTypeList
屬性是端點支援的裝置類型清單,以及各裝置類型對應的修訂版本。至少須包含一個裝置類型。
零件清單
PartsList
包含用於實作這個裝置類型的端點清單。
端點 0 (根節點) 的 PartsList
包含裝置的所有端點,但不包括端點 0 本身。
其他端點的 PartsList
通常會是空白。舉例來說,溫度感應器必須使用溫度測量伺服器叢集,不得使用其他叢集。
其他裝置類型可能由多個 DeviceType 執行個體組成樹狀結構。舉例來說,影片播放器裝置類型可由電視、影片播放器、音箱和不同的內容應用程式裝置類型組成,每個裝置類型都位於不同的端點。
-
Matter 規格規定裝置可有多個節點。舉例來說,智慧型手機可能有多個應用程式,每個應用程式都是不同的節點。為達到本入門指南的目的,所有裝置都會包含單一節點。預期大多數實體裝置都會遵循這個模式。↩