Lesetransaktion
Einer der ersten Anwendungsfälle bei der Interaktion mit Knoten in Matter ist das Lesen eines Attributs von einem anderen Knoten, z. B. eines Temperaturwerts von einem Sensor. Bei solchen Interaktionen muss als erste Aktion die Leseanfrageaktion ausgeführt werden.
Aktion für Leseanfrage
Richtung: Initiator -> Ziel
Bei dieser Aktion fragt der Initiator ein Ziel ab und stellt Folgendes bereit:
- Attributanfragen: eine Liste mit null oder mehr Attributen des Ziels. Diese Liste besteht aus null oder mehr Pfaden zu den angeforderten Attributen des Ziels.
- Ereignisanfragen: Liste mit null oder mehr Pfaden zu den angeforderten Ereignissen des Ziels.
Nachdem die Aktion „Read Request“ vom Ziel empfangen wurde, wird eine Aktion „Report Data“ mit den angeforderten Informationen zusammengestellt.
Berichtsdatenaktion
Richtung: Ziel -> Initiator
In dieser Aktion antwortet das Ziel mit:
- Attributberichte: Eine Liste mit null oder mehr der gemeldeten Attribute, die in der Leseaktionsanfrage angefordert wurden.
- Ereignisberichte: eine Liste mit null oder mehr gemeldeten Ereignissen.
- Suppress Response: Ein Flag, das bestimmt, ob die Statusantwort auf diese Aktion unterdrückt werden soll.
- Abo-ID: Wenn dieser Bericht Teil einer Abo-Transaktion ist, muss er eine Ganzzahl enthalten, die zur Identifizierung der Abo-Transaktion verwendet wird.
Status Response Action
Richtung: entweder Ziel -> Initiator oder Initiator -> Ziel
Sobald der Initiator die angeforderten Daten erhält, muss er standardmäßig eine Statusantwortaktion generieren. Diese Aktion wird vom Initiator gesendet, um den Empfang der gemeldeten Daten zu bestätigen. Wenn das Flag „Suppress Status Response“ festgelegt ist, darf der Initiator die Status Response Action nicht senden.
Sobald die Statusantwortaktion vom Initiator gesendet wurde oder eine Berichtsdatenaktion mit aktiviertem Flag „Suppress Response“ vom Initiator empfangen wurde, ist die Lese-/Berichtsabfrage abgeschlossen.
Die Statusantwortaktion enthält einfach ein status-Feld, das entweder den Erfolg des Vorgangs bestätigt oder einen Fehlercode enthält.
Einschränkungen lesen
Die Aktionen „Leseanfrage“ und „Berichtsdaten“ sind nur für Unicast verfügbar. Außerdem dürfen die Pfade dieser Anfragen nicht auf eine Gruppe von Knoten abzielen.
Die Statusantwortaktion ist nur für Unicast verfügbar und kann nicht als Antwort auf einen Groupcast generiert werden.
Abotransaktion
Aboanfrage-Aktion
Richtung: Initiator -> Ziel
Zusätzlich zu einer einzelnen Leseanfrageaktion kann ein Initiator auch regelmäßige Updates eines Attributs oder Ereignisses abonnieren. Daher kann dieselbe Berichtsdatenaktion als Ergebnis regelmäßiger Datenaktualisierungen generiert werden, die auf eine Abo-Transaktion folgen.
Eine Abo-Interaktion erstellt eine Beziehung zwischen zwei Knoten, bei der das Ziel regelmäßig Berichtsdatenaktionen für den Initiator generiert. Der Initiator ist der Abonnent und das Ziel ist der Publisher.
Eine Aboanfrage enthält Folgendes:
- Min Interval Floor: das Mindestintervall zwischen Berichten.
- Maximales Intervall: das maximale Intervall zwischen Berichten.
- Attributberichte: Eine Liste mit null oder mehr der gemeldeten Attribute, die in der Leseaktionsanfrage angefordert wurden.
- Ereignisberichte: eine Liste mit null oder mehr gemeldeten Ereignissen.
Nach der Subscribe Request antwortet das Ziel dem Initiator mit einer Report Data Action, die den ersten Satz Berichtsdaten enthält: die Primed Published Data.
Der Initiator bestätigt dann die Aktion „Berichtsdaten“ mit einer Statusantwortaktion, die an das Ziel gesendet wird. Sobald das Ziel eine Statusantwortaktion ohne Fehler erhält, sendet es eine Subscribe Response Action.
Das Ziel sendet anschließend regelmäßig in dem vereinbarten Intervall die Aktion „Berichtsdaten“ und der Initiator antwortet auf diese Aktionen, bis das Abo verloren geht oder gekündigt wird.
Aktionsantwort „Abonnieren“
Richtung: Ziel -> Initiator
Dies ist die letzte Aktion für die Abotransaktion und schließt den Vorgang ab. Dazu gehören:
- Abo-ID: Eine Ganzzahl, die das Abo identifiziert.
- Min. Intervall: Das endgültige, festgelegte Mindestintervall zwischen Berichten.
- Maximales Intervall: Das endgültige, festgelegte maximale Intervall zwischen Berichten.
Einschränkungen für Abos
- Die Subscribe Request Action und die Subscribe Response Action sind reine Unicast-Aktionen.
- Alle Berichtsdatenaktionen in einer Abo-Interaktion müssen dieselbe Abo-ID haben.
- Wenn der Abonnent innerhalb des maximalen ausgehandelten Intervalls zwischen Aktionen keine Berichtsdatenaktion erhält, wird das Abo gekündigt.
- Als Folge der vorherigen Regel kann der Publisher eine Abo-Interaktion beenden, indem er einfach keine regelmäßigen Berichtsdatenaktionen mehr sendet.
- Der Abonnent kann die Abo-Interaktion beenden, indem er auf eine Report Data Action mit dem Statuscode
INACTIVE_SUBSCRIPTIONantwortet.