Model danych na iOS

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 (np. Matter lub Cloud-to-cloud) i udostępnia wspólny interfejs API, który umożliwia tworzenie interfejsów użytkownika zarówno deweloperom aplikacji na smart home jak i aplikacji mobilnych.

Typy urządzeń

Typy urządzeń prezentowane w interfejsach Home API to ujednolicenie Matter i Cloud-to-cloud modeli danych. 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 pochodzą z Matter klastrów i Cloud-to-cloud cech i są prezentowane w wspólnym formacie, który jest podobny do formatu klastrów Matter. W interfejsach Home API, Matter-derived traits are called traits, not clusters.

W związku z tym typy urządzeń i cechy w interfejsach Home API mają być Matter-first. Typ urządzenia lub cecha Matter ma pierwszeństwo przed analogicznym typem urządzenia lub cechą Cloud-to-cloud.

Listę typów urządzeń i ich cech znajdziesz w artykule Obsługiwane typy urządzeń na iOS.

Cechy

Wersje cech w 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 podczas określania, 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 przypadku nazw 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 jest obsługiwana w przypadku automatyzacji, a niektóre cechy są dostępne tylko w przypadku 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ść Matter klastrów aplikacji jako cechy w modelu danych. Cechy, które nie odpowiadają sterowaniu urządzeniami ani ich stanom i nie oferują żadnych korzyści dla użytkowników końcowych, takie jak Binding i Groups, nie są udostępniane przez interfejsy Home API.

Cechy pochodzące z Cloud-to-cloud cech inteligentnego domu mają zwykle taką samą nazwę w Cloud-to-cloud i interfejsach Home API, jak w przypadku przykładu OpenCloseTrait. Inne są reprezentowane jako rozszerzenia cech Matter utworzone za pomocą Matter rozszerzeń specyficznych dla producenta. Te cechy wypełniają lukę w przypadku cechy smart home w której funkcje są podzielone między pakiet SDK Matter a ekosystem Google Home. Konkretnym przykładem są typy urządzeń Google*, które pochodzą z Cloud-to-cloud, ale nie mają jeszcze analogicznych typó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 źródeł i zawiera 3 cechy:

  • Cecha IdentifyTrait Matter zapewnia wszystkie funkcje cechy Matter IdentifyTrait.
  • Cecha FanControlTrait Matter zapewnia wszystkie funkcje cechy Matter FanControlTrait.
  • Cecha Google ExtendedFanControlTrait zapewnia wszystkie funkcje cechy Google smart home FanSpeedTrait, które nie są objęte cechą FanControlTrait Matter.

Ten typ kompozycji cech zapewnia elastyczny model pełnej funkcjonalności typu urządzenia, abstrahując od podstawowych smart home modeli danych.