Die Home-APIs für iOS stellen alle Geräte im Google Home-Ökosystem in einem einheitlichen Datenmodell dar. Dieses Datenmodell umfasst alle Gerätetypen (von Google Nest oder Drittanbietern), unabhängig von der zugrunde liegenden Smart-Home-Technologie (wie z. B. Matter oder Cloud-to-cloud), und bietet eine gemeinsame API-Oberfläche für die Entwicklung von Benutzererlebnissen sowohl für smart home als auch für 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, mit denen Geräte gesteuert und verwaltet 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 aus Matter abgeleitete Merkmale als Merkmale und nicht als Cluster bezeichnet.
Daher sind Gerätetypen und Eigenschaften in den Home APIs in erster Linie für Matter gedacht. Ein Gerätetyp oder Attribut vom Typ Matter hat Vorrang vor einem entsprechenden Gerätetyp oder Attribut vom Typ Cloud-to-cloud.
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 gelten (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
Die meisten Merkmale werden für die Verwendung mit automatischen Abläufen unterstützt. Einige Merkmale sind nur für automatische Abläufe verfügbar. Weitere Informationen finden Sie unter Unterstützung von Automation API-Traits unter Android.
Zusammensetzung nach Gerätetyp
Die Home APIs unterstützen die meisten Matter Anwendungscluster als Traits 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 verfügbar gemacht.
Von Cloud-to-cloud Smart-Home-Eigenschaften abgeleitete Merkmale haben typischerweise den gleichen Namen zwischen Cloud-to-cloud und den Home-APIs, wie beispielsweise OpenCloseTrait. Andere werden als Erweiterungen von Matter-Merkmalen dargestellt, die mithilfe von herstellerspezifischen Matter-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 abgeleitet sind, aber noch keine Matter-Analoga besitzen.
Gerätetypen setzen sich aus Merkmalen einer oder beider Quellen zusammen, Matter oder Cloud-to-cloud.
Zum Beispiel besteht FanDeviceType aus beidem und weist drei Merkmale auf:
- Das
IdentifyTraitMatter Trait bietet die gesamte Funktionalität des MatterIdentifyTrait. - Das Merkmal
FanControlTraitMatter bietet alle Funktionen von MatterFanControlTrait. - Das
ExtendedFanControlTraitGoogle-Trait bietet alle Funktionen des Google smart homeFanSpeedTrait, die nicht vomFanControlTraitMatter-Trait abgedeckt werden.
Diese Art der Merkmalskomposition bietet ein flexibles Modell für die vollständige Funktionalität des Gerätetyps und abstrahiert die zugrunde liegenden smart home-Datenmodelle.