Interfejsy Home API na Androida prezentują wszystkie urządzenia w ekosystemie Google Home w ujednoliconym modelu danych. Ten model danych obejmuje wszystkie typy urządzeń (od Google Nest lub producentów zewnętrznych) niezależnie od technologii inteligentnego domu (takiej jak Matter lub Cloud-to-cloud) i zapewnia wspólny interfejs API do tworzenia rozwiązań dla użytkowników zarówno dla deweloperów smart home, jak i deweloperów aplikacji mobilnych.
Typy urządzeń
Typy urządzeń prezentowane w interfejsach Home API to ujednolicenie modeli danych Matter i Cloud-to-cloud. Niektóre pochodzą bezpośrednio z Matter, inne są rozszerzeniem typów urządzeń Matter, a jeszcze inne pochodzą z Cloud-to-cloud.
Typy urządzeń zawierają cechy, które służą do sterowania urządzeniami i zarządzania nimi. Podobnie jak typy urządzeń, cechy są uzyskiwane z klastrów Matter i cech Cloud-to-cloud i są prezentowane w jednolitym formacie, który jest podobny do formatu klastrów Matter. W interfejsach Home API cechy pochodzące z Matter są nazywane cechami, a nie klastrami.
Dlatego typy i cechy urządzeń w interfejsach Home API są przeznaczone do obsługi Matter. Typ urządzenia lub cecha Matter ma pierwszeństwo przed odpowiednikiem Cloud-to-cloud.
Listę typów urządzeń i ich cech znajdziesz w artykule Obsługiwane typy urządzeń na Androidzie.
Cechy
Wersje cech w języku Kotlin są generowane do użytku w interfejsach Home API i zawierają dodatkowe funkcje specyficzne dla tych interfejsów (których nie ma w Matter ani Cloud-to-cloud). Na przykład każda cecha ma metody sprawdzania, czy obsługuje określony atrybut lub polecenie. Jest to przydatne, gdy chcesz określić, czy na urządzeniu użytkownika można odczytać stan lub wykonać określone działania, ponieważ nie wszystkie urządzenia danego typu muszą mieć te same funkcje.
Każda cecha jest zawarta we własnej przestrzeni nazw i musi zostać zaimportowana osobno, aby można było jej używać.
Aby na przykład użyć cechy Matter Włączanie/wyłączanie i typu urządzenia Wtyczka z funkcją włączania/wyłączania, zaimportuj do aplikacji te pakiety:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
W przypadku urządzenia typu garaż (z inteligentnego domu Google) uwzględnij kombinację cech Matter i Google:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio ma funkcję autouzupełniania i często obsługuje pełne nazwy pakietów podczas dodawania wierszy import do plików źródłowych w projekcie. Nazwy pakietów nie są jednak spójne we wszystkich typach urządzeń i cechach. Sprawdź w dokumentacji, jaka jest prawidłowa nazwa pakietu dla każdego DeviceType lub Trait.
Większość cech jest obsługiwana w automatyzacjach, a niektóre cechy są dostępne tylko w automatyzacjach. Więcej informacji znajdziesz w artykule Obsługa cech interfejsu Automation API na Androidzie.
Skład typów urządzeń
Interfejsy Home API obsługują większość klastrów aplikacji Matter jako cechy w modelu danych. Klastry konfiguracji niskiego poziomu, które nie oferują bezpośrednich funkcji dla użytkowników, takie jak Binding, nie są udostępniane przez interfejsy Home API.
Cechy pochodzące z cech inteligentnego domu Cloud-to-cloud mają zwykle tę samą nazwę w Cloud-to-cloud i interfejsach Home API, jak w przypadku OpenClose. Inne są reprezentowane jako rozszerzenia cech Matter, utworzone za pomocą rozszerzeń Matter specyficznych dla producenta. Te cechy wypełniają lukę w przypadku cechy smart home, której funkcje są podzielone między pakiet SDK Matter i ekosystem Google Home. Konkretnym przykładem są typy urządzeń Google*, które pochodzą z Cloud-to-cloud, ale nie mają jeszcze odpowiedników w Matter.
Typy urządzeń składają się z cech z jednego lub obu źródeł: Matter lub Cloud-to-cloud.
Na przykład typ urządzenia wentylator składa się z obu tych elementów i ma 3 cechy:
- Atrybut
IdentifyMatter zapewnia wszystkie funkcje atrybutu MatterIdentify. - Cecha
FanControlMatter zapewnia wszystkie funkcje cechy MatterFanControl - Cecha
ExtendedFanControlGoogle zapewnia wszystkie funkcje cechy smart homeFanSpeedGoogle, które nie są objęte cechąFanControlMatter
Ten typ kompozycji cech zapewnia elastyczny model pełnej funkcjonalności typu urządzenia, który abstrakcyjnie przedstawia podstawowe modele danych smart home.
Grupy urządzeń
Grupa urządzeń to zdefiniowany przez użytkownika zbiór urządzeń w ramach jednej struktury. Członkostwo w grupie jest zachowywane w usługach Google i jest widoczne dla innych członków struktury oraz innych aplikacji mających dostęp do struktury.
Grupy urządzeń są reprezentowane przez element DeviceGroup, który różni się od elementu HomeDevice.
Każdy element HomeDevice zawiera listę grup, do których należy, w ramach cechy GroupMembership (rozpoznawanej reaktywnie za pomocą group.devices()), dzięki czemu aplikacja może sprawdzać członkostwo w grupach i bezpośrednio iterować po urządzeniach należących do grupy. Dodatkowo DeviceGroup implementuje interfejs PartsProvider, aby udostępniać typy urządzeń obsługiwane przez urządzenia członkowskie, gdy grupa jest celem jako całość.
Więcej informacji o grupach urządzeń znajdziesz w artykule Interfejsy API struktury i Sterowanie grupą urządzeń.