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 (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 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 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 Matter IdentifyTrait.
  • Cecha FanControlTrait Matter udostępnia wszystkie funkcje dostępne w cechu 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ń, abstrahując od leżących u podstaw modeli danych smart home.