Interfejsy API Home przedstawiają wszystkie urządzenia w ekosystemie Google Home w ramach ujednoliconego modelu danych. Ten model danych obejmuje wszystkie typy urządzeń (od Google Nest po urządzenia innych firm), niezależnie od używanej technologii inteligentnego domu (takich jak Matter czy Cloud-to-cloud), i zapewnia wspólną stronę interfejsu API do tworzenia interfejsów dla użytkowników zarówno w przypadku smart home, jak i deweloperów aplikacji mobilnych.
Typy urządzeń
Typy urządzeń w interfejsach Home API to ujednolicenie modeli danych Matter i Cloud-to-cloud. Niektóre z nich 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ą tworzone na podstawie klastrów Matter i cech Cloud-to-cloud, a następnie prezentowane w wspólnym formacie podobnym do formatu klastrów Matter. W interfejsach API Home atrybuty utworzone na podstawie atrybutów Matter są nazywane atrybutami, a nie zbiorami.
Dlatego typy urządzeń i ich cechy w interfejsach API Home są projektowane z uwzględnieniem Matter. Typ urządzenia lub cecha Matter ma pierwszeństwo przed analogami Cloud-to-cloud.
Listę typów urządzeń i ich cech znajdziesz w sekcji Obsługiwane typy urządzeń.
Cechy
Wersje atrybutów w języku Kotlin są generowane na potrzeby interfejsów API Home i zawierają dodatkowe funkcje specyficzne dla tych interfejsów (niedostępne w wersjach Matter ani Cloud-to-cloud). Na przykład każdy atrybut ma metody, które sprawdzają, czy atrybut 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 mają te same funkcje.
Każda cecha jest zawarta w własnej przestrzeni nazw i musi być importowana osobno.
Aby na przykład używać atrybutu Matter Włączanie/wyłączanie i typu urządzenia Wtyczka, zaimportuj do aplikacji te pakiety:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
W przypadku urządzenia garażowego (z inteligentnego domu Google) podaj mieszankę atrybutów 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 w przypadku wszystkich typów i cech urządzeń. Aby sprawdzić poprawną nazwę pakietu dla każdego z DeviceType
lub Trait
, zapoznaj się z dokumentacją.
Cechy można też stosować w automatyzacjach, ale ich działanie może być ograniczone, a niektóre z nich są dostępne tylko w automatyzacjach. Listę znajdziesz w artykule na temat obsługi atrybutów interfejsu Automation API.
Skład typów urządzeń
Interfejsy API Home obsługują większość klastrów aplikacji Matter 1.3 jako atrybuty w modelu danych. Cechy, które nie odpowiadają sterowaniu urządzeniem ani stanom i nie oferują żadnych funkcji dla użytkowników końcowych, takie jak wiązanie i grupy, nie są udostępniane przez interfejsy API Home.
Cechy pochodzące z cech inteligentnego domu Cloud-to-cloud mają zwykle tę samą nazwę w Cloud-to-cloud i interfejsach API Home, jak na przykład w przypadku funkcji Otwieranie i zamykanie. Inne są reprezentowane jako rozszerzenia atrybutów Matter, utworzone za pomocą rozszerzeń Matter dla konkretnego producenta. Te atrybuty wypełniają lukę w przypadku atrybutu smart home, w którym funkcje są podzielone między pakiet SDK Matter a ekosystem Google Home. 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 pochodzących z jednego lub z obu źródeł (Matter lub Cloud-to-cloud).
Na przykład Fan device type (typ urządzenia Fan) składa się z obu tych atrybutów i zawiera 2 cechy FanControl:
- Właściwość FanControl Matter zapewnia wszystkie funkcje właściwości Matter FanControl.
- Właściwość Google ExtendedFanControl udostępnia wszystkie funkcje właściwości FanSpeed z Google smart home, które nie są obsługiwane przez właściwość FanControl Matter.
Ten typ kompozycji cech zapewnia elastyczny model umożliwiający pełną funkcjonalność typu urządzenia, abstrahując podstawowe modele danych smart home.