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 associées à des appareils associées à 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 traits contenant des attributs, se conforment aux types, émettent des événements et répondent aux commandes.
- Les automatisations font partie d'une structure et utilisent les métadonnées et les appareils de la maison pour automatiser les tâches.
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 combiner les fonctionnalités des deux. Pour en savoir plus, consultez la page Types d'appareils compatibles.
Dans Matter, les fonctionnalités de l'appareil sont regroupées par clusters, qui sont représentés dans les API Home sous la forme de 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 de l'appareil sont regroupées par caractéristiques de maison connectée, qui sont représentées dans les API Home sous la forme de caractéristiques de maison connectée Google. Les API Home sont compatibles avec l'ensemble des caractéristiques de la maison connectée telles que 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.
Langue
Les API Home 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, les flux et Jetpack Compose:
- Développer des applications Android en Kotlin
- Découvrir Kotlin pour Android
- Coroutines Kotlin sur Android Ces ateliers de programmation spécifiques 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 le désabonnement aux flux en fonction de l'état de l'UI affichant cet état. - Si vous travaillez avec l'API Automation, consultez les compilateurs Kotlin avec sûreté de typage pour comprendre le fonctionnement du 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 change 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 disposent d'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 |