I dispositivi in Matter hanno un modello dei dati (DM) ben definito, ovvero una modellazione gerarchica delle funzionalità di un dispositivo. Al livello superiore di questa gerarchia si trova un Dispositivo.
Dispositivi ed endpoint
Tutti i dispositivi, inclusi smartphone e assistenti domestici, sono composti da nodi1. Un nodo è una risorsa identificabile in modo univoco e indirizzabile in una rete che un utente può percepire come funzionalmente completa. La comunicazione di rete in Matter ha origine e termina su un nodo.
I nodi sono una raccolta di endpoint. Ogni endpoint include un insieme di funzionalità. Ad esempio, un endpoint potrebbe essere correlato a una funzionalità di illuminazione, mentre un altro alla rilevazione del movimento e un altro ancora alle utilità come l'aggiornamento OTA del dispositivo.

Ruoli del nodo
Un ruolo nodo è un insieme di comportamenti correlati. Ogni nodo può avere uno o più ruoli. I ruoli del nodo includono:
- Commissioner: un nodo che esegue la messa in servizio.
- Controller: un nodo che può controllare uno o più nodi. Gli esempi includono Google Home app (GHA), Google Assistant e Google Nest Hub (2nd gen). Alcuni tipi di dispositivi, come l'interruttore luce On/Off, hanno il ruolo di controller.
- Controlee: un nodo che può essere controllato da uno o più nodi. La maggior parte dei tipi di dispositivi può essere un Controllato, ad eccezione di alcuni tipi di dispositivi che hanno il ruolo di Controllore, come l'interruttore luce on/off. L'interruttore della luce on/off può essere solo un controller. Non può essere un controllato.
- Fornitore OTA: un nodo che può fornire aggiornamenti software OTA.
- Richiedente OTA: un nodo che può richiedere aggiornamenti software OTA.
Cluster
All'interno di un endpoint, un nodo ha uno o più cluster. Questi sono un altro passaggio nella gerarchia dei dispositivi, in quanto raggruppano funzionalità specifiche come un cluster on/off su una presa smart o un cluster controllo del livello su un endpoint luce dimmerabile.
Un nodo può anche avere diversi endpoint, ognuno dei quali crea un'istanza della stessa funzionalità. Ad esempio, un apparecchio di illuminazione può esporre il controllo indipendente di singole luci o una ciabatta può esporre il controllo di singole prese.
Attributi
All'ultimo livello troviamo gli attributi, ovvero gli stati mantenuti dal nodo, come l'attributo livello attuale di un cluster di controllo del livello. Gli attributi possono essere definiti come tipi di dati diversi, ad esempio uint8, stringhe o array.

Comandi
Oltre agli attributi, i cluster hanno anche comandi, ovvero azioni che possono essere eseguite. Sono l'equivalente nel messaggio diretto di Matter di una chiamata di procedura remota. I comandi sono simili a verbi, ad esempio chiudi la porta in un cluster Serratura per porte. I comandi possono generare risposte e risultati; in Matter, queste risposte sono definite anche comandi, che vanno nella direzione opposta.
Eventi
Infine, i cluster possono avere anche eventi, che possono essere considerati come un record delle transizioni di stato passate. Mentre gli attributi rappresentano gli stati correnti, gli eventi sono un registro del passato e includono un contatore monotonico crescente, un timestamp e una priorità. Consentono di acquisire le transizioni di stato, nonché la modellazione dei dati che non è facilmente ottenibile con gli attributi.

L'endpoint 0 è riservato ai cluster di utilità. I cluster di utilità sono cluster specifici che includono funzionalità di manutenzione su un endpoint, ad esempio rilevamento, indirizzamento, diagnostica e aggiornamento software. D'altra parte, i cluster di applicazioni supportano azioni principali come l'accensione/lo spegnimento o la misurazione della temperatura.
Tipi di dispositivo
Quali combinazioni di cluster devono essere incluse quando un produttore di dispositivi pianifica un nuovo dispositivo?
La specifica Matter richiede che il dispositivo implementi o estenda uno o più tipi di dispositivo. Un tipo di dispositivo è un insieme di cluster obbligatori e facoltativi che definiscono gli attributi di primo livello di un dispositivo fisico, ad esempio Luce dimmerabile, Serratura o Lettore video.
I tipi di dispositivo non sono specificati nel documento principale della specifica Matter, ma in un documento di accompagnamento: la libreria dei dispositivi. Allo stesso modo, tutti i cluster di applicazioni sono definiti nella libreria dei cluster di applicazioni. Questi tre documenti sono disponibili sul sito web per i membri di Connectivity Standards Alliance (Alliance).
Ogni endpoint che implementa un tipo di dispositivo deve implementare i cluster obbligatori che definiscono quel tipo di dispositivo. Oltre ai cluster obbligatori, l'endpoint può implementare cluster aggiuntivi, inclusi uno o più cluster facoltativi del tipo di dispositivo o anche cluster che non fanno parte del tipo di dispositivo.
Client e server
I cluster possono essere un cluster client o un cluster server. Mentre un server è stateful e contiene attributi, eventi e comandi, un client è stateless e la sua responsabilità è avviare interazioni con un cluster di server remoto, eseguendo quindi:
- Legge e scrive i relativi attributi remoti.
- letture dei suoi eventi remoti.
- invocazione dei suoi comandi remoti.
Mentre il DM è gerarchico all'interno di un nodo, la relazione tra i nodi non lo è. I nodi in Matter non hanno relazioni verticali controller/periferica o leader/follower. Al contrario, la relazione è orizzontale: qualsiasi cluster può essere server o client. Pertanto, un nodo può essere sia server sia client per quanto riguarda cluster e funzionalità diversi.
Ad esempio, potremmo avere due lampade da tavolo: Nodo A e Nodo B. Entrambi i nodi implementano un tipo di dispositivo Luce on/off. Questo tipo di dispositivo include un cluster Server on/off che controlla le rispettive emissioni di luce fisica.
Tuttavia, come le tipiche lampade da tavolo, i nostri dispositivi fisici includeranno anche un tipo di dispositivo Interruttore della luce on/off per gli interruttori on/off locali. Questo tipo di dispositivo deve implementare un cluster Client on/off in modo da poter controllare i cluster server.

In questo esempio, il cluster client On/Off sul nodo A modifica gli attributi del cluster server On/Off sul nodo A e sul nodo B, mentre il cluster client del nodo B modifica solo il cluster server sul nodo B stesso.
Nella sezione successiva descriveremo in dettaglio l'interazione tra i cluster client e server: il modello di interazione.
Cluster di descrittori
Come suggerisce il nome, il server del cluster di descrittori fornisce informazioni di introspezione. Descrive l'endpoint enumerando:
- Cluster di server.
- Cluster client.
- Tipi di dispositivo.
- Endpoint aggiuntivi, noti come parti.
Ogni tipo di dispositivo richiede l'implementazione di cluster di descrittori. Il tipo di dispositivo radice è definito sull'endpoint 0. La lettura del cluster descrittore fornirà al client la visibilità per attraversare l'intero albero degli endpoint disponibili ed eseguire le operazioni applicabili.
Il dispositivo di controllo o il dispositivo di controllo, ad esempio uno smartphone o un hub, può utilizzare le informazioni trovate nel cluster descrittore per modellare il dispositivo (luce, interruttore, pompa, termostato) e le funzionalità specifiche implementate da quella particolare istanza del dispositivo, mostrando all'utente la corretta interfaccia utente.
Cluster server
L'attributo ServerList
elenca i server del cluster nell'endpoint.
Cluster client
L'attributo ClientList
elenca i client del cluster nell'endpoint.
Elenco dei tipi di dispositivi
L'attributo DeviceTypeList
è un elenco dei tipi di dispositivi supportati dall'endpoint, insieme alle relative revisioni. Deve contenere almeno un
tipo di dispositivo.
Elenco dei pezzi
PartsList
contiene l'elenco degli endpoint utilizzati per l'implementazione di questo tipo di dispositivo.
PartsList
dell'endpoint 0 (nodo radice) contiene tutti gli endpoint del
dispositivo, a parte se stesso (endpoint 0).
Il PartsList
di altri endpoint è in genere vuoto. Ad esempio, un
sensore di temperatura richiede un cluster di server di misurazione della temperatura e nient'altro.
Altri tipi di dispositivi potrebbero essere composti in una struttura ad albero di più istanze di Device Type. Ad esempio, un tipo di dispositivo lettore video può essere composto da TV, lettore video, speaker e diversi tipi di dispositivi app di contenuti, ognuno su un endpoint diverso.
-
La specifica Matter determina che un dispositivo può avere più nodi. Ad esempio, gli smartphone possono avere più app e ogni app è un nodo diverso. Ai fini di questa introduzione, tutti i dispositivi conterranno un singolo nodo. Si prevede che la maggior parte dei dispositivi fisici seguirà questo schema. ↩