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 puede interactuar un usuario:

  • 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 características, se ajustan a tipos, emiten eventos y responden a 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 para una app para Android
Figura 1: Arquitectura de las APIs de Home para una app de Android

Los tipos de dispositivos de la API de Home pueden estar respaldados por Matter, un estándar abierto para el hogar inteligente, o ser un dispositivo Cloud-to-cloud en el ecosistema de Google Home. Algunos tipos de dispositivos pueden incorporar funcionalidades de ambos. Consulte 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 API de Home como rasgos estándar de Matter. Las API de inicio admiten el conjunto estándar de clústeres Matter tal como se define en la especificación Matter actual.

En el ecosistema de Google Home, la funcionalidad de los dispositivos se agrupa por características de casa inteligente, que se representan en las APIs de Home como características de casa inteligente de Google. Las API de Home admiten el conjunto de características de hogar inteligente tal como se define en el programa Cloud-to-cloud.

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, consulte Modelo de datos en Android.

Ecosistema

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

Diagrama que representa el ecosistema de API de inicio para una aplicación de Android
Figura 2: El ecosistema de las APIs de Home para una app de Android

El ecosistema incluye el Google Automation Engine que almacena y ejecuta automations que proporcionan una forma de automatizar tareas y configuraciones de dispositivos en un hogar.

Las API de Home utilizan OAuth 2.0 para otorgar acceso a los dispositivos en la estructura. OAuth permite a un usuario otorgar permisos a una aplicación o servicio sin tener que revelar sus credenciales de inicio de sesión.

El Google Home Developer Console se usa para administrar todas las etapas de un proyecto de las APIs para la casa, desde la verificación de la marca hasta el desarrollo, las pruebas y la certificación, y, finalmente, el lanzamiento. Optimiza el proceso de desarrollo al tiempo que proporciona herramientas robustas y distribución a través del ecosistema de Google Home.

Idioma

Las API de Home para Android están escritas en Kotlin y proporcionan una interfaz idiomática de Kotlin que utiliza Flow para gestionar el estado y la suscripción. Esto ofrece una serie de ventajas con respecto a una API de suscripción estándar.

Recomendamos familiarizarse con la documentación de Kotlin sobre corrutinas, flujo y Jetpack Compose, si aún no lo ha hecho:

Identificadores de entidad

Cada entidad en las API 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 utilizar para almacenar en caché objetos o comprobar la igualdad, ya que los metadatos de una entidad pueden cambiar.

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

Mapeo de terminología

Las entidades en las API de inicio 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