Interfejsy API Home na Androida 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 technologii inteligentnego domu (takich jak Matter czy Cloud-to-cloud), i zapewnia wspólną stronę interfejsu API do tworzenia interfejsów użytkownika zarówno dla smart home, jak i dla 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 Home API atrybuty utworzone na podstawie atrybutów Matter są nazywane atrybutami, a nie klastrami.
Dlatego typy urządzeń i ich cechy w interfejsach API Home są projektowane z uwzględnieniem Matter. Typ urządzenia lub ustawienie Matter ma pierwszeństwo przed analogowym Cloud-to-cloud.
Aby zobaczyć listę typów urządzeń i ich właściwości, zapoznaj się z artykułem Obsługiwane typy urządzeń z Androidem.
Cechy
Wersje cech w języku Kotlin są generowane na potrzeby interfejsów API Home i zawierają dodatkowe funkcje charakterystyczne dla tych interfejsów (niedostępne w wersjach Matter ani Cloud-to-cloud). Na przykład każda cecha ma metody, które sprawdzają, czy cecha 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 czynności, ponieważ nie wszystkie urządzenia danego typu mają te same funkcje.
Każda cecha znajduje się w swojej 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 typu urządzenia garażowego (z inteligentnego domu Google) uwzględnij 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 będzie obsługiwać 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 DeviceType
lub Trait
, zapoznaj się z informacjami referencyjnymi.
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 Obsługa atrybutów interfejsu Automation API na Androidzie.
Skład według typu urządzenia
Interfejsy Home API 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 Otwarcie/zamknięcie. 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 typ Urządzenie fana składa się z obu tych typów i zawiera 3 cechy:
- Cecha
Identify
Matter udostępnia wszystkie funkcje dostępne w cechu MatterIdentify
. - Cecha
FanControl
Matter udostępnia wszystkie funkcje dostępne w przypadku cechy MatterFanControl
. - Właściwość Google
ExtendedFanControl
udostępnia wszystkie funkcje właściwości Google smart homeFanSpeed
, których nie obejmuje właściwośćFanControl
Matter
Ten typ kompozycji cech zapewnia elastyczny model umożliwiający pełną funkcjonalność urządzeń, abstrahując od podstawowych modeli danych smart home.