Présentation des API Home pour Android

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 :

Schéma représentant l'architecture des API Home pour une application Android
Figure 1 : Architecture des API Home pour une application Android

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 :

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