Die Google Home APIs für Android bieten eine einheitliche API-Oberfläche, über die 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 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 dar, das Räume und Geräte enthält.
- Räume sind Teil eines Gebäudes und enthalten Geräte.
- Geräte implementieren Eigenschaften, die Attribute enthalten, entsprechen Typen, geben Ereignisse aus und reagieren auf Befehle.
- Gerätegruppen sind benutzerdefinierte Sammlungen von Geräten innerhalb eines Gebäudes.
- Automatisierungen sind Teil eines Gebäudes und verwenden Metadaten und Geräte des Zuhauses, um Aufgaben im Zuhause zu automatisieren.
Abbildung 1 veranschaulicht diese Architektur:
Home API-Gerätetypen können auf Matter, einem offenen Standard für Smart Homes, basieren oder ein Cloud-to-cloud-Gerät im Google Home-Ökosystem sein. Einige Gerätetypen können Funktionen von beiden enthalten. Weitere Informationen finden Sie unter Unterstützte Gerätetypen unter Android.
In Matter werden Gerätefunktionen nach Clustern gruppiert, die in den Home APIs als Matter-Standard-Traits dargestellt werden. Die Home APIs unterstützen den Standardsatz von Matter-Clustern, wie in der aktuellen Matter-Spezifikation definiert.
Im Google Home-System werden Gerätefunktionen nach Smart-Home-Eigenschaften gruppiert, die in den Home APIs als Google Smart-Home-Eigenschaften dargestellt werden. Die Home APIs unterstützen die im Cloud-to-cloud-Programm definierten Smart-Home-Eigenschaften.
Andere Eigenschaften wie herstellerspezifische Cluster und Plattform-Eigenschaften sind ebenfalls verfügbar. Weitere Informationen findest du unter Datenmodell unter Android.
Plattform
Das Google Home-Ökosystem bietet eine optimierte Grundlage für die Erstellung, Verwaltung, Sicherung und Integration von Smart-Home-Anwendungen. Abbildung 2 zeigt, wie die Komponenten zusammenarbeiten.
Das Ökosystem umfasst die Google Automation Engine, die Automatisierungen speichert und ausführt. Mit diesen Automatisierungen können Aufgaben und Geräteeinstellungen in einem Zuhause automatisiert werden.
Die Home APIs verwenden OAuth 2.0, um Zugriff auf Geräte im Gebäude zu gewähren. Mit OAuth kann ein Nutzer einer App oder einem Dienst die Berechtigung erteilen, ohne seine Anmeldedaten preisgeben 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 Markteinführung. Der Entwicklungsprozess wird optimiert und gleichzeitig werden robuste Tools und die Möglichkeit zur Bereitstellung über das Google Home-Ökosystem geboten.
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. Dies bietet eine Reihe von Vorteilen gegenüber einer Standard-Abo-API.
Wir empfehlen, sich mit der Kotlin-Dokumentation zu Koroutinen, 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-Koroutinen unter Android Diese speziellen Codelabs können hilfreich sein:
- Kotlin-Flows unter Android, insbesondere StateFlow.
- Zustand und Jetpack Compose, insbesondere die Funktion
collectAsStateWithLifecycle(). Diese Funktion verwaltet automatisch das Abonnieren und Abbestellen der Abläufe, je nachdem, ob die Benutzeroberfläche, die diesen Status anzeigt, tatsächlich im Vordergrund ist oder nicht. - Wenn du mit der Automation API arbeitest, ist es hilfreich, dich mit typsicheren Kotlin-Buildern vertraut zu machen, 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 Kennung darstellt. Diese ID ist eine eindeutige und unveränderliche Kennung, die sich während der Lebensdauer der Entität nicht ändert. Diese ID kann zum Caching von Objekten oder zum Prüfen auf Gleichheit verwendet werden, da sich die Metadaten einer Entität ändern können.
In der HasId-Schnittstelle finden Sie Informationen dazu, welche Entitäten eine ID haben.
Terminologiezuordnung
Entitäten in den Home APIs werden den Konzepten von Matter und Cloud-to-cloud so zugeordnet:
| Gebäude-APIs | Matter | Cloud-to-cloud |
|---|---|---|
| Trait | Cluster | Trait |
| Attribut | Attribut | Attribut, Status |
| Befehl | Befehl | Befehl |
| Ereignis | Ereignis | Follow-up-Antwort, Benachrichtigung |