Las automatizaciones son una forma de automatizar tareas y la configuración de dispositivos en una casa. Las automatizaciones han estado disponibles en el ecosistema de Google Home como Rutinas en la Google Home app (GHA) y a través de automation script editor en Google Home for web.
Ahora, las automatizaciones en el ecosistema de Google Home están disponibles a través de las APIs de Home para Android. Usan los mismos conceptos básicos que se usan en GHA Rutinas y el script editor, pero con funciones y capacidades mejoradas que solo son posibles a través de las APIs de Home, incluidas las siguientes:
- Acceso a todas las características Matter estándar y smart home para un dispositivo, como se presenta en las APIs de Home
- Compatibilidad con flujos de ejecución secuenciales, paralelos y seleccionados
Las automatizaciones se escriben con Automation DSL, un lenguaje específico del dominio diseñado para crear automatizaciones en Kotlin.
Todas las características y los tipos que deseas usar en tu app con las APIs de Device &Structure o Automation deben registrarse durante la inicialización. Consulta Cómo inicializar la casa en Android.
Orientación si el usuario revoca los permisos completos
Si el usuario revoca los permisos completos, todas las automatizaciones existentes dejarán de funcionar. Además, si el usuario revoca el acceso a dispositivos específicos, los activadores, las condiciones y las acciones asociadas con esos dispositivos dejarán de funcionar.
Cada vez que se inicie la app, asegúrate de que los permisos sigan vigentes. Si se revocaron, asegúrate de que se quiten todos los datos anteriores, incluidos los datos almacenados en caché en la aplicación.
Recorrido del desarrollador
La API de automatización es una parte de un recorrido de desarrollo más grande. Se produce después de integrar las APIs de Structure y Device para garantizar que, cuando un usuario quiera usar una automatización, pueda hacerlo.
- El desarrollador planifica su automatización y la define con Automation DSL.
- El desarrollador incorpora la definición de automatización en una app para Android de Kotlin.
- La app presenta automatizaciones a un usuario en función de la información sobre sus dispositivos, incluidas las características, los atributos, los comandos y los eventos, recopilados con la API de Discovery o la API de Device.
- Con la API de Discovery, la app puede generar una automatización de borrador personalizada para los tipos de dispositivos y las características presentes en la estructura del usuario, con o sin la entrada del usuario.
- La API de Device puede proporcionar la mayor parte de la misma información que la API de Discovery, pero no está optimizada para casos de uso de automatización. Consulta Comparación entre la API de Device y la API de Discovery para obtener más detalles.
- La app crea la automatización real que está vinculada a la estructura seleccionada.
- La automatización ahora está disponible en la estructura del usuario y se puede ejecutar o borrar con los métodos de la API de Structure.
El usuario puede crear instancias nuevas de la automatización en cualquier momento, seleccionar una estructura diferente o, según la lógica de la app, quizás un conjunto diferente de dispositivos. Cada vez que lo hace, la app genera una instancia nueva de la automatización.
En la situación más básica, puedes sugerir a tus usuarios una automatización predefinida que realice una tarea relativamente básica. Como alternativa, puedes presentar un esqueleto de una automatización que el usuario personalice para satisfacer sus necesidades. También puedes escribir un editor de automatización abierto que permita al usuario crear automatizaciones complejas con todos los bloques de compilación disponibles en la API de Automation.
Sugerencias de automatización
Las APIs de Home pueden sugerir automatizaciones para un
Structure en función de factores
como los tipos de dispositivos presentes en el espacio.
Las sugerencias de automatización están representadas por la
AutomationSuggestion
clase.
La Structure interfaz
abarca la
HasSuggestions
interfaz, que proporciona la
suggestions()
función, que muestra una colección de sugerencias de automatización.
Límites de recursos
Se aplican los siguientes límites a las automatizaciones en las APIs de Home:
| Métrica | Límite |
|---|---|
| Cantidad máxima de automatizaciones por estructura | 64 |
| Cantidad máxima de nodos por automatización | 128 |
| Cantidad máxima de nodos de expresión por automatización | 64 |
| Cantidad máxima de instancias de automatización por estructura | 1024 |
| Cantidad máxima de instancias de automatización por desarrollador por estructura | 64 |
| Cantidad máxima de ejecuciones por estructura por día | 1024 |
| Cantidad máxima de ejecuciones por desarrollador por estructura por día | 128 |