Interfejsy API Home na iOS 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 w przypadku typów urządzeń, cechy są wyprowadzane z klastrów Matter i cech Cloud-to-cloud oraz 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ń na iOS.
Traits
Wersje cech w Swift 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.
Aby zaimportować cechy i typy urządzeń, zaimportuj do aplikacji moduł GoogleHomeTypes
:
import GoogleHomeTypes
Możesz też używać typealias
w nazwach cech i typów urządzeń, aby skrócić kod i uniknąć powtarzania się nazw w przestrzeni nazw:
import GoogleHomeTypes
typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType
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 Automation API na iOS.
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 interfejsach Cloud-to-cloud i Home API, jak w przykładzie OpenCloseTrait
. 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 obiekt FanDeviceType
składa się z obu tych elementów i zawiera 3 cechy:
- Cecha
IdentifyTrait
Matter udostępnia wszystkie funkcje dostępne w cechu MatterIdentifyTrait
. - Cecha
FanControlTrait
Matter udostępnia wszystkie funkcje dostępne w cechu MatterFanControlTrait
. - Właściwość Google
ExtendedFanControlTrait
udostępnia wszystkie funkcje właściwości Google smart homeFanSpeedTrait
, które nie są objęte właściwościąFanControlTrait
Matter.
Ten typ kompozycji cech zapewnia elastyczny model umożliwiający pełną funkcjonalność urządzeń, abstrahując od leżących u podstaw modeli danych smart home.