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
IdentifyTraitMatter Merkmal bietet alle Funktionen des MatterIdentifyTrait. - Das
FanControlTraitMatter Merkmal bietet alle Funktionen des MatterFanControlTrait. - Das Google-Merkmal
ExtendedFanControlTraitbietet alle Funktionen des Google smart homeFanSpeedTrait, die nicht vomFanControlTraitMatter 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.