Odczytywanie transakcji
Jednym z pierwszych przypadków użycia podczas interakcji z węzłami w Matter jest odczytywanie atrybutu z innego węzła, np. wartości temperatury z czujnika. W takich interakcjach pierwszym działaniem, które należy wykonać, jest działanie żądania odczytu.
Działanie żądania odczytu
Kierunek: inicjator –> cel
W tym działaniu inicjator wysyła zapytanie do miejsca docelowego, podając:
- Żądania atrybutów: lista atrybutów miejsca docelowego (może być pusta). Lista ta zawiera 0 lub więcej ścieżek do atrybutów żądanych przez element docelowy.
- Event Requests (Żądania zdarzeń): lista zawierająca 0 lub więcej ścieżek do żądanych zdarzeń w miejscu docelowym.
Po otrzymaniu działania Read Request Action urządzenie docelowe utworzy działanie Report Data Action z żądanymi informacjami.
Działanie na danych raportu
Kierunek: Cel –> Inicjator
W tym działaniu usługa docelowa odpowiada:
- Attribute Reports: lista z co najmniej 1 atrybutem zgłoszonym w żądaniu działania odczytu.
- Raporty o zdarzeniach: lista zgłoszonych zdarzeń (może być pusta).
- Suppress Response (Pomiń odpowiedź): flaga określająca, czy odpowiedź na to działanie powinna zostać pominięta.
- Identyfikator subskrypcji: jeśli ten raport jest częścią transakcji subskrypcji, musi zawierać liczbę całkowitą służącą do identyfikacji transakcji subskrypcji.
Działanie odpowiedzi na stan
Kierunek: Target -> Initiator lub Initiator -> Target
Gdy inicjator otrzyma żądane dane, domyślnie musi wygenerować działanie odpowiedzi o stanie. To działanie jest wysyłane przez inicjatora w celu potwierdzenia otrzymania zgłoszonych danych. Jeśli flaga Suppress Status Response jest ustawiona, inicjator nie może wysyłać działania Status Response.
Gdy inicjator wyśle działanie Status Response Action lub gdy otrzyma działanie Report Data z włączoną flagą Suppress Response, zapytanie odczytu/raportu zostanie zakończone.
Działanie Status Response Action zawiera tylko pole status, które potwierdza powodzenie operacji lub przedstawia kod błędu.
Ograniczenia dotyczące odczytu
Działania Read Request Action i Report Data Action są dostępne tylko w przypadku Unicast. Ponadto ścieżki tych żądań nie mogą być kierowane na grupę węzłów.
Działanie odpowiedzi na stan jest dostępne tylko w przypadku Unicast i nie może być generowane jako odpowiedź na transmisję grupową.
Transakcja zakupu subskrypcji
Działanie związane z prośbą o subskrypcję
Kierunek: inicjator –> cel
Oprócz pojedynczego działania Read Request Action inicjator może też subskrybować okresowe aktualizacje atrybutu lub zdarzenia. W związku z tym to samo działanie dotyczące danych raportu może być generowane w wyniku okresowych aktualizacji danych, które następują po transakcji subskrypcji.
Interakcja subskrypcji tworzy relację między 2 węzłami, w której węzeł docelowy okresowo generuje działania związane z danymi raportu dla węzła inicjującego. Inicjatorem jest subskrybent, a miejscem docelowym jest wydawca.
Działanie związane z prośbą o subskrypcję zawiera:
- Min Interval Floor (Minimalny odstęp): minimalny odstęp między raportami.
- Max Interval Ceiling (Maksymalny przedział): maksymalny przedział między raportami.
- Raporty o atrybutach: lista zawierająca 0 lub więcej zgłoszonych atrybutów wymaganych w żądaniu działania odczytu.
- Raporty dotyczące zdarzeń: lista zgłoszonych zdarzeń (może być pusta).
Po wysłaniu żądania subskrypcji usługa docelowa odpowiada usłudze inicjującej, wysyłając działanie Report Data Action zawierające pierwszą partię zgłoszonych danych: Primed Published Data.
Następnie inicjator potwierdza działanie Report Data Action za pomocą odpowiedzi Status Response Action sent to the Target. Gdy urządzenie docelowe otrzyma działanie Status Response Action informujące o braku błędów, wysyła działanie Subscribe Response Action.
Urządzenie docelowe będzie następnie okresowo wysyłać działanie Report Data Action w uzgodnionym odstępie czasu, a inicjator będzie odpowiadać na te działania, dopóki subskrypcja nie zostanie utracona lub anulowana.
Działanie w przypadku odpowiedzi na subskrypcję
Kierunek: Cel –> Inicjator
To ostatnie działanie w transakcji subskrypcji, które kończy proces. Usługa ta obejmuje:
- Identyfikator subskrypcji: liczba całkowita identyfikująca subskrypcję.
- Min Interval (Minimalny odstęp czasu): ostateczny, określony minimalny odstęp czasu między raportami.
- Maksymalny odstęp: ostateczny, określony maksymalny odstęp między raportami.
Ograniczenia dotyczące subskrypcji
- Akcja żądania subskrypcji i akcja odpowiedzi na żądanie subskrypcji to akcje tylko do Unicast.
- Wszystkie działania dotyczące danych raportu w interakcji subskrypcji muszą mieć ten sam identyfikator subskrypcji.
- Jeśli Subskrybent nie otrzyma działania związanego z danymi raportu w maksymalnym wynegocjowanym odstępie między działaniami, subskrypcja zostanie zakończona.
- W konsekwencji poprzedniej reguły Wydawca może zakończyć Interakcję związaną z subskrypcją, po prostu przestając wysyłać okresowe Działania związane z danymi raportu.
- Subskrybent może zakończyć interakcję subskrypcji, odpowiadając na działanie raportowania danych kodem stanu
INACTIVE_SUBSCRIPTION.