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 Informationen zu Nicht-Geräten beschreiben, die mit der Struktur und den Räumen eines Nutzers verknüpft sind.
Die Home APIs definieren die folgenden Entitäten, mit denen ein Nutzer interagieren kann:
- Strukturen stellen ein Zuhause dar, das Räume und Geräte enthält.
- Räume sind Teil einer Struktur 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:
Die Gerätetypen der Home API können auf Matter, einem offenen Standard für das Smart Home, oder auf einem Cloud-to-cloud Gerät im Google Home Ökosystem basieren. Einige Gerätetypen können Funktionen aus beiden enthalten. Weitere Informationen finden Sie unter Unterstützte Gerätetypen auf Android.
In Matter sind die Gerätefunktionen nach Clustern gruppiert, die in den Home APIs als Matter Standardmerkmale dargestellt werden. Die Home APIs unterstützen die Standardgruppe von Matter Clustern, wie in der aktuellen Matter Spezifikation definiert.
Im Google Home-Ökosystem sind die Gerätefunktionen nach Smart-Home-Merkmalen gruppiert, die in den Home APIs als Google Smart-Home-Merkmale dargestellt werden. Die Home APIs unterstützen die Gruppe von Smart-Home-Merkmalen, wie im Cloud-to-cloud Programm definiert.
Es sind auch andere Merkmale verfügbar, z. B. herstellerspezifische Cluster und Plattformmerkmale. Weitere Informationen finden Sie unter Datenmodell auf Android.
Plattform
Das Google Home-Ökosystem bietet eine optimierte Grundlage für die Entwicklung, Verwaltung, Sicherung und Integration von Smart-Home-Funktionen. Abbildung 2 zeigt, wie die Komponenten zusammenarbeiten.
Die Home APIs verwenden OAuth 2.0 , um Zugriff auf Geräte in der Struktur zu gewähren. Mit OAuth kann ein Nutzer einer App oder einem Dienst die Berechtigung erteilen, ohne seine Anmeldedaten weitergeben zu müssen.
Die Google Home Developer Console wird verwendet, um alle Phasen eines Home APIs Projekts zu verwalten, von der Markenbestätigung über die Entwicklung, das Testen und die Zertifizierung bis hin zur Einführung. Sie optimiert den Entwicklungsprozess und bietet gleichzeitig robuste Tools und die Verteilung über das Google Home-Ökosystem.
Sprache
Die Home APIs für Android sind in Kotlin geschrieben und bieten eine idiomatische Kotlin-Oberfläche, die Flow verwendet, um Status und Abonnements zu verwalten. Dies bietet eine Reihe von Vorteilen gegenüber einer Standard-Abonnement-API.
Wir empfehlen Ihnen, sich mit der Kotlin-Dokumentation zu Coroutinen, Flow und Jetpack Compose vertraut zu machen, falls Sie dies noch nicht getan haben:
- Android-Apps mit Kotlin entwickeln
- Kotlin für Android lernen
- Kotlin-Coroutinen auf Android. Diese Codelabs können hilfreich sein:
- Kotlin-Flows auf Android und insbesondere StateFlow.
- Status und Jetpack Compose, insbesondere die
collectAsStateWithLifecycle()Funktion. Mit dieser Funktion werden Abonnements für die Flows automatisch verwaltet, je nachdem, ob die UI, die diesen Status anzeigt, tatsächlich im Vordergrund ist oder nicht. - Wenn Sie mit der Automation API arbeiten, ist es hilfreich, sich über typsichere Kotlin-Builder zu informieren, um zu verstehen, wie die Automation DSL funktioniert.
Entitäts-IDs
Jede Entität in den Home APIs hat eine ID, die ihre primäre ID darstellt. Diese ID ist eine eindeutige und stabile ID, die sich während der Lebensdauer der Entität nie ä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 HasId-Schnittstelle erfahren Sie,
welche Entitäten eine ID haben.
Terminologiezuordnung
Entitäten in den Home APIs werden wie folgt Matter und Cloud-to-cloud Konzepten zugeordnet:
| Home APIs | Matter | Cloud-to-cloud |
|---|---|---|
| Merkmal | Cluster | Merkmal |
| Attribut | Attribut | Attribut, Status |
| Befehl | Befehl | Befehl |
| Ereignis | Ereignis | Antwort, Benachrichtigung |