Das Gerätedatenmodell

Geräte in Matter haben ein klar definiertes Datenmodell (DM), das eine hierarchische Modellierung der Gerätefunktionen ist. Auf der obersten Ebene dieser Hierarchie befindet sich ein Gerät.

Geräte und Endpunkte

Alle Geräte, einschließlich Smartphones und Home-Assistenten, bestehen aus Knoten1. Ein Knoten ist eine eindeutig identifizierbare und adressierbare Ressource in einem Netzwerk, die ein Nutzer als Ganzes wahrnehmen kann. Die Netzwerkkommunikation in Matter beginnt und endet an einem Knoten.

Knoten sind eine Sammlung von Endpunkten. Jeder Endpunkt umfasst einen Featuresatz. Beispielsweise kann sich ein Endpunkt auf eine Beleuchtungsfunktion beziehen, während sich ein anderer auf die Bewegungserkennung bezieht und ein anderer mit Dienstprogrammen wie dem Geräte-OTA.

Hierarchie von Geräten, Knoten und Endpunkte
Abbildung 1: Geräte, Knoten und Endpunkte

Knotenrollen

Eine Knotenrolle umfasst eine Reihe verwandter Verhaltensweisen. Jeder Knoten kann eine oder mehrere Rollen haben. Zu den Knotenrollen gehören:

  • Commissioner: Ein Knoten, der die Inbetriebnahme ausführt.
  • Controller: Ein Knoten, der einen oder mehrere Knoten steuern kann. Beispiele hierfür sind Google Home app (GHA), Google Assistant und Google Nest Hub (2nd gen). Einige Gerätetypen wie der Ein-/Aus-Lichtschalter haben die Rolle „Controller“.
  • Kontrollempfänger: Ein Knoten, der von einem oder mehreren Knoten gesteuert werden kann. Bei den meisten Gerätetypen kann es sich um Controlee handeln. Eine Ausnahme bilden einige Gerätetypen mit der Rolle „Controller“, z. B. der Ein-/Aus-Lichtschalter. Der Ein/Aus-Lichtschalter kann nur ein Controller sein. Er darf kein Controlee sein.
  • OTA-Anbieter: Ein Knoten, der OTA-Softwareupdates bereitstellen kann.
  • OTA-Anforderer: Ein Knoten, der OTA-Softwareupdates anfordern kann.

Cluster

Innerhalb eines Endpunkts hat ein Knoten einen oder mehrere Cluster. Dies sind ein weiterer Schritt in der Gerätehierarchie, da sie bestimmte Funktionen wie einen Ein/Aus-Cluster auf einer intelligenten Steckdose oder einen Ebenensteuerung-Cluster auf einem Endpunkt mit dimmbarer LED gruppieren.

Ein Knoten kann auch mehrere Endpunkte haben, die jeweils eine Instanz derselben Funktionalität erstellen. Beispielsweise kann eine Leuchte die unabhängige Steuerung einzelner Lampen ermöglichen oder eine Mehrfachsteckdose kann die Steuerung einzelner Steckdosen ermöglichen.

Attribute

Auf der letzten Ebene finden Sie die Attribute, also die Statuswerte des Knotens, z. B. das Attribut aktuelle Ebene eines Clusters mit Ebenensteuerung. Attribute können als verschiedene Datentypen wie uint8, Strings oder Arrays definiert werden.

Hierarchie von Knoten, Endpunkten, Attributen und Befehlen
Abbildung 2: Knoten, Endpunkte, Attribute und Befehle

Befehle

Neben Attributen haben Cluster auch Befehle, bei denen es sich um Aktionen handelt, die ausgeführt werden können. Sie entsprechen in der DM von Matter eines Remote-Prozeduraufrufs. Befehle sind verb, wie z. B. Tür abschließen in einem Türschloss-Cluster. Befehle können Antworten und Ergebnisse generieren. In Matter sind solche Antworten auch als Befehle definiert, die in umgekehrter Richtung ausgeführt werden.

Veranstaltungen

Cluster können auch Ereignisse enthalten, die als Aufzeichnung früherer Statusübergänge betrachtet werden können. Während Attribute den aktuellen Status darstellen, sind Ereignisse ein Journal der Vergangenheit und umfassen einen kontinuierlich ansteigenden Zähler, einen Zeitstempel und eine Priorität. Sie ermöglichen die Erfassung von Statusübergängen sowie die Datenmodellierung, die sich mit Attributen nicht ohne Weiteres erreichen lässt.

Vollständiges Beispielgerät
Abbildung 3: Beispiel für die Hierarchie des Interaktionsmodells Matter Geräte

Endpunkt 0 ist für Dienstprogrammcluster reserviert. Dienstprogramm-Cluster sind spezifische Cluster, die Dienstfunktionen auf einem Endpunkt umfassen, z. B. Erkennung, Adressierung, Diagnose und Softwareaktualisierung. Andererseits unterstützen die Anwendungscluster primäre Aktionen wie Ein/Aus oder Temperaturmessung.

Gerätetypen

Welche Clusterkombinationen sollten insgesamt einbezogen werden, wenn ein Gerätehersteller ein neues Gerät plant?

Die Spezifikation Matter verlangt, dass das Gerät einen oder mehrere Gerätetypen implementiert oder erweitert. Ein Gerätetyp ist eine Sammlung obligatorischer und optionaler Cluster, die die Attribute der obersten Ebene eines physischen Geräts definieren, z. B. Dimmbares Licht, Türschloss oder Videoplayer.

Die Gerätetypen werden nicht im Hauptdokument der Matter-Spezifikation, sondern über ein Begleitdokument angegeben: die Gerätebibliothek. Entsprechend sind alle Anwendungscluster in der Anwendungsclusterbibliothek definiert. Du findest diese drei Dokumente auf der Connectivity Standards Alliance (Alliance)-Mitgliederwebsite.

Jeder Endpunkt, der einen Gerätetyp implementiert, muss die obligatorischen Cluster implementieren, die diesen Gerätetyp definieren. Zusätzlich zu den obligatorischen Clustern kann der Endpunkt weitere Cluster implementieren, einschließlich eines oder mehrerer optionaler Cluster des Gerätetyps oder sogar Cluster, die nicht Teil des Gerätetyps sind.

Clients und Server

Cluster können entweder ein Clientcluster oder ein Servercluster sein. Ein Server ist zwar zustandsorientiert und enthält Attribute, Ereignisse und Befehle, ein Client ist jedoch zustandslos und seine Aufgabe darin besteht, Interaktionen mit einem Remote-Servercluster zu initiieren. Dabei wird Folgendes ausgeführt:

  • liest ihre Remote-Attribute aus und schreibt in diese.
  • liest seiner Remote-Ereignisse.
  • Aufrufs der Remote-Befehle.

Während der DM innerhalb eines Knotens hierarchisch ist, ist dies die Beziehung zwischen den Knoten nicht. Knoten in Matter haben keine Vertical Controller/Peripherie- oder Leader/Follower-Beziehung. Im Gegensatz dazu ist die Beziehung horizontal: Jeder Cluster kann entweder Server oder Client sein. Ein Knoten kann also im Hinblick auf verschiedene Cluster und Funktionen sowohl ein Server als auch ein Client sein.

Es gibt beispielsweise zwei Tischlampen: Knoten A und Knoten B. Beide Knoten implementieren den Gerätetyp Licht an/aus. Dieser Gerätetyp umfasst einen Server-Cluster, der die jeweiligen physischen Lichtausgänge steuert.

Aber wie typische Tischlampen verfügen auch unsere physischen Geräte über einen Ein-/Aus-Lichtschalter für den lokalen Ein-/Aus-Schalter. Mit diesem Gerätetyp muss ein Ein/Aus-Client-Cluster implementiert werden, damit er die Servercluster steuern kann.

Lampen mit Ein-/Aus-Licht und Lichtschalter
Abbildung 4: Client- und Servercluster

In diesem Beispiel ändert der On/Off-Clientcluster auf Knoten A die Attribute des Serverclusters auf Knoten A und Knoten B, während der Clientcluster von Knoten B nur den Servercluster auf Knoten B selbst ändert.

Im nächsten Abschnitt wird beschrieben, wie Client- und Servercluster interagieren: das Interaktionsmodell.

Deskriptorcluster

Wie der Name schon sagt, bietet der Deskriptor-Cluster-Server Informationen zur Selbstprüfung. Der Endpunkt beschreibt Folgendes:

  • Server-Cluster.
  • Client-Cluster.
  • Gerätetypen.
  • Zusätzliche Endpunkte, die als Teile bezeichnet werden.

Jeder Gerätetyp erfordert die Implementierung von Deskriptor-Clustern. Der Root-Gerätetyp wird für Endpunkt 0 definiert. Durch das Lesen des Deskriptorclusters erhält der Client die Sichtbarkeit, um den gesamten Baum verfügbarer Endpunkte zu durchlaufen und entsprechende Vorgänge auszuführen.

Der Beauftragte oder das steuernde Gerät, z. B. ein Smartphone oder ein Hub, kann die Informationen im Deskriptor-Cluster verwenden, um das Gerät (Licht, Schalter, Pumpe, Thermostat) und bestimmte Funktionen, die von dieser Instanz des Geräts implementiert wurden, zu modellieren und dem Nutzer die richtige Benutzeroberfläche anzuzeigen.

Servercluster

Das Attribut ServerList listet die Clusterserver im Endpunkt auf.

Clientcluster

Das Attribut ClientList listet die Clusterclients im Endpunkt auf.

Liste der Gerätetypen

Das Attribut DeviceTypeList ist eine Liste der vom Endpunkt unterstützten Gerätetypen und ihrer jeweiligen Versionen. Es muss mindestens einen Gerätetyp enthalten.

Teileliste

PartsList enthält die Liste der Endpunkte, die für die Implementierung dieses Gerätetyps verwendet wurden.

Der PartsList von Endpunkt 0 (Stammknoten) enthält alle Endpunkte des Geräts, abgesehen von sich selbst (Endpunkt 0).

PartsList der anderen Endpunkte ist normalerweise leer. Für einen Temperatursensor ist beispielsweise ein Servercluster zur Temperaturmessung erforderlich.

Andere Gerätetypen können in einer Baumstruktur aus mehr als einer Gerätetypinstanz zusammengefasst sein. Ein Videoplayer-Gerätetyp kann beispielsweise aus Fernsehern, Videoplayern, Lautsprechern und verschiedenen Gerätetypen für Inhalts-Apps bestehen, die sich jeweils auf einem anderen Endpunkt befinden.


  1. Die Matter-Spezifikation bestimmt, dass ein Gerät mehrere Knoten haben kann. Smartphones können beispielsweise mehrere Apps haben, wobei jede Anwendung ein anderer Knoten ist. Für diese Einführung enthalten alle Geräte einen einzigen Knoten. Es ist zu erwarten, dass die meisten physischen Geräte diesem Muster folgen.