Descripción general de las APIs de Home

Las APIs de Google Home para Android proporcionan una plataforma de API unificada para permitir que los desarrolladores interactúen con el estado de las entidades en la casa de un usuario. Estas entidades pueden describir dispositivos y datos no relacionados con dispositivos asociados con la estructura y las habitaciones de un usuario.

Las APIs de Home definen las siguientes entidades con las que un usuario puede interactuar:

  • Las estructuras representan una casa que contiene habitaciones y dispositivos.
  • Las habitaciones forman parte de una estructura y contienen dispositivos.
  • Los dispositivos implementan atributos que contienen atributos, se ajustan a los tipos, emiten eventos y responden a los comandos.
  • Las automatizaciones forman parte de una estructura y usan metadatos y dispositivos de la casa para automatizar tareas en ella.

En la figura 1, se ilustra esta arquitectura:

Diagrama que muestra la arquitectura de las APIs de Home
Figura 1: Arquitectura de las APIs de Home

Los tipos de dispositivos de la API de Home pueden estar respaldados por Matter, un estándar abierto para la casa inteligente, o ser un dispositivo Cloud-to-cloud en el ecosistema de Google Home. Algunos tipos de dispositivos pueden incorporar funciones de ambos. Consulta Tipos de dispositivos compatibles para obtener más información.

En Matter, la funcionalidad del dispositivo se agrupa por clústeres, que se representan en las APIs de Home como atributos estándar de Matter. Las APIs de Home admiten el conjunto estándar de clústeres de Matter como se define en la especificación actual de Matter.

En el ecosistema de Google Home, la funcionalidad de los dispositivos se agrupa según los atributos de la casa inteligente, que se representan en las APIs de Home como atributos de la casa inteligente de Google. Las APIs de Home admiten el conjunto de atributos de casa inteligente como se define en el programa Cloud-to-cloud.

También están disponibles otros atributos, como los clústeres específicos del fabricante y los atributos de la plataforma. Para obtener más información, consulta Modelo de datos.

Idioma

Las APIs de Home están escritas en Kotlin y proporcionan una interfaz idiomática de Kotlin que usa Flow para administrar el estado y la suscripción. Esto proporciona varias ventajas sobre una API de suscripción estándar.

Si aún no lo hiciste, te recomendamos que te familiarices con la documentación de Kotlin sobre corrutinas, flujo y Jetpack Compose:

Identificadores de entidades

Cada entidad de las APIs de Home tiene un ID que representa su identificador principal. Este ID es un identificador único y estable que nunca cambiará durante la vida útil de la entidad. Este ID se puede usar para almacenar en caché objetos o verificar la igualdad, ya que los metadatos de una entidad pueden cambiar.

Consulta la interfaz de HasId para saber qué entidades tienen un ID.

Asignación de terminología

Las entidades de las APIs de Home se asignan a los conceptos Matter y Cloud-to-cloud de la siguiente manera:

APIs de Home Matter Cloud-to-cloud
Rasgo Clúster Rasgo
Atributo Atributo Atributo, estado
Comando Comando Comando
Evento Evento Respuesta de seguimiento, notificación