Les API Google Home pour Android fournissent une surface d'API unifiée permettant aux développeurs d'interagir avec l'état des entités dans la maison d'un utilisateur. Ces entités peuvent décrire des appareils et des informations non liées à des appareils associés à la structure et aux pièces d'un utilisateur.
Les API Home définissent les entités suivantes avec lesquelles un utilisateur peut interagir :
- Les structures représentent une maison contenant des pièces et des appareils.
- Les pièces font partie d'une structure et contiennent des appareils.
- Les appareils implémentent des caractéristiques contenant des attributs, sont conformes à des types, émettent des événements et répondent à des commandes.
- Les automatisations font partie d'une structure et utilisent des métadonnées et des appareils pour automatiser des tâches dans la maison.
La figure 1 illustre cette architecture :
Les types d'appareils de l'API Home peuvent être compatibles avec Matter, une norme ouverte pour la maison connectée, ou être un appareil Cloud-to-cloud dans l'écosystème Google Home. Certains types d'appareils peuvent intégrer des fonctionnalités des deux. Pour en savoir plus, consultez Types d'appareils compatibles sur Android.
Dans Matter, les fonctionnalités des appareils sont regroupées par clusters, qui sont représentés dans les API Home en tant que Matter caractéristiques standards. Les API Home sont compatibles avec l'ensemble standard de Matter clusters, tel que défini dans la spécification Matter actuelle.
Dans l'écosystème Google Home, les fonctionnalités des appareils sont regroupées par caractéristiques de maison connectée, qui sont représentées dans les API Home en tant que caractéristiques de maison connectée Google. Les API Home sont compatibles avec l'ensemble des caractéristiques de maison connectée, tel que défini dans le Cloud-to-cloud programme.
D'autres caractéristiques, telles que les clusters spécifiques aux fabricants et les caractéristiques de plate-forme, sont également disponibles. Pour en savoir plus, consultez Modèle de données sur Android.
Écosystème
L'écosystème Google Home fournit une base simplifiée pour créer, gérer, sécuriser et intégrer des expériences de maison connectée. La figure 2 montre comment tous les composants fonctionnent ensemble.
L'écosystème inclut le moteur d'automatisation Google qui stocke et exécute des automatisations permettant d'automatiser les tâches et les paramètres des appareils dans une maison.
Les API Home utilisent OAuth 2.0 pour accorder l'accès aux appareils de la structure. OAuth permet à un utilisateur d'accorder l'autorisation à une application ou à un service sans avoir à exposer ses identifiants de connexion.
Le Google Home Developer Console permet de gérer toutes les étapes d'un projet d'API Home , de la validation de la marque au lancement, en passant par le développement, les tests et la certification. Elle simplifie le processus de développement tout en fournissant des outils robustes et une distribution via l'écosystème Google Home.
Langue
Les API Home pour Android sont écrites en Kotlin et fournissent une interface Kotlin idiomatique qui utilise Flow pour gérer l'état et l'abonnement. Cela présente plusieurs avantages par rapport à une API d'abonnement standard.
Si ce n'est pas déjà le cas, nous vous recommandons de vous familiariser avec la documentation Kotlin sur les coroutines, les flux et Jetpack Compose :
- Développer des applications Android avec Kotlin
- Découvrir Kotlin pour Android
- Coroutines Kotlin sur Android. Les ateliers de programmation spécifiques suivants peuvent être utiles :
- Flux Kotlin sur Android et, plus précisément, StateFlow.
- État et Jetpack Compose, en particulier la
collectAsStateWithLifecycle()fonction. Cette fonction gère automatiquement l'abonnement et le désabonnement des flux selon que l'UI affichant cet état est au premier plan ou non. - Si vous utilisez l'API Automation, il est utile de lire des informations sur les compilateurs Kotlin avec sûreté de typage pour comprendre le fonctionnement de la DSL Automation.
Identifiants d'entité
Chaque entité des API Home possède un ID qui représente son identifiant principal. Cet ID est un identifiant unique et stable qui ne changera jamais pendant la durée de vie de l'entité. Cet ID peut être utilisé pour mettre en cache des objets ou vérifier l'égalité, car les métadonnées d'une entité peuvent changer.
Consultez l'interface HasId pour savoir
quelles entités possèdent un ID.
Mappage de la terminologie
Les entités des API Home correspondent aux Matter et Cloud-to-cloud concepts comme suit :
| API Home | Matter | Cloud-to-cloud |
|---|---|---|
| Caractéristique | Cluster | Caractéristique |
| Attribut | Attribut | Attribut, État |
| Commande | Commande | Commande |
| Événement | Événement | Réponse de suivi, Notification |