Datenmodell auf Android-Geräten

Die Home APIs für Android 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, mit denen Geräte gesteuert und verwaltet 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 auf Matter-first ausgerichtet. 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 auf Android.

Merkmale

Kotlin-Versionen von Merkmalen 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 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.

Jedes Merkmal befindet sich in einem eigenen Namespace und muss einzeln importiert werden, um verwendet werden zu können.

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 Gerätetyp „Garage“ (aus dem Google Smart Home) verwenden Sie eine Kombination aus Matter und Google-Merkmalen:

import com.google.home.google.LockUnlock
import com.google.home.matter.standard.DoorLock
import com.google.home.matter.standard.GoogleGarageDevice

Android Studio verfügt über eine Funktion zur automatischen Vervollständigung und verarbeitet häufig 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. In der Referenz finden Sie den korrekten Paketnamen für jeden DeviceType oder Trait.

Die meisten Merkmale können mit Automatisierungen verwendet werden. Einige Merkmale sind nur für Automatisierungen verfügbar. Weitere Informationen finden Sie unter Unterstützung von Merkmalen der Automation API auf 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. „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 Cloud-to-cloud und den Home APIs, wie im Beispiel von „OpenClose“. 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 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 „Ventilator “ besteht beispielsweise aus beiden und umfasst drei Merkmale:

  • Das Identify Matter Merkmal bietet alle Funktionen von Matter Identify.
  • Das FanControl Matter Merkmal bietet alle Funktionen des Matter FanControl Merkmals
  • Das ExtendedFanControl Google-Merkmal bietet alle Funktionen des Google smart home FanSpeed Merkmals, die nicht vom FanControl Matter Merkmal abgedeckt werden

Diese Art der Merkmalszusammensetzung bietet ein flexibles Modell für die vollständige Funktionalität von Gerätetypen, das die zugrunde liegenden smart home Datenmodelle abstrahiert.