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 po urządzenia innych producentów) niezależnie od technologii inteligentnego domu (np. Matter lub Cloud-to-cloud) i zapewnia wspólny interfejs API do tworzenia funkcji dla smart home i deweloperów 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 oraz prezentowane w formacie podobnym do formatu klastrów Matter. W interfejsach Home API cechy pochodneMatter są nazywane cechami, a nie klastrami.
Dlatego typy i cechy urządzeń w interfejsach Home API są przeznaczone do obsługi Matter-first. MatterRodzaj urządzenia lub cechaMatter ma pierwszeństwo przed Cloud-to-cloudodpowiednikiemCloud-to-cloud.
Listę typów urządzeń i ich cech znajdziesz w artykule Obsługiwane typy urządzeń w 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 (nie występują 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 sprawdzić, 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ć 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
Cechy są też obsługiwane w przypadku automatyzacji, ale mogą być ograniczone, a niektóre cechy są dostępne tylko w przypadku automatyzacji. Listę znajdziesz w artykule Obsługa cech interfejsu Automation API na iOS.
Skład typów urządzeń
Interfejsy Home API obsługują większość Matterklastrów aplikacji jako cechy w modelu danych. Cechy, które nie odpowiadają sterowaniu urządzeniem ani stanom i nie oferują żadnej użyteczności dla użytkowników, takie jak powiązanie i grupy, nie są udostępniane przez interfejsy Home API.
Cechy pochodzące z Cloud-to-cloud cech inteligentnego domu zwykle mają taką samą nazwę w Cloud-to-cloud i interfejsach 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, 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 standardzie 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
IdentifyTrait
Matter zapewniają wszystkie funkcje cech MatterIdentifyTrait
. - Cechy
FanControlTrait
Matter zapewniają wszystkie funkcje cech MatterFanControlTrait
. ExtendedFanControlTrait
Atrybut Google zapewnia wszystkie funkcje smart homeFanSpeedTrait
, które nie są objęte atrybutemFanControlTrait
Matter.
Ten typ kompozycji cech zapewnia elastyczny model pełnej funkcjonalności typu urządzenia, abstrahując od podstawowych smart home modeli danych.