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:
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.
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:
- Desarrolla apps para Android con Kotlin
- Aprende a usar Kotlin para Android
- Corrutinas de Kotlin en Android. Estos codelabs específicos pueden ser útiles:
- Flujos de Kotlin en Android y, más específicamente, StateFlow.
- Estado y Jetpack Compose, específicamente la
collectAsStateWithLifecycle()función. Esta función administra automáticamente la suscripción y la cancelación de la suscripción de los flujos según si la IU que muestra ese estado está realmente en primer plano o no. - Si trabajas con la API de Automation, leer sobre los compiladores de acceso seguro a tipos de Kotlin es útil para comprender cómo funciona el DSL de Automation.
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 |