Datenmodell auf Android-Geräten

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, die zum Steuern und Verwalten von Geräten verwendet 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 von Matter abgeleitete Attribute als Attribute und nicht als Cluster bezeichnet.

Daher sind Gerätetypen und Eigenschaften in den Home-APIs in erster Linie für Matter gedacht. Ein Matter-Gerätetyp oder ‑Attribut hat Vorrang vor einem Cloud-to-cloud-Analogon.

Eine Liste der Gerätetypen und ihrer Eigenschaften finden Sie unter Unterstützte Gerätetypen unter Android.

Attribute

Für die Verwendung in den Home APIs werden Kotlin-Versionen von Traits generiert, die zusätzliche Funktionen enthalten, 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 befindet sich in einem eigenen Namespace 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 Garagentyp (aus dem Google Smart Home) müssen Sie eine Mischung aus Matter- und Google-Traits einfügen:

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.

Merkmale werden auch für die Verwendung mit automatisierten Abläufen unterstützt, sind aber möglicherweise eingeschränkt. Einige Merkmale sind nur für automatisierte Abläufe verfügbar. Eine Liste findest du 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 bereitgestellt.

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 OpenClose. 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 Eigenschaften:

  • Das Merkmal Identify Matter bietet alle Funktionen von Matter Identify.
  • Das FanControl-Matter-Trait bietet alle Funktionen des Matter-FanControl-Traits.
  • Das ExtendedFanControl-Google-Trait bietet alle Funktionen des Google-smart home-FanSpeed-Traits, die nicht vom FanControl-Matter-Trait 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.