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 Einheiten können Geräte und Nicht-Geräteinformationen 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:
- Gebäude stellen ein Zuhause mit Räumen und Geräten dar.
- Räume sind Teil eines Zuhauses und enthalten Geräte.
- Geräte implementieren Merkmale mit Attributen, entsprechen Typen, geben Ereignisse aus und reagieren auf Befehle.
- Automatisierte Abläufe sind Teil einer Struktur und verwenden Metadaten und Geräte des Zuhauses, um Aufgaben im Zuhause zu automatisieren.
Abbildung 1 zeigt diese Architektur:
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 von beiden enthalten. Weitere Informationen finden Sie unter Unterstützte Gerätetypen auf Android.
In Matter werden Gerätefunktionen nach Clustern gruppiert, die in den Home-APIs als Matter-Standardattribute dargestellt werden. Die Home-APIs unterstützen den Standardsatz von Matter-Clustern, wie in der aktuellen Matter-Spezifikation definiert.
Im Google Home-Ökosystem wird die Gerätefunktionalität nach Smart-Home-Traits gruppiert, die in den Home-APIs als Google Smart-Home-Traits dargestellt werden. Die Home-APIs unterstützen die Smart-Home-Merkmale, die im Cloud-to-cloud-Programm definiert sind.
Andere Attribute wie herstellerspezifische Cluster und Plattformattribute sind ebenfalls verfügbar. Weitere Informationen finden Sie unter Datenmodell unter 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.
Das Ökosystem umfasst die Google Automation Engine, in der Automatisierungen gespeichert und ausgeführt werden. Mit diesen können Aufgaben und Geräteeinstellungen in einem Zuhause automatisiert werden.
Die Home APIs verwenden OAuth 2.0, um den Zugriff auf Geräte im Gebäude zu gewähren. OAuth ermöglicht es einem Benutzer, einer App oder einem Dienst Berechtigungen zu erteilen, ohne seine Anmeldedaten preiszugeben.
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. Es 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-Schnittstelle, die Flow zur Verwaltung von Status und Abos verwendet. Das bietet eine Reihe von Vorteilen gegenüber einer Standard-Abo-API.
Falls Sie es noch nicht getan haben, empfehlen wir Ihnen, sich mit der Kotlin-Dokumentation zu Coroutinen, Flow und Jetpack Compose vertraut zu machen:
- Android-Apps mit Kotlin entwickeln
- Kotlin für Android lernen
- Kotlin-Koroutinen für Android. Diese Codelabs könnten hilfreich sein:
- Kotlin-Flows auf Android und genauer gesagt, StateFlow.
- State und Jetpack Compose, insbesondere die Funktion
collectAsStateWithLifecycle(). Diese Funktion verwaltet das Abonnieren und Abbestellen von Datenflüssen automatisch, je nachdem, ob sich die Benutzeroberfläche, die diesen Zustand anzeigt, im Vordergrund befindet oder nicht. - Wenn Sie mit der Automation API arbeiten, ist es hilfreich, sich über typsichere Kotlin-Builder zu informieren, um die Funktionsweise der Automation DSL zu verstehen.
Entitäts-IDs
Jede Entität in den Home-APIs hat eine ID, die ihren primären Bezeichner darstellt. Diese ID ist eine eindeutige und stabile Kennung, die sich während der gesamten Lebensdauer der Einheit nicht ändert. Diese ID kann zum Zwischenspeichern von Objekten oder zum Prüfen auf Gleichheit verwendet werden, da sich die Metadaten einer Entität ändern können.
In der HasId-Schnittstelle können Sie nachsehen, für welche Entitäten eine ID vorhanden ist.
Terminologiezuordnung
Entitäten in den Home-APIs werden den Konzepten Matter und Cloud-to-cloud so zugeordnet:
| Gebäude-APIs | Matter | Cloud-to-cloud |
|---|---|---|
| Attribut | Cluster | Attribut |
| Attribut | Attribut | Attribut, Bundesstaat |
| Befehl | Befehl | Befehl |
| Ereignis | Ereignis | Folgeantwort, Benachrichtigung |