Die Home APIs für Android stellen alle Geräte im Google Home-Ökosystem in einem einheitlichen Datenmodell dar. Dieses Datenmodell deckt alle Arten von Geräten ab (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.
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 Android.
Attribute
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 (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.
Jedes Attribut ist in einem eigenen Namespace enthalten und muss für die Verwendung einzeln importiert werden.
Wenn Sie beispielsweise das Matter-Merkmal „Ein/Aus“ und den Gerätetyp „Ein/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
Für einen Garagentortyp (aus dem Google Smart Home) müssen Sie eine Mischung aus Matter- und Google-Attributen angeben:
import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice
Android Studio bietet eine Funktion zur automatischen Vervollständigung und übernimmt oft die vollständigen Paketnamen für Sie, wenn Sie import-Zeilen zu Quelldateien in Ihrem Projekt hinzufügen. Paketnamen sind jedoch nicht für alle Gerätetypen und ‑merkmale einheitlich. Sehen Sie in der Referenz nach, um den richtigen Paketnamen für jedes DeviceType oder Trait zu ermitteln.
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 Merkmale 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.
Merkmale, die von Cloud-to-cloud-Smart-Home-Merkmalen abgeleitet werden, haben in der Regel denselben Namen wie in den Home-APIs, wie im Beispiel von OpenClose.Cloud-to-cloud Andere werden als Erweiterungen von Matter-Traits dargestellt, die mit Matter-Herstellerspezifischen 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 stammen, aber noch keine Matter-Analoga haben.
Gerätetypen bestehen aus Traits aus einer oder beiden Quellen, Matter oder Cloud-to-cloud.
Der Gerätetyp „Ventilator“ besteht beispielsweise aus beiden und bietet drei Traits:
- Das Merkmal
IdentifyMatter bietet alle Funktionen von MatterIdentify. - Das
FanControl-Matter-Trait bietet alle Funktionen des Matter-FanControl-Traits. - Das
ExtendedFanControl-Google-Trait bietet alle Funktionen des smart home-Google-TraitsFanSpeed, die nicht vomFanControl-Trait Matter abgedeckt werden.
Diese Art der Trait-Zusammensetzung bietet ein flexibles Modell für die vollständige Gerätefunktionalität und abstrahiert die zugrunde liegenden smart home-Datenmodelle.