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 (takich jak Matter lub Cloud-to-cloud) i zapewnia wspólną powierzchnię interfejsu API do tworzenia środowisk użytkownika dla smart home i deweloperów aplikacji mobilnych.

Typy urządzeń

Typy urządzeń prezentowane w interfejsach Home API to ujednolicone modele danych MatterCloud-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 Matter klastrów i Cloud-to-cloud cech oraz prezentowane w standardowym formacie podobnym do formatu Matter klastrów. W interfejsach Home API cechy pochodneMatter są nazywane cechami, a nie klastrami.

Dlatego typy urządzeń i cechy w interfejsach Home API są przeznaczone do obsługi Matter-first. MatterRodzaj urządzenia lub cechaCloud-to-cloud 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 mają zwykle taką samą nazwę w Cloud-to-cloud i interfejsach Home API, jak w przypadku 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 Matter IdentifyTrait.
  • Cechy FanControlTrait Matter zapewniają wszystkie funkcje cech Matter FanControlTrait.
  • ExtendedFanControlTrait Atrybut Google zapewnia wszystkie funkcje smart home FanSpeedTrait, które nie są objęte atrybutem FanControlTrait Matter.

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