Datenmodell unter iOS

Die Home-APIs für iOS stellen alle Geräte im Google Home-Ökosystem in einem einheitlichen Datenmodell dar. Dieses Datenmodell deckt alle Arten von Geräten ab (von Google Nest oder Drittanbietern), unabhängig von der zugrunde liegenden Smart-Home-Technologie (z. B. Matter oder Cloud-to-cloud). Es bietet eine gemeinsame API-Oberfläche für smart home- und mobile App-Entwickler.

Gerätetypen

Die in den Home-APIs dargestellten Gerätetypen sind eine Vereinheitlichung der Datenmodelle Matter und Cloud-to-cloud. Einige werden direkt von Matter abgeleitet, einige sind eine Erweiterung der Matter-Gerätetypen und einige werden von Cloud-to-cloud abgeleitet.

Gerätetypen enthalten Merkmale, die zum Steuern und Verwalten von Geräten verwendet werden. Wie Gerätetypen werden auch Merkmale aus Matter-Clustern und Cloud-to-cloud-Merkmalen abgeleitet und in einem gemeinsamen Format dargestellt, das dem von Matter-Clustern ähnelt. In den Home APIs werden von Matter abgeleitete Attribute als Attribute und nicht als Cluster bezeichnet.

Daher sind Gerätetypen und Eigenschaften in den Home-APIs in erster Linie für Matter gedacht. Ein Matter-Gerätetyp oder ‑Attribut hat Vorrang vor einem Cloud-to-cloud-Analogon.

Eine Liste der Gerätetypen und ihrer Eigenschaften finden Sie unter Unterstützte Gerätetypen unter iOS.

Attribute

Swift-Versionen von Traits werden für die Verwendung in den Home APIs generiert und enthalten zusätzliche Funktionen, die speziell für die Home APIs entwickelt wurden (nicht in Matter oder Cloud-to-cloud). Jedes Trait hat beispielsweise Methoden, um zu prüfen, ob ein Trait ein bestimmtes Attribut oder einen bestimmten Befehl unterstützt. Das ist nützlich, um festzustellen, ob der Status gelesen oder bestimmte Aktionen auf dem Gerät eines Nutzers ausgeführt werden können, da nicht alle Geräte eines Gerätetyps dieselben Funktionen haben.

Wenn Sie Merkmale und Gerätetypen importieren möchten, importieren Sie das GoogleHomeTypes-Modul in Ihre Anwendung:

import GoogleHomeTypes

Außerdem können Sie typealias für Namen von Merkmalen und Gerätetypen verwenden, um den Code zu verkürzen und Wiederholungen von Namespaces zu vermeiden:

import GoogleHomeTypes

typealias OpenCloseTrait = Google.OpenCloseTrait
typealias OnOffTrait = Matter.OnOffTrait
typealias FanDevice = Matter.FanDeviceType

Merkmale werden auch für die Verwendung mit automatisierten Abläufen unterstützt, sind aber möglicherweise eingeschränkt. Einige Merkmale sind nur für automatisierte Abläufe verfügbar. Eine Liste finden Sie unter Unterstützung von Automation API-Traits unter iOS.

Zusammensetzung nach Gerätetyp

Die Home-APIs unterstützen die meisten Matter-Anwendungscluster als Merkmale im Datenmodell. Merkmale, die nicht der Gerätesteuerung oder den Status entsprechen und keinen Nutzen für Endnutzer bieten, z. B. Binding und Groups, werden nicht über die Home-APIs bereitgestellt.

Merkmale, die von Cloud-to-cloud-Smart-Home-Merkmalen abgeleitet werden, haben in der Regel denselben Namen zwischen Cloud-to-cloud und den Home-APIs, wie im Beispiel von OpenCloseTrait. Andere werden als Erweiterungen von Matter-Traits dargestellt, die mit Matter-Herstellerspezifischen Erweiterungen erstellt wurden. Diese Merkmale schließen die Lücke für ein smart home-Merkmal, bei dem die Funktionalität zwischen dem Matter SDK und dem Google Home-Ökosystem aufgeteilt ist. Ein konkretes Beispiel hierfür sind die Google*-Gerätetypen, die von Cloud-to-cloud stammen, aber noch keine Matter-Analoga haben.

Gerätetypen bestehen aus Traits aus einer oder beiden Quellen, Matter oder Cloud-to-cloud.

Beispielsweise besteht das FanDeviceType aus beiden und hat drei Merkmale:

  • Das Merkmal IdentifyTrait Matter bietet alle Funktionen von Matter IdentifyTrait.
  • Das Merkmal FanControlTrait Matter bietet alle Funktionen von Matter FanControlTrait.
  • Das ExtendedFanControlTrait-Google-Trait bietet alle Funktionen des Google-smart home-FanSpeedTrait, die nicht vom FanControlTrait-Matter-Trait abgedeckt werden.

Diese Art der Trait-Zusammensetzung bietet ein flexibles Modell für die vollständige Gerätefunktionalität und abstrahiert die zugrunde liegenden smart home-Datenmodelle.