Datenmodell unter iOS

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

Gerätetypen

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

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

Daher sind Gerätetypen und Eigenschaften in den Home APIs auf Matter ausgerichtet. Ein Matter-Gerätetyp oder -Merkmal hat Vorrang vor einem Cloud-to-cloud-Analogon.

Eine Liste der Gerätetypen und ihrer Eigenschaften findest du unter Unterstützte Gerätetypen unter iOS.

Merkmale

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

Importiere das Modul GoogleHomeTypes in deine Anwendung, um Eigenschaften und Gerätetypen zu importieren:

import GoogleHomeTypes

Außerdem kannst du typealias für die Namen von Attributen und Gerätetypen verwenden, um den Code zu verkürzen und Namespace-Wiederholungen 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 und einige Merkmale sind nur für Automatisierungen verfügbar. Weitere Informationen findest du unter Unterstützung von Automation API-Merkmalen unter Android.

Zusammensetzung nach Gerätetyp

Die Home APIs unterstützen die meisten Matter-Anwendungscluster als Eigenschaften im Datenmodell. Konfigurationscluster auf niedriger Ebene, die für Endnutzer keinen direkten Nutzen haben, z. B. Binding, werden nicht direkt über die Home APIs bereitgestellt. Weitere Informationen zu Gerätegruppen findest du unter Structure APIs.

Attribute, die von Cloud-to-cloud-Smart-Home-Attributen abgeleitet sind, haben in der Regel denselben Namen in Cloud-to-cloud und den Home APIs, wie im Beispiel von OpenCloseTrait. Andere werden als Erweiterungen von Matter-Eigenschaften dargestellt, die mit herstellerspezifischen Matter-Erweiterungen erstellt wurden. Diese Attribute schließen die Lücke für ein smart home-Attribut, 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 Attributen aus einer oder beiden Quellen, Matter oder Cloud-to-cloud.

Der FanDeviceType besteht beispielsweise aus beiden und hat drei Merkmale:

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

Diese Art der Attributzusammensetzung bietet ein flexibles Modell für die vollständige Funktionalität des Gerätetyps und abstrahiert die zugrunde liegenden smart home-Datenmodelle.

Gerätegruppen

Eine Gerätegruppe ist eine benutzerdefinierte Sammlung von Geräten innerhalb eines einzelnen Gebäudes. Die Gruppenmitgliedschaft bleibt in Google-Diensten erhalten und ist für andere Mitglieder des Gebäudes und andere Apps mit Zugriff auf das Gebäude sichtbar.

Gerätegruppen werden durch die Entität DeviceGroup dargestellt, die sich von HomeDevice unterscheidet. In jedem HomeDevice werden die Gruppen, zu denen es gehört, über das GroupMembershipTrait aufgeführt. So kann Ihre App Gruppenmitgliedschaften prüfen und direkt die Mitgliedsgeräte einer Gruppe durchlaufen. Außerdem entspricht DeviceGroup dem Protokoll HasParts, um die von den Mitgliedsgeräten unterstützten Gerätetypen offenzulegen, wenn die Gruppe als Ganzes als Ziel festgelegt wird.

Weitere Informationen zu Gerätegruppen findest du unter Structure APIs und Gerätegruppe steuern.