Model danych urządzenia

Urządzenia w Matter mają dobrze zdefiniowany model danych (DM), który stanowi hierarchiczne modelowanie funkcji urządzenia. Na najwyższym poziomie tej hierarchii znajduje się urządzenie.

Urządzenia i punkty końcowe

Wszystkie urządzenia, w tym smartfony i domowe asystenty, składają się z węzłów1. Węzeł to unikalny, możliwy do zidentyfikowania i adres zasobu w sieci, który użytkownik może postrzegać jako funkcjonalną całość. Komunikacja sieciowa w Matter zaczyna i kończy na węźle.

Węzły to zbiór punktów końcowych. Każdy punkt końcowy obejmuje zbiór funkcji. Punkt końcowy może być na przykład związany z funkcjami oświetlenia, inny – z wykrywaniem ruchu, a inny – z narzędziami, takimi jak OTA urządzenia.

Hierarchia urządzeń, węzłów i punktów końcowych
Rysunek 1. Urządzenia, węzły i punkty końcowe

Role węzłów

Rola węzła to zbiór powiązanych ze sobą działań. Każdy węzeł może mieć jedną lub więcej ról. Role węzła:

  • Komisarz: węzeł wykonujący uruchomienie procedury uruchamiania.
  • Kontroler: węzeł, który może sterować 1 lub większą liczbą węzłów. Są to na przykład Google Home app (GHA), Google Assistant i Google Nest Hub (2nd gen). Niektóre typy urządzeń, takie jak przełącznik światła do włączania i wyłączania światła, są przypisane do roli kontrolera.
  • Użytkownik kontrolny: węzeł, który może kontrolować 1 lub więcej węzłów. Użytkownikami sterującymi może być większość typów urządzeń. Wyjątkiem są niektóre typy urządzeń, które mają tę rolę, np. przełącznik światła do włączania/wyłączania. Przełącznikiem światła do włączenia/wyłączenia może być tylko kontroler. Nie może być użytkownikiem kontrolnym.
  • Dostawca OTA: węzeł, który może udostępniać aktualizacje oprogramowania OTA.
  • Zgłaszający OTA: węzeł, który może zażądać aktualizacji oprogramowania OTA.

Klastry

W punkcie końcowym węzeł ma co najmniej 1 klaster. Są to kolejny krok w hierarchii urządzeń, ponieważ grupują konkretne funkcje, takie jak klaster włączania i wyłączania na inteligentnej wtyczce lub klaster sterowania poziomem w punkcie końcowym z możliwością przyciemnienia.

Węzeł może też mieć kilka punktów końcowych, z których każdy tworzy instancję tej samej funkcji. Na przykład oprawa oświetleniowa może zapewnić możliwość niezależnego sterowania poszczególnymi punktami oświetlenia, a lista zasilająca – możliwość sterowania pojedynczymi gniazdkami.

Atrybuty

Na ostatnim poziomie znajduje się atrybut, czyli stany należące do węzła, takie jak atrybut bieżącego poziomu klastra kontrolnego poziomu. Atrybuty można zdefiniować jako różne typy danych, np. uint8, ciągi tekstowe lub tablice.

Hierarchia węzłów, punktów końcowych, atrybutów i poleceń
Rysunek 2. Węzły, punkty końcowe, atrybuty i polecenia

Polecenia

Oprócz atrybutów klastry mają też polecenia, czyli działania, które można wykonać. Odpowiadają one wiadomościom na czacie Matter zdalnego wywołania procedury. Polecenia przypominają czasowniki, takie jak zamek do drzwi w klastrze zamek do drzwi. Polecenia mogą generować odpowiedzi i wyniki. W Matter odpowiedzi te są też definiowane jako polecenia (i w odwrotnym kierunku).

Wydarzenia

I wreszcie, klastry mogą też zawierać zdarzenia, które można traktować jako zapis wcześniejszych zmian stanu. Atrybuty reprezentują bieżące stany, natomiast zdarzenia są dziennika przeszłości i zawierają monotonicznie rosnącą wartość licznika, sygnaturę czasową oraz priorytet. Umożliwiają rejestrowanie zmian stanów oraz modelowanie danych, którego nie można łatwo osiągnąć za pomocą atrybutów.

Pełne przykładowe urządzenie
Rysunek 3. Przykład hierarchii Matter Model interakcji z urządzeniami

Punkt końcowy 0 jest zarezerwowany dla klastrów narzędziowych. Klastry narzędziowe to określone klastry obejmujące funkcje obsługi punktu końcowego, takie jak wykrywanie, adresowanie, diagnostyka i aktualizowanie oprogramowania. Z drugiej strony Klastry aplikacji obsługują działania główne, takie jak włączanie i wyłączanie czy pomiar temperatury.

Typy urządzeń

Które kombinacje klastrów powinny zostać uwzględnione, gdy producent urządzenia planuje nowe Urządzenie?

Specyfikacja Matter wymaga, aby urządzenie wdrożyło lub rozszerzenie co najmniej 1 typu urządzenia. Typ urządzenia to zbiór obowiązkowych i opcjonalnych klastrów, które definiują podstawowe atrybuty urządzenia fizycznego, takie jak Przyciemniane światło, Zamek do drzwi czy Odtwarzacz wideo.

Typy urządzeń nie są określane w głównym dokumencie specyfikacji Matter, ale przez powiązany dokument: Bibliotekę urządzeń. Podobnie wszystkie klastry aplikacji są zdefiniowane w bibliotece klastrów aplikacji. Te 3 dokumenty znajdziesz na stronie dla subskrybentów Connectivity Standards Alliance (Alliance).

Każdy punkt końcowy implementujący typ urządzenia musi implementować wymagane klastry definiujące ten typ urządzenia. Oprócz obowiązkowych klastrów punkt końcowy może implementować dodatkowe klastry, w tym jeden lub więcej opcjonalnych klastrów typu urządzenia, a nawet klastry, które nie należą do typu urządzenia.

Klienty i serwery

Mogą to być Klaster klienta lub Klaster serwera. Chociaż serwer jest stanowy i przechowuje atrybuty, zdarzenia i polecenia, klient jest bezstanowy i jego obowiązkiem jest inicjowanie interakcji ze zdalnym klastrem serwera. Oznacza to, że:

  • odczytuje dane z atrybutów zdalnych i zapisuje je w ich atrybutach zdalnych.
  • odczytuje swoje zdalne zdarzenia.
  • wywołania zdalnych poleceń.

O ile DM jest hierarchiczny w obrębie węzła, relacje między węzłami już nie. Węzły w elemencie Matter nie mają relacji między kontrolerem pionowym a elementem peryferyjnym ani relacją między liderem a podmiotem nadrzędnym. Wręcz przeciwnie, relacja jest pozioma: każdy klaster może być serwerem lub klientem. Dlatego w przypadku różnych klastrów i funkcji węzeł może być zarówno serwerem, jak i klientem oraz klientem.

Na przykład możemy mieć 2 lampy stołowe: Węzeł A i Węzeł B. Oba węzły implementują typ urządzenia Światło włączone/wyłączone. Ten typ urządzenia obejmuje klaster serwera włączania/wyłączania, który steruje odpowiednimi fizycznymi wyjściami świetlnymi.

Jednak, jak ma to miejsce w przypadku lamp stołowych, nasze fizyczne urządzenia również mają przełącznik włączania/wyłączania światła do lokalnych przełączników. Ten typ urządzenia musi implementować klaster klienta włączania/wyłączania, aby mógł kontrolować klastry serwerów.

Lampy obsługujące zarówno oświetlenie, jak i przełącznik światła
Rysunek 4. Klastry klienta i serwera

W tym przykładzie włączony/wyłączony klaster klienta w węźle A zmienia atrybuty klastra serwera aktywnego/wyłączonego w węźle A i węźle B, a klaster klienta węzła B zmienia tylko klaster serwera w węźle B.

W następnej sekcji omówimy interakcje między klastrami klienta i serwera: model interakcji.

Klaster deskryptorów

Jak sama nazwa wskazuje, serwer klastra deskryptorów dostarcza informacji do introspekcji. Opisuje punkt końcowy, określając:

  • Klastry serwerów.
  • Klastry klientów.
  • Typy urządzeń.
  • Dodatkowe punkty końcowe nazywane częściami.

Każdy typ urządzenia wymaga implementacji klastrów deskryptorów. Typ urządzenia głównego jest zdefiniowany w punkcie końcowym 0. Odczytanie klastra deskryptora zapewni klientowi wgląd w całe drzewo dostępnych punktów końcowych i wykona odpowiednie operacje.

Komisarz lub urządzenie kontrolujące, takie jak telefon lub centrala, mogą wykorzystać informacje znalezione w grupie deskryptorów do modelowania urządzenia (światło, przełącznik, pompa, termostat) i konkretnych funkcji wdrożonych przez konkretną instancję Urządzenia, aby pokazać użytkownikowi prawidłowy interfejs użytkownika.

Klastry serwerów

Atrybut ServerList zawiera listę serwerów klastrów w punkcie końcowym.

Klastry klientów

Atrybut ClientList zawiera listę klientów klastra w punkcie końcowym.

Lista typów urządzeń

Atrybut DeviceTypeList to lista typów urządzeń obsługiwanych przez punkt końcowy wraz z ich wersjami. Musi zawierać co najmniej jeden typ urządzenia.

Lista części

PartsList zawiera listę punktów końcowych używanych do implementowania tego typu urządzenia.

PartsList punktu końcowego 0 (węzeł główny) zawiera wszystkie punkty końcowe urządzenia poza nim (punkt końcowy 0).

Pole PartsList innych punktów końcowych zwykle jest puste. Na przykład czujnik temperatury obsługuje klaster serwera do pomiaru temperatury, a nie nic innego.

Inne typy urządzeń mogą się składać w strukturze drzewa większej niż 1 instancja typu urządzenia. Na przykład urządzenie odtwarzacza wideo może obejmować telewizor, odtwarzacz wideo, głośnik i różne typy urządzeń do obsługi treści, każdy w różnym punkcie końcowym.


  1. Specyfikacja Matter określa, że urządzenie może mieć wiele węzłów. Na przykład smartfony mogą mieć wiele aplikacji, z których każda to oddzielny węzeł. Na potrzeby tego przykładu wszystkie urządzenia będą zawierać 1 węzeł. Przewiduje się, że większość urządzeń fizycznych będzie podążać za tym wzorcem.