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 aux 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 les métadonnées et les appareils de la maison 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 traits standards Matter. Les API Home sont compatibles avec l'ensemble standard de clusters Matter, 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 Google pour la maison connectée. Les API Home sont compatibles avec l'ensemble des caractéristiques de maison connectée définies dans le programme Cloud-to-cloud.
D'autres caractéristiques, telles que les clusters spécifiques au fabricant et les caractéristiques de la plate-forme, sont également disponibles. Pour en savoir plus, consultez Modèle de données sur Android.
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à fait, nous vous recommandons de vous familiariser avec la documentation Kotlin sur les coroutines, Flow et Jetpack Compose :
- Développer des applications Android en Kotlin
- Découvrir Kotlin pour Android
- Coroutines Kotlin sur Android Les ateliers de programmation spécifiques suivants peuvent vous être utiles :
- Flux Kotlin sur Android et plus précisément StateFlow.
- État et Jetpack Compose, en particulier la fonction
collectAsStateWithLifecycle()
. Cette fonction gère automatiquement l'abonnement et la désinscription aux flux en fonction de l'état de l'UI qui affiche cet état (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 concepts Matter et Cloud-to-cloud comme suit :
API Home | Matter | Cloud-to-cloud |
---|---|---|
Trait | Cluster | Trait |
Attribut | Attribut | Attribut, État |
Commande | Commande | Commande |
Événement | Événement | Réponse de suivi, Notification |