Model danych urządzenia

Urządzenia w jednostce organizacyjnej 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 adresowy zasób w sieci, który użytkownik może postrzegać jako funkcjonalną całość. Komunikacja sieciowa w regionie Matter rozpoczyna się i kończy w węźle.

Węzły stanowią kolekcję punktów końcowych. Każdy punkt końcowy obejmuje zbiór cech. Punkt końcowy może na przykład dotyczyć funkcji oświetlenia, natomiast inny może być związany z wykrywaniem ruchu, a innym z narzędziami, takimi jak funkcja 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 zestaw powiązanych zachowań. Każdy węzeł może mieć co najmniej 1 rolę. Role węzłów obejmują:

  • Commissioner (Komisarz): węzeł pełniący funkcję Commissioning (Prowizja).
  • Kontroler: węzeł, który może sterować co najmniej jednym węzłem. Przykłady: Google Home app (GHA), Google Assistant i Google Nest Hub (2nd gen). Niektóre typy urządzeń, np. Włączony/Wyłączony przełącznik światła, mają rolę kontrolera.
  • Kontroler: węzeł, którym może sterować jeden lub więcej węzłów. Kontrolerem może być większość typów urządzeń. Nie dotyczy to niektórych typów urządzeń, które pełnią rolę kontrolera, np. przełącznika światła. Przełącznik światła może być wyłącznie kontrolerem. Nie może być on podmiotem kontrolowanym.
  • Dostawca OTA: węzeł, który może dostarczać aktualizacje oprogramowania OTA.
  • Zgłaszający OTA: węzeł, który może żądać aktualizacji oprogramowania OTA.

Klastry

W punkcie końcowym węzeł ma co najmniej 1 klaster. To kolejny krok w hierarchii urządzeń, ponieważ grupują one określone funkcje, takie jak klaster włączenia/wyłączenia w inteligentnej wtyczce lub klaster kontroli poziomu w punkcie końcowym oświetlenia 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 umożliwiać niezależne sterowanie poszczególnymi światłami, a lista zasilająca może umożliwiać sterowanie poszczególnymi gniazdkami.

Atrybuty

Na ostatnim poziomie są atrybuty, czyli stany posiadane przez węzeł, takie jak atrybut bieżący poziom klastra kontroli poziomu. Atrybuty mogą być zdefiniowane jako różne typy danych, takie jak uint8, ciągi tekstowe lub tablice.

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

Polecenia

Oprócz atrybutów klastry zawierają też polecenia, czyli działania, które można wykonywać. Jest to odpowiednik zdalnego wywołania procedury w Matter na czacie. Polecenia przypominają czasowniki, na przykład zamknij drzwi w klastrze Blokada drzwi. Polecenia mogą generować odpowiedzi i wyniki. W Matter są one również definiowane jako polecenia, a w odwrotnym kierunku.

Wydarzenia

Klastry mogą też zawierać zdarzenia, które można traktować jak zapis wcześniejszych przejść stanów. Atrybuty reprezentują stany bieżące, natomiast zdarzenia to dziennik przeszłości i zawierają rosnący monotonicznie licznik, sygnaturę czasową i priorytet. Umożliwiają rejestrowanie przemian stanów oraz modelowanie danych, do których nie można łatwo uzyskać dostępu za pomocą atrybutów.

Urządzenie z pełną wersją
Rysunek 3. Przykład hierarchii Mattermodelu interakcji z urządzeniami

Punkt końcowy 0 jest zarezerwowany dla klastrów narzędzi. Klastry narzędziowe to konkretne klastry, które obejmują funkcje obsługi punktów końcowych, takie jak wykrywanie, adresowanie, diagnostyka i aktualizacja oprogramowania. Klastry aplikacji obsługują natomiast główne działania, takie jak włączanie i wyłączanie urządzeń czy pomiar temperatury.

Typy urządzeń

Które kombinacje klastrów powinny zostać uwzględnione w ramach planowania nowego Urządzenia przez producenta urządzenia?

Specyfikacja Matter wymaga, by urządzenie zaimplementowało lub rozszerzył co najmniej 1 typ urządzenia. Typ urządzenia to zbiór obowiązkowych i opcjonalnych klastrów, które definiują atrybuty najwyższego poziomu urządzenia fizycznego, takie jak Przyciemnianie światła, Blokada drzwi czy Odtwarzacz wideo.

Typy urządzeń nie są określone w głównym dokumencie specyfikacji Matter. Służy do tego dokument Biblioteka urządzeń. Podobnie wszystkie klastry aplikacji są zdefiniowane w bibliotece klastrów aplikacji. Te 3 dokumenty można znaleźć na stronie Connectivity Standards Alliance (Alliance) członków.

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

Klienty i serwery

Klastry mogą być klastrem klienta lub klastrem serwerów. Gdy serwer jest stanowy i przechowuje atrybuty, zdarzenia i polecenia, klient jest bezstanowy i jego obowiązkiem jest inicjowanie interakcji ze zdalnym klastrem serwerów, wykonując te czynności:

  • odczytuje z atrybutów zdalnych i zapisuje je.
  • odczyty zdalnych zdarzeń.
  • wywołania swoich poleceń zdalnych.

Chociaż zarządzanie węzłami jest hierarchiczne w obrębie węzła, relacja między węzłami już nie. Węzły w regionie Matter nie mają pionowej relacji między kontrolerem/urządzeniem peryferyjnym ani relacją lider/obserwator. Przeciwnie, zależność ma charakter poziomy – dowolny klaster może być serwerem lub klientem. Dlatego w odniesieniu do różnych klastrów i funkcji węzeł może być zarówno serwerem jak i klientem.

Możemy na przykład mieć 2 lampy stołowe: Węzeł A i Węzeł B. W przypadku obu węzłów typ urządzenia jest włączony/wyłączony. Ten typ urządzenia obejmuje klaster włączania/wyłączania serwera, który kontroluje odpowiednie fizyczne wyjścia świetlne.

Podobnie jak w przypadku standardowych lamp stołowych, nasze urządzenia fizyczne mają też typ przełącznika światła do lokalnych przełączników do włączania i wyłączania światła. Ten typ urządzenia musi implementować klaster klienta wł./wył., aby mógł kontrolować klastry serwerów.

Lampy z włączonym/wyłączonym oświetleniem oraz przełącznikiem światła
Rys. 4. Klastry klienta i serwera

W tym przykładzie klaster klienta z włączonym lub wyłączonym w węźle A zmienia atrybuty klastra z włączonym i wyłączonym serwerem w węźle A i węzła B, a klaster klienta węzła B zmienia tylko klaster serwera w węźle B.

W następnej sekcji szczegółowo omówimy, jak współdziałają klastry klienta i serwera: model interakcji.

Klaster deskryptora

Jak sama nazwa wskazuje, deskryptor klastra udostępnia informacje wprowadzające. Opisuje punkt końcowy, podając następujące dane:

  • Klastry serwerów.
  • Klastry klientów.
  • Typy urządzeń.
  • Dodatkowe punkty końcowe znane jako Parts.

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 da klientowi wgląd w możliwość przemierzania pełnego drzewa dostępnych punktów końcowych i wykonywania odpowiednich operacji.

Urządzenie komisarza lub urządzenie sterujące, takie jak telefon czy centrum, może wykorzystać informacje z klastra deskryptorów do modelowania Urządzenia (światła, przełącznika, pompki, termostatu) i określonych funkcji tej konkretnej instancji, pokazując użytkownikowi prawidłowy interfejs użytkownika.

Klastry serwerów

Atrybut ServerList zawiera listę serwerów klastra 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 odpowiednimi wersjami. Musi zawierać co najmniej 1 typ urządzenia.

Lista części

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

PartsList punktu końcowego 0 (węzła głównego) zawiera wszystkie punkty końcowe urządzenia oprócz niego samego (punkt końcowy 0).

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

Inne typy urządzeń mogą być umieszczone w strukturze drzewa więcej niż 1 instancji typu urządzenia. Na przykład typ urządzenia odtwarzacza wideo może składać się z telewizora, odtwarzacza wideo, głośnika i różnych typów urządzeń aplikacji do obsługi treści. Każdy z nich znajduje się w innym punkcie końcowym.


  1. Specyfikacja Matter określa, że Urządzenie może mieć wiele węzłów. Na przykład smartfony mogą zawierać wiele aplikacji, a każda z nich jest oddzielnym węzłem. Na potrzeby tego przewodnika wszystkie urządzenia będą zawierać 1 węzeł. Zgodnie z tym schematem większość urządzeń fizycznych będzie podążać za tym schematem.