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 do obiektu docelowego zapytanie, w którym podaje:
- Żą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 usługę docelową.
- Event Requests: 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 zgłoszonym atrybutem, o który poproszono w żądaniu działania odczytu.
- Raporty o zdarzeniach: lista zgłoszonych zdarzeń (może być pusta).
- Suppress Response: flaga określająca, czy odpowiedź statusu na to działanie powinna być pomijana.
- 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 w 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 inicjator otrzyma działanie Report Data z włączoną flagą Suppress Response, zapytanie odczytu/raportu zostanie zakończone.
Działanie odpowiedzi o stanie 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 ten sposób 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 odbiorcą wydawca.
Działanie związane z prośbą o subskrypcję zawiera:
- Min Interval Floor (Minimalny odstęp): minimalny odstęp między raportami.
- Maksymalny odstęp czasu: maksymalny odstęp czasu między raportami.
- Raporty o atrybutach: lista 0 lub większej liczby zgłoszonych atrybutów wymaganych w żądaniu działania odczytu.
- Raporty o zdarzeniach: 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: przygotowane dane opublikowane.
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 urządzenie inicjujące będzie odpowiadać na te działania do momentu utraty lub anulowania subskrypcji.
Działanie 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): ostateczny, określony minimalny odstęp 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 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ę 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.