Descripción general de las APIs de Home para Android

Las APIs de Google Home para Android proporcionan una superficie 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 la información que no es de dispositivos asociada 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 rasgos, 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 la casa.

En la figura 1, se ilustra esta arquitectura:

Diagrama que muestra la arquitectura de las APIs de Home para una app para Android
Figura 1: Arquitectura de las APIs de Home para una app para Android

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 funcionalidad de ambos. Consulta Tipos de dispositivos compatibles en Android 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 Matter rasgos estándar. Las APIs de Home admiten el conjunto estándar de Matter clústeres, como se define en la especificación actual Matter.

En el ecosistema de Google Home, la funcionalidad del dispositivo se agrupa por rasgos de casa inteligente, que se representan en las APIs de Home como rasgos de casa inteligente de Google. Las APIs de Home admiten el conjunto de rasgos de casa inteligente, como se define en el Cloud-to-cloud programa.

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

Ecosistema

El ecosistema de Google Home proporciona una base optimizada para compilar, administrar, proteger e integrar experiencias de casa inteligente. En la figura 2, se muestra cómo funcionan juntos todos los componentes.

Diagrama que muestra el ecosistema de las APIs de Home para una app para Android
Figura 2: El ecosistema de las APIs de Home para una app para Android

El ecosistema incluye el motor de automatización de Google que almacena y ejecuta automatizaciones que proporcionan una forma de automatizar tareas y configuración de dispositivos en una casa.

Las APIs de Home usan OAuth 2.0 para otorgar acceso a los dispositivos de la estructura. OAuth permite que un usuario otorgue permiso a una app o un servicio sin tener que exponer sus credenciales de acceso.

El Google Home Developer Console se usa para administrar todas las etapas de un proyecto de las APIs de Home , desde la verificación de la marca hasta el desarrollo, las pruebas y la certificación para en última instancia, el lanzamiento. Optimiza el proceso de desarrollo y, al mismo tiempo, ofrece herramientas sólidas y distribución a través del ecosistema de Google Home.

Idioma

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

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

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 objetos en caché o verificar la igualdad, ya que los metadatos de una entidad pueden cambiar.

Consulta la interfaz 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 de 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