Smart-Home-APIs – Übersicht

Die Google Home APIs für Android bieten eine einheitliche API-Oberfläche, mit der Entwickler mit dem Status von Entitäten im Zuhause eines Nutzers interagieren können. Diese Entitäten können Geräte und nicht gerätebezogene Informationen beschreiben, die mit dem Gebäude und den Räumen eines Nutzers verknüpft sind.

Die Home APIs definieren die folgenden Entitäten, mit denen ein Nutzer interagieren kann:

  • Gebäude stellen ein Zuhause mit Räumen und Geräten dar.
  • Räume sind Teil eines Gebäudes und enthalten Geräte.
  • Geräte implementieren Merkmale mit Attributen, entsprechen Typen, senden Ereignisse und reagieren auf Befehle.
  • Automatisierungen sind Teil einer Struktur und verwenden Metadaten und Geräte des Zuhauses, um Aufgaben im Zuhause zu automatisieren.

Abbildung 1 veranschaulicht diese Architektur:

Diagramm zur Architektur der Home APIs
Abbildung 1: Architektur der Home APIs

Home API-Gerätetypen können von Matter unterstützt werden, einem offenen Standard für das Smart Home, oder ein Cloud-to-cloud-Gerät im Google Home-System sein. Einige Gerätetypen können Funktionen aus beiden Betriebssystemen enthalten. Weitere Informationen finden Sie unter Unterstützte Gerätetypen.

In Matter werden Gerätefunktionen nach Clustern gruppiert, die in den Home APIs als Matter-Standardmerkmale dargestellt werden. Die Home APIs unterstützen die standardmäßigen Matter-Cluster, wie in der aktuellen Matter-Spezifikation definiert.

Im Google Home-System werden Gerätefunktionen nach Smart-Home-Attributen gruppiert, die in den Home APIs als Google-Smart-Home-Attribute dargestellt werden. Die Home APIs unterstützen die Smart-Home-Attribute, die im Cloud-to-cloud-Programm definiert sind.

Es sind auch andere Merkmale wie herstellerspezifische Cluster und Plattformmerkmale verfügbar. Weitere Informationen finden Sie unter Datenmodell.

Sprache

Die Home APIs sind in Kotlin geschrieben und bieten eine idiomatische Kotlin-Benutzeroberfläche, die den Status und das Abo mithilfe von Flow verwaltet. Das bietet gegenüber einer Standard-Abo-API eine Reihe von Vorteilen.

Wir empfehlen Ihnen, sich mit der Kotlin-Dokumentation zu Tasks, Flow und Jetpack Compose vertraut zu machen, falls Sie dies noch nicht getan haben:

Entitäts-IDs

Jede Entität in den Home APIs hat eine ID, die ihre primäre Kennung darstellt. Diese ID ist eine eindeutige und stabile Kennung, die sich während der Lebensdauer der Entität nicht ändert. Diese ID kann verwendet werden, um Objekte im Cache zu speichern oder auf Gleichheit zu prüfen, da sich die Metadaten einer Entität ändern können.

In der Benutzeroberfläche von HasId sehen Sie, welche Entitäten eine ID haben.

Terminologiezuordnung

Entitäten in den Home APIs werden den Matter- und Cloud-to-cloud-Konzepten so zugeordnet:

Home APIs Matter Cloud-to-cloud
Merkmal Cluster Merkmal
Attribut Attribut Attribut, Status
Befehl Befehl Befehl
Ereignis Ereignis Antwort auf Nachfrage, Benachrichtigung