Die Home APIs 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). Außerdem bietet es eine gemeinsame API-Oberfläche, um die Nutzerfreundlichkeit sowohl für smart home- als auch für mobile App-Entwickler zu verbessern.
Gerätetypen
Die in den Home APIs präsentierten Gerätetypen sind eine Zusammenführung der Matter- und Cloud-to-cloud-Datenmodelle. Einige sind direkt von Matter abgeleitet, andere sind eine Erweiterung von Matter-Gerätetypen und andere sind von Cloud-to-cloud abgeleitet.
Gerätetypen enthalten Merkmale, mit denen Geräte gesteuert und verwaltet werden. Wie Gerätetypen werden 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 Matter-abgeleitete Merkmale als Merkmale und nicht als Cluster bezeichnet.
Daher sollten Gerätetypen und -merkmale in den Smart-Home-APIs Matter-first sein. Ein Matter-Gerätetyp oder Matter-Attribut hat Vorrang vor einem Cloud-to-cloud-Analogon.
Eine Liste der Gerätetypen und ihrer Merkmale finden Sie unter Unterstützte Gerätetypen.
Eigenschaften
Kotlin-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 und in Matter oder Cloud-to-cloud nicht zu finden sind. So hat jeder Trait beispielsweise Methoden, mit denen geprüft werden kann, ob ein Trait ein bestimmtes Attribut oder einen bestimmten Befehl unterstützt. Das ist nützlich, um zu ermitteln, 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.
Jede Eigenschaft befindet sich in einem eigenen Namespace und muss zur Verwendung einzeln importiert werden.
Wenn Sie beispielsweise das Matter-Attribut „An/Aus“ und den Gerätetyp „An/Aus-Steckdose“ verwenden möchten, importieren Sie die folgenden Pakete in Ihre Anwendung:
import com.google.home.matter.standard.OnOff
import com.google.home.matter.standard.OnOffPluginUnitDevice
Geben Sie für einen Gerätetyp für Garagen (aus dem Google Smart Home) eine Mischung aus Matter- und Google-Attributen an:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio bietet eine automatische Vervollständigung und übernimmt häufig die vollständigen Paketnamen für Sie, wenn Sie Quelldateien in Ihrem Projekt import
-Zeilen hinzufügen. Paketnamen sind jedoch nicht für alle Gerätetypen und -merkmale einheitlich. In der Referenz finden Sie den korrekten Paketnamen für jede DeviceType
oder Trait
.
Merkmale werden auch für automatisierte Abläufe unterstützt, aber möglicherweise eingeschränkt. Einige Merkmale sind nur für automatisierte Abläufe verfügbar. Eine Liste finden Sie unter Unterstützung für Automation API-Attribute.
Gerätetypzusammensetzung
Die Home APIs unterstützen die meisten Matter 1.3-Anwendungscluster als Merkmale im Datenmodell. Merkmale, die nicht der Gerätesteuerung oder Gerätestatus entsprechen und für Endnutzer keinen Nutzen bieten, z. B. Bindungen und Gruppen, werden nicht über die Home APIs bereitgestellt.
Aus Cloud-to-cloud-Smart-Home-Attributen abgeleitete Attribute haben in der Regel denselben Namen in Cloud-to-cloud und in den Home APIs, wie im Beispiel für „OpenClose“. Andere werden als Erweiterungen von Matter-Attributen dargestellt, die mithilfe von Matter-herstellerspezifischen Erweiterungen erstellt wurden. Mit diesen Eigenschaften wird die Lücke für ein smart home-Attribut geschlossen, bei dem die Funktionen zwischen dem Matter SDK und dem Google Home-System aufgeteilt sind. Ein konkretes Beispiel hierfür sind die Google*
-Gerätetypen, die aus 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 Gerätetyp „Lüfter“ besteht beispielsweise aus beiden und enthält zwei FanControl-Attribute:
- Das Attribut „FanControl“ Matter bietet alle Funktionen des Attributs „FanControl“ Matter.
- Der Google-Attribut „ExtendedFanControl“ bietet alle Funktionen des Google-Attributs „FanSpeed“ smart home, die nicht vom Attribut „FanControl“ Matter abgedeckt werden.
Diese Art der Merkmalszusammensetzung bietet ein flexibles Modell für die vollständige Gerätetypfunktion, wobei die zugrunde liegenden smart home-Datenmodelle abstrahiert werden.