Das Gerätedatenmodell

Geräte in Matter haben ein klar definiertes Datenmodell (DM), das eine hierarchische Modellierung der Funktionen eines Geräts darstellt. Ganz oben Ebene dieser Hierarchie gibt es ein Device (Gerät).

Geräte und Endpunkte

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

Knoten sind eine Sammlung von Endpunkten. Jeder Endpunkt umschließt einen Feature-Satz. So kann sich ein Endpunkt z. B. auf eine Beleuchtungsfunktion beziehen, während ein anderer bezieht sich auf die Bewegungserkennung, ein anderer bezieht sich auf Dienstprogramme wie als Geräte-OTA aus.

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

Knotenrollen

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

  • Commissioner: Ein Knoten, der Folgendes ausführt: Inbetriebnahme.
  • Controller: Ein Knoten, der einen oder mehrere Knoten steuern kann. Beispiele: Google Home app (GHA), Google Assistant und Google Nest Hub (2nd gen). Einige z. B. das Ein-/Aus-Licht Switch und den Controller Rolle.
  • Controlee: Ein Knoten, der von einem oder mehreren Knoten gesteuert werden kann. Knoten. Die meisten Gerätetypen können ein Controlee sein, mit Ausnahme einiger Gerätetypen die die Rolle „Controller“ haben, z. B. die Ein-/Aus-LED Schalter. Ein-/Aus-Licht Switch kann nur ein Controller sein. Es darf kein Controlee sein.
  • OTA-Anbieter: Ein Knoten, der OTA-Softwareupdates bereitstellen kann.
  • OTA-Anfragesteller: Ein Knoten, der OTA-Software anfordern kann Aktualisierungen.

Cluster

Innerhalb eines Endpunkts hat ein Knoten einen oder mehrere Cluster. Dies sind weitere in der Gerätehierarchie ein, da spezifische Funktionen wie An/Aus-Cluster auf einer intelligenten Steckdose oder einem Level-Steuerung-Cluster auf einem dimmbaren Gerät Light-Endpunkt.

Ein Knoten kann auch mehrere Endpunkte haben, die jeweils eine Instanz derselben Funktion erstellen. Beispielsweise kann eine Leuchte eine unabhängige Steuerung der Einzelne Lampen oder eine Mehrfachsteckdose können die Steuerung einzelner Steckdosen offen lassen.

Attribute

Auf der letzten Ebene finden Sie die Attribute. Das sind Status, die der Knoten hat. z. B. das Attribut aktuelle Ebene eines Clusters für Ebenensteuerung. Attribute können als unterschiedliche Datentypen definiert werden, wie z. B. uint8, Strings oder Arrays.

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

Befehle

Neben Attributen haben Cluster auch Befehle. Das sind Aktionen, die durchgeführt werden kann. Sie entsprechen in der DM von Matter zu einen Remote-Prozeduraufruf. Befehle ähneln verb, z. B. das Schloss Cluster Türverriegelung. Befehle können Antworten und Ergebnisse generieren. in Matter sind solche Antworten auch als Befehle definiert, umgekehrt.

Ereignisse

Cluster können auch Ereignisse haben, die als Aufzeichnung vergangener Statusübergänge betrachtet werden können. Während Attribute die aktuellen Zustände darstellen, ein Journal der Vergangenheit und eine kontinuierlich zunehmende Zähler, Zeitstempel und Priorität. Sie ermöglichen die Erfassung von Zustandsübergängen sowie eine Datenmodellierung, mit Attributen zu erreichen ist.

Vollständiges Beispielgerät
Abbildung 3: Ein Beispiel für die Hierarchie von Matter Geräteinteraktionsmodell

Der Endpunkt 0 ist für Dienstprogramme reserviert. Dienstprogramm-Cluster sind spezifische Cluster, die Dienstfunktionen auf einem Endpunkt wie z. B. Erkennung, Adressierung, Diagnose und Softwareupdates. Im Gegensatz dazu Die Anwendungscluster unterstützen primäre Aktionen wie An/Aus oder Temperaturmessung.

Gerätetypen

Alle Clusterkombinationen, die als Gerät berücksichtigt werden sollten der Hersteller ein neues Gerät plant?

Gemäß der Matter-Spezifikation muss das Gerät einen oder mehrere Gerätetypen implementieren oder erweitern. Ein Gerätetyp ist eine Sammlung von obligatorische und optionale Cluster, die die Attribute der obersten Ebene eines physisches Gerät, z. B. Dimmbares Licht, Türschloss oder Videoplayer

Die Gerätetypen werden nicht durch Matter angegeben Hauptdokument der Spezifikation, aber durch ein zugehöriges Dokument: das Gerät Mediathek. Ebenso werden alle Anwendungscluster im Bereich Anwendungscluster Clusterbibliothek. Diese drei Dokumente finden Sie auf der Website für Connectivity Standards Alliance (Alliance)-Mitglieder.

Jeder Endpunkt, der einen Gerätetyp implementiert, muss die obligatorischen Cluster implementieren die diesen Gerätetyp definieren. Zusätzlich zu den obligatorischen Clustern können am Endpunkt weitere Cluster implementiert werden, einschließlich eines oder mehrerer der optionalen Cluster des Gerätetyps oder sogar Cluster, die nicht zum Gerätetyp gehören.

Clients und Server

Cluster können entweder ein Clientcluster oder ein Servercluster sein. Während ein Der Server ist zustandsorientiert und enthält Attribute, Ereignisse und Befehle. Ein Client ist zustandslos ist und für die Initiierung von Interaktionen mit einem Remote-Servercluster. Dadurch wird Folgendes ausgeführt:

  • liest aus und schreibt in die Remote-Attribute.
  • liest die Remote-Ereignisse.
  • Aufruf der zugehörigen Remotebefehle.

Die DM ist innerhalb eines Knotens hierarchisch, die Beziehung zwischen den Knoten ist es jedoch nicht. Knoten in Matter haben keine Branche zwischen Controller/Peripheriegeräten oder Leader/Follower. Im Gegenteil, Beziehung ist horizontal: Jeder Cluster kann entweder Server oder Client sein. Daher kann ein Knoten im Hinblick auf verschiedene Cluster sowohl ein Server als auch ein Client sein. und Funktionalitäten.

Wir haben z. B. zwei Tischlampen: Knoten A und Knoten B. Beide Knoten implementieren den Gerätetyp Lampe ein/aus. Bei diesem Gerätetyp gibt es eine Ein/Aus-Schaltfläche Server: Cluster, der die jeweilige physische Lichtausgabe steuert.

Wie bei herkömmlichen Tischlampen haben auch unsere physischen Geräte einen Gerätetyp Lichtschalter für die lokalen Ein-/Aus-Schalter. Dieses Gerät Für diesen Typ muss ein Ein/Aus-Client-Cluster implementiert werden, damit er den Server steuern kann Cluster:

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 On-/Off-Serverclusters auf Knoten A und Knoten B, während der Client von Knoten B Der Cluster ändert nur den Servercluster auf Knoten B selbst.

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

Deskriptor-Cluster

Wie der Name schon sagt, führt der Deskriptorcluster-Server eine Selbstprüfung durch Informationen. Sie beschreibt den Endpunkt mit der folgenden Aufzählung:

  • Servercluster.
  • Clientcluster
  • Gerätetypen
  • Zusätzliche Endpunkte, die als Teile bezeichnet werden.

Für jeden Gerätetyp müssen Descriptor-Cluster implementiert werden. Die Wurzel Der Gerätetyp ist auf Endpunkt 0 definiert. Das Lesen seines Deskriptor-Clusters Sie bieten dem Kunden die Möglichkeit, die gesamte Baumstruktur der verfügbaren Endpunkte und führen entsprechende Vorgänge aus.

Geräte wie Telefon oder Hub können die Funktionen Informationen im Deskriptor-Cluster zur Modellierung des Geräts (Beleuchtung, Schalter, Pumpe, Thermostat) und bestimmte Funktionen, die von der jeweiligen Instanz implementiert wurden, des Geräts und zeigt dem Nutzer die richtige Benutzeroberfläche an.

Servercluster

Das Attribut ServerList listet die Clusterserver 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 und die entsprechenden Versionen. Es muss mindestens ein Element enthalten sein Gerätetyp.

Teileliste

Die PartsList enthält die Liste der Endpunkte, die zur Implementierung dieses Geräts verwendet werden Typ.

Die PartsList von Endpunkt 0 (Stammknoten) enthält alle Endpunkte des Geräts mit Ausnahme von sich selbst (Endpunkt 0).

Der PartsList anderer Endpunkte ist normalerweise leer. Beispiel: Der Temperatursensor braucht nur einen Server-Cluster mit Temperaturmessung sonst.

Andere Gerätetypen können in einer Baumstruktur aus mehreren Gerätetyp-Instanzen bestehen. Ein Videoplayer-Gerätetyp kann z. B. aus TV, Videoplayer, Lautsprecher und verschiedene Gerätetypen der Content-App, jeweils auf einem anderen Endpunkt.


  1. Die Matter-Spezifikation legt fest, dass ein Gerät mehrere Knoten haben kann. Beispielsweise können Smartphones mehrere Apps haben, wobei jede App ein Knoten wechseln. Für diese Einführung enthalten alle Geräte auf einen einzelnen Knoten. Bei den meisten physischen Geräten ist dies voraussichtlich so, Muster zu ändern.