Model danych na iOS

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 (np. Matter lub 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 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ą tworzone na podstawie klastrów Matter i cech Cloud-to-cloud, a następnie 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 cecha Matter ma pierwszeństwo przed analogami 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 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 dana 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

Aby skrócić kod i uniknąć powtarzania się nazw w przestrzeni nazw, możesz też używać typealias w nazwach cech i typów urządzeń:

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 API Home obsługują większość klastrów aplikacji Matter 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 cechy zastępują cechę smart home, w której funkcje są rozdzielone 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 funkcji Matter IdentifyTrait.
  • Cecha FanControlTrait Matter udostępnia wszystkie funkcje funkcji Matter FanControlTrait.
  • Właściwość Google ExtendedFanControlTrait udostępnia wszystkie funkcje właściwości Google smart home FanSpeedTrait, 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ń danego typu, abstrahując od leżących u podstaw modeli danych smart home.