Interfejsy Home API na iOS 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 (takich jak Matter lub Cloud-to-cloud) i zapewnia wspólny interfejs API do tworzenia interfejsów użytkownika dla deweloperów smart home i aplikacji mobilnych.
Typy urządzeń
Typy urządzeń prezentowane w interfejsach Home API to ujednolicone modele 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ą wyodrębniane z klastrów Matter i cech Cloud-to-cloud, a następnie prezentowane w standardowym formacie podobnym do formatu klastrów Matter. W interfejsach Home API cechy pochodne z Matter są nazywane cechami, a nie klastrami.
Dlatego typy urządzeń i cechy w interfejsach Home API są przeznaczone do używania w Matter-pierwszym. MatterTyp urządzenia lub cechaCloud-to-cloud ma pierwszeństwo przed analogicznym typem urządzenia lub cechą.
Listę typów urządzeń i ich cech znajdziesz w sekcji Obsługiwane typy urządzeń na iOS.
Cechy
Wersje cech w języku Swift 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 przy określaniu, 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.
Aby zaimportować cechy i typy urządzeń, zaimportuj moduł GoogleHomeTypes do aplikacji:
import GoogleHomeTypes
Możesz też użyć znaku typealias w nazwach cech i typów urządzeń, aby skrócić kod i uniknąć powtarzania przestrzeni nazw:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
Większość cech można wykorzystywać w automatyzacji, a niektóre cechy są dostępne tylko w automatyzacji. 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ść Matterklastrów aplikacji jako cechy w modelu danych. Klastry konfiguracji niskiego poziomu, które nie oferują bezpośredniej użyteczności dla użytkowników, np. Binding, nie są bezpośrednio udostępniane przez interfejsy Home API. Więcej informacji o grupach urządzeń znajdziesz w artykule Interfejsy API struktury.
Cechy pochodzące z cech Cloud-to-cloud inteligentnego domu mają zwykle taką samą nazwę w przypadku cech Cloud-to-cloud i interfejsów Home API, jak w przykładzie OpenCloseTrait. Inne są reprezentowane jako rozszerzenia Mattercech, utworzone za pomocą Matterrozszerzeń specyficznych dla producenta. Te cechy wypełniają lukę w przypadku cechy, w której funkcjonalność jest podzielona między smart homepakiet SDKMatter a ekosystem Google Home. Konkretnym przykładem są Google* typy urządzeń, 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 obu źródeł: Matter lub Cloud-to-cloud.
Na przykład FanDeviceType składa się z obu tych elementów i ma 3 cechy:
- Cechy
IdentifyTraitMatter zapewniają wszystkie funkcje cech MatterIdentifyTrait. - Cechą
FanControlTraitMatter jest wszystkie funkcje cechy MatterFanControlTrait. ExtendedFanControlTraitAtrybut Google zapewnia wszystkie funkcjesmart homeFanSpeedTrait, które nie są objęte atrybutemFanControlTraitMatter.
Ten typ kompozycji cech zapewnia elastyczny model pełnej funkcjonalności typu urządzenia, abstrahując od podstawowych modeli danych smart home.
Grupy urządzeń
Grupa urządzeń to zdefiniowany przez użytkownika zbiór urządzeń w ramach jednej struktury. Grupy urządzeń są reprezentowane przez element DeviceGroup, który różni się od elementu HomeDevice.
Więcej informacji o grupach urządzeń znajdziesz w sekcji Interfejsy API struktury.