Geräte in Matter haben ein genau definiertes Datenmodell (DM), das eine hierarchische Modellierung der Funktionen eines Geräts darstellt. 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 Netzwerkressource, die von einem Nutzer als vollständige Funktionseinheit wahrgenommen wird. Die Netzwerkkommunikation in Matter beginnt und endet an einem Knoten.
Knoten sind eine Sammlung von Endpunkten. Jeder Endpunkt umfasst eine Reihe von Funktionen. Ein Endpunkt kann sich beispielsweise auf die Funktion Beleuchtung beziehen, ein anderer auf die Bewegungserkennung und ein weiterer auf Dienstprogramme wie Device OTA.

Knotenrollen
Eine Knotenrolle ist eine Reihe von zusammengehörigen Verhaltensweisen. Jeder Knoten kann eine oder mehrere Rollen haben. Zu den Knotenrollen gehören:
- Auftraggeber: Ein Knoten, der die Inbetriebnahme durchführt.
- Controller: Ein Knoten, der einen oder mehrere Knoten steuern kann. Beispiele sind Google Home app (GHA), Google Assistant und Google Nest Hub (2nd gen). Einige Gerätetypen, z. B. der Ein/Aus-Lichtschalter, haben die Rolle „Controller“.
- Gesteuertes Gerät: Ein Knoten, der von einem oder mehreren Knoten gesteuert werden kann. Die meisten Gerätetypen können ein Controlee sein, mit Ausnahme einiger Gerätetypen, die die Controller-Rolle haben, z. B. der Ein/Aus-Lichtschalter. Der Ein/Aus-Lichtschalter kann nur als Controller fungieren. Sie darf nicht die kontrollierte Einheit 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. Sie sind ein weiterer Schritt in der Gerätehierarchie, da sie bestimmte Funktionen wie einen Ein/Aus-Cluster auf einem Smart Plug oder einen Pegelsteuerung-Cluster auf einem dimmbaren Licht-Endpunkt gruppieren.
Ein Knoten kann auch mehrere Endpunkte haben, die jeweils eine Instanz derselben Funktion erstellen. Beispielsweise kann eine Lampe die unabhängige Steuerung einzelner Leuchten oder eine Mehrfachsteckdose die Steuerung einzelner Steckdosen ermöglichen.
Attribute
Auf der letzten Ebene finden wir Attribute, die Zustände des Knotens enthalten, z. B. das Attribut current level (aktueller Pegel) eines level control-Clusters (Pegelsteuerung). Attribute können als verschiedene Datentypen wie uint8, Strings oder Arrays definiert werden.

Befehle
Neben Attributen haben Cluster auch Befehle, die Aktionen sind, die ausgeführt werden können. Sie entsprechen in der DM von Matter einem Remoteprozeduraufruf. Befehle sind verbähnlich, z. B. lock door (Tür verriegeln) in einem Door Lock-Cluster (Türschloss). Befehle können Antworten und Ergebnisse generieren. In Matter werden solche Antworten auch als Befehle definiert, die in die umgekehrte Richtung gehen.
Ereignisse
Cluster können auch Ereignisse enthalten, die als Aufzeichnung vergangener Zustandsübergänge betrachtet werden können. Attribute stellen den aktuellen Status dar, Ereignisse sind ein Protokoll der Vergangenheit und enthalten einen monoton steigenden Zähler, einen Zeitstempel und eine Priorität. Sie ermöglichen die Erfassung von Zustandsübergängen sowie die Datenmodellierung, die mit Attributen nicht ohne Weiteres möglich ist.

Endpunkt 0 ist für die Utility-Cluster reserviert. Utility-Cluster sind spezielle Cluster, die Servicefunktionen für einen Endpunkt umfassen, z. B. Erkennung, Adressierung, Diagnose und Software-Update. Anwendungscluster unterstützen dagegen primäre Aktionen wie Ein/Aus oder Temperaturmessung.
Gerätetypen
Welche Clusterkombinationen sollten insgesamt berücksichtigt werden, wenn ein Gerätehersteller ein neues Gerät plant?
Die Matter-Spezifikation erfordert, dass das Gerät einen oder mehrere Gerätetypen implementiert oder erweitert. Ein Gerätetyp ist eine Sammlung von obligatorischen und optionalen Clustern, die die Attribute der obersten Ebene eines physischen Geräts definieren, z. B. Dimmable Light (Dimmbare Lampe), Door Lock (Türschloss) oder Video Player (Videoplayer).
Die Gerätetypen werden nicht im Hauptdokument der Matter-Spezifikation, sondern in einem Begleitdokument, der Gerätebibliothek, angegeben. Alle Anwendungscluster sind in der Application Cluster Library definiert. Diese drei Dokumente finden Sie 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 Client-Cluster oder ein Server-Cluster sein. Ein Server ist zustandsbehaftet und enthält Attribute, Ereignisse und Befehle. Ein Client ist zustandslos und seine Aufgabe ist es, Interaktionen mit einem Remote-Servercluster zu initiieren. Dazu führt er folgende Aktionen aus:
- Liest und schreibt seine Remote-Attribute.
- Lesezugriff auf die zugehörigen Remote-Ereignisse.
- Aufrufen der zugehörigen Remote-Befehle.
Der DM ist zwar hierarchisch innerhalb eines Knotens, die Beziehung zwischen Knoten ist jedoch nicht hierarchisch. Knoten in Matter haben keine vertikalen Controller-/Peripherie- oder Leader-/Follower-Beziehungen. Stattdessen ist die Beziehung horizontal: Jeder Cluster kann entweder Server oder Client sein. Ein Knoten kann also sowohl Server als auch Client für verschiedene Cluster und Funktionen sein.
Wir haben beispielsweise zwei Tischlampen: Knoten A und Knoten B. Beide Knoten implementieren den Gerätetyp On/Off Light (Ein/Aus-Lampe). Dieser Gerätetyp umfasst einen Ein/Aus-Server-Cluster, der die jeweiligen physischen Lichtausgaben steuert.
Wie bei herkömmlichen Tischlampen haben unsere physischen Geräte für ihre lokalen Ein-/Ausschalter auch den Gerätetyp On/Off Light Switch (Ein-/Ausschalter für Beleuchtung). Dieser Gerätetyp muss einen On/Off Client-Cluster implementieren, damit er die Server-Cluster steuern kann.

In diesem Beispiel ändert der On/Off-Client-Cluster auf Knoten A die Attribute des On/Off-Server-Clusters auf Knoten A und Knoten B, während der Client-Cluster von Knoten B nur den Server-Cluster auf Knoten B selbst ändert.
Im nächsten Abschnitt wird beschrieben, wie Client- und Servercluster interagieren: das Interaktionsmodell.
Deskriptor-Cluster
Wie der Name schon sagt, stellt der Descriptor Cluster Server Introspektionsinformationen bereit. Sie beschreibt den Endpunkt und listet seine folgenden Eigenschaften auf:
- Servercluster.
- Client-Cluster.
- Gerätetypen.
- Zusätzliche Endpunkte, sogenannte Teile.
Für jeden Gerätetyp müssen Deskriptor-Cluster implementiert werden. Der Root-Gerätetyp wird auf Endpunkt 0 definiert. Wenn der Client den Descriptor-Cluster liest, kann er den gesamten Baum der verfügbaren Endpunkte durchlaufen und die entsprechenden Vorgänge ausführen.
Das Commissioner- oder Steuergerät, z. B. ein Smartphone oder Hub, kann die Informationen im Descriptor-Cluster verwenden, um das Gerät (Lampe, Schalter, Pumpe, Thermostat) und die spezifischen Funktionen zu modellieren, die von dieser bestimmten Instanz des Geräts implementiert werden, und dem Nutzer die richtige Benutzeroberfläche anzuzeigen.
Servercluster
Das Attribut ServerList
listet die Cluster-Server im Endpunkt auf.
Clientcluster
Das Attribut ClientList
listet die Cluster-Clients im Endpunkt auf.
Liste der Gerätetypen
Das Attribut DeviceTypeList
ist eine Liste der vom Endpunkt unterstützten Gerätetypen sowie der entsprechenden Überarbeitungen. Es muss mindestens einen Gerätetyp enthalten.
Teileliste
Das PartsList
enthält die Liste der Endpunkte, die zum Implementieren dieses Gerätetyps verwendet werden.
Die PartsList
von Endpunkt 0 (Root Node) enthält alle Endpunkte des Geräts mit Ausnahme von Endpunkt 0 selbst.
Die PartsList
anderer Endpunkte ist in der Regel leer. Für einen Temperatursensor ist beispielsweise ein Servercluster für Temperaturmessungen erforderlich, aber nichts anderes.
Andere Gerätetypen können aus einer Baumstruktur mit mehreren DeviceType-Instanzen bestehen. Ein Gerät vom Typ „Videoplayer“ kann beispielsweise aus einem Fernseher, einem Videoplayer, einem Lautsprecher und verschiedenen Geräte-Typen für Inhalts-Apps bestehen, die jeweils an einem anderen Endpunkt verfügbar sind.
-
Die Matter-Spezifikation besagt, dass ein Gerät mehrere Knoten haben kann. Smartphones können beispielsweise mehrere Apps haben, wobei jede App einen anderen Knoten darstellt. In dieser Einführung enthält jedes Gerät einen einzelnen Knoten. Die meisten physischen Geräte werden voraussichtlich diesem Muster folgen. ↩