Datenmodell unter iOS

Die Home APIs für iOS präsentieren alle Geräte im Google Home-System in einem einheitlichen Datenmodell. Dieses Datenmodell umfasst alle Arten von Geräten (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, um Nutzererlebnisse zu entwickeln.

Gerätetypen

Die in den Home APIs präsentierten Gerätetypen sind eine Vereinheitlichung von Matter und Cloud-to-cloud Datenmodellen. Einige werden direkt von Matterabgeleitet, andere sind eine Erweiterung von Matter Gerätetypen und wieder andere werden von Cloud-to-cloudabgeleitet.

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

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

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

Merkmale

Für die Verwendung in den Home APIs werden Swift-Versionen von Merkmalen generiert, die zusätzliche Funktionen enthalten, die speziell für die Home APIs entwickelt wurden (und nicht in Matter oder Cloud-to-cloud zu finden sind). Jedes Merkmal hat beispielsweise Methoden, um zu prüfen, ob ein Merkmal ein bestimmtes Attribut oder einen bestimmten Befehl unterstützt. Das ist nützlich, um zu ermitteln, 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 Modul GoogleHomeTypes in Ihre Anwendung:

import GoogleHomeTypes

Außerdem können Sie typealias für Merkmals- und Gerätetypnamen verwenden, um den Code zu verkürzen und Wiederholungen im Namespace zu vermeiden:

import GoogleHomeTypes

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

Die meisten Merkmale werden für die Verwendung mit Automatisierungen unterstützt. Einige Merkmale sind nur für Automatisierungen verfügbar. Weitere Informationen finden Sie unter Unterstützung von Automatisierungs-API-Merkmalen unter Android.

Zusammensetzung von Gerätetypen

Die Home APIs unterstützen die meisten Matter Anwendungscluster als Merkmale im Datenmodell. Merkmale, die nicht der Gerätesteuerung oder -status entsprechen und keinen Nutzen für Endnutzer bieten, z. B. Bindung und Gruppen, werden nicht über die Home APIs verfügbar gemacht.

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

Gerätetypen bestehen aus Merkmalen aus einer oder beiden Quellen: Matter oder Cloud-to-cloud.

Der FanDeviceType besteht beispielsweise aus beiden und umfasst drei Merkmale:

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

Diese Art der Merkmalszusammensetzung bietet ein flexibles Modell für die vollständige Gerät etypfunktion, das die zugrunde liegenden smart home Daten modelle abstrahiert.