Odczyt transakcji
Jednym z pierwszych zastosowań interakcji z węzłami w Matter jest odczyt atrybutu z innego węzła, np. wartość temperatury z czujnika. W takich interakcjach pierwszym działaniem, które musi zostać wykonane, jest działanie związane z odczytaniem żądania.
Odczyt żądania
Kierunek: inicjator > docelowe
W ramach tego działania inicjator wysyła zapytanie do celu, podając:
- Prośby o atrybuty: lista co najmniej 1 atrybutu docelowego. Ta lista składa się z 0 lub więcej ścieżek do żądanych atrybutów celu.
- Zgody na zdarzenia: lista co najmniej 1 ścieżki do żądanych zdarzeń docelowych.
Gdy docelowa usługa otrzyma działanie Read Request Action, utworzy działanie Report Data Action z żądanymi informacjami.
Zgłaszanie działania na danych
Kierunek: docelowe > inicjator
W tym działaniu docelowe zwraca:
- Raporty atrybutów: lista co najmniej 1 zgłoszonego atrybutu, którego dotyczy żądanie wykonania operacji odczytu.
- Raporty o zdarzeniach: lista co najmniej 1 zgłoszonego zdarzenia.
- Tłumienie odpowiedzi: flaga określająca, czy odpowiedź dotycząca tego działania powinna zostać stłumiona.
- Identyfikator subskrypcji: jeśli ten raport jest częścią transakcji subskrypcji, musi zawierać liczbę całkowitą służącą do identyfikacji transakcji subskrypcji.
Stan działania odpowiedzi
Kierunek: „Docelowy –> Inicjator” lub „Inicjator –> Docelowy”.
Gdy inicjator otrzyma żądane dane, musi domyślnie wygenerować odpowiedź z akcja stanu. To działanie jest wysyłane przez inicjatora i potwierdza otrzymanie zgłoszonych danych. Jeśli flaga SuppressStatusResponse jest ustawiona, inicjator nie może wysłać działania odpowiedzi stanu.
Gdy inicjator wyśle odpowiedź na zapytanie o stan lub otrzyma od niego działanie dotyczące raportowania danych z włączonym parametrem tłumienia odpowiedzi, zapytanie odczytuje/raportuje.
Działanie odpowiedzi stanu zawiera pole status, które potwierdza powodzenie operacji lub wyświetla kod błędu.
Ograniczenia dotyczące czytania
Czynność „Czytaj żądanie” i „Zgłoś dane” są dostępne tylko dla Unicast. Ścieżki tych żądań nie mogą też być kierowane do grupy 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 subskrypcji
Request Subscribe Action
Kierunek: inicjator > docelowe
Oprócz pojedynczego działania „Read Request” inicjator może też subskrybować okresowe aktualizacje atrybutu lub zdarzenia. Dlatego to samo działanie danych raportu może zostać wygenerowane w wyniku okresowych aktualizacji danych po transakcji subskrypcji.
Interakcja subskrypcji tworzy relację między 2 węzłami, w której docelowe obiekty okresowo generują działania dotyczące danych raportu dla inicjatora. Inicjator to subskrybent, a cel to wydawca.
Działanie „Prośba o subskrypcję” zawiera:
- Min Interval Floor (Minimalny minimalny odstęp): minimalny odstęp między raportami.
- Maksymalny przedział czasowy: maksymalny przedział czasowy między raportami.
- Raporty o atrybutach: lista co najmniej 0 zgłoszonych atrybutów, których dotyczy żądanie wykonania działania odczytu.
- Raporty o zdarzeniach: lista co najmniej 1 zgłoszonego zdarzenia.
Po otrzymaniu żądania subskrypcji usługa docelowa odpowiada inicjatorowi działaniem raportowania danych zawierającym pierwszy zestaw zgłoszonych danych: dane opublikowane z zainicjowania.
Inicjator potwierdza działanie dotyczące danych raportu za pomocą odpowiedzi dotyczącej stanu działania wysłanej do celu. Gdy docelowe urządzenie otrzyma odpowiedź z działaniem dotyczącym stanu, w której nie ma błędów, wysyła odpowiedź z działaniem dotyczącym subskrypcji.
Docelowy odbiorca będzie okresowo wysyłać działanie dotyczące danych raportu w uzgodnionym interwale, a inicjator będzie odpowiadać na te działania, dopóki subskrypcja nie zostanie utracona lub anulowana.
Działanie odpowiedzi dotyczące subskrypcji
Kierunek: docelowe > inicjator
To ostatnie działanie związane z transakcją subskrypcji i kończy proces. Usługa ta obejmuje:
- Identyfikator subskrypcji: liczba całkowita identyfikująca subskrypcję.
- Min Interval (Minimalny interwał): ostateczny, określony minimalny interwał 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 są działaniami tylko dla Unicast.
- Wszystkie działania dotyczące danych raportu w interakcji z subskrypcją muszą mieć ten sam identyfikator subskrypcji.
- Jeśli subskrybent nie otrzyma działania związanego z raportowaniem danych w maksymalnie negocjowanym czasie między działaniami, subskrypcja zostanie zakończona.
- W ramach poprzedniej reguły wydawca może zakończyć interakcję z subskrypcją, po prostu przerywając wysyłanie okresowych działań związanych z danymi raportu.
- Subskrybent może zakończyć interakcję z subskrypcją, odpowiadając na zgłoszenie działania z danymi za pomocą kodu stanu
INACTIVE_SUBSCRIPTION
.