Antes de comenzar a usar la API de automatización, debe diseñar sus automatizaciones.
Determine los siguientes parámetros para cada automatización:
- Las circunstancias en las que debería sugerirse la automatización al usuario. Por ejemplo, si el usuario acaba de agregar tres luces nuevas a su casa, es posible que le interese una automatización en particular diseñada para controlar las luces.
- Tipos de dispositivos que se requieren para la automatización. Por ejemplo, si el usuario acaba de agregar tres luces nuevas a su casa, es posible que le interese una automatización en particular diseñada para controlar las luces. Ejemplos de tipos de dispositivos de luz incluyen
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoExtendedColorLightDevice. - ¿Qué atributos de rasgos y comandos son necesarios para la automatización y si son compatibles con la API de automatización en Android?
- Las características que deberían activar la automatización como punto de partida. Los iniciadores se analizan en Componentes de automatización en Android.
- Son condiciones adicionales que determinan si la automatización debe ejecutarse y qué acciones se deben realizar.
- Es el flujo de ejecución de la automatización. ¿Debería ejecutarse de forma secuencial o en paralelo? ¿Necesitas múltiples rutas lógicas?
Al diseñar, puede resultar útil diagramar el flujo de la automatización, nodo por nodo, con la lógica requerida en cada paso.
Una vez que hayas diseñado una automatización, usa el DSL de Automation para compilarla. La automatización que creas es básicamente una "plantilla": todas las estructuras y los dispositivos que contiene son marcadores de posición y se completan con la estructura y los dispositivos específicos de cada usuario cuando "adoptan" la automatización para su propio uso.
A continuación, se muestran los diferentes tipos de automatizaciones que una app podría crear con las APIs de Home. Consulta la página Crea una automatización para ver fragmentos de código relacionados con estos ejemplos.
Automatización simple
Supongamos que necesitas escribir una app que cree una automatización que suba las persianas a las 8 a.m. Para lograrlo, la app necesita una lista de las persianas (dispositivos con el tipo de dispositivo WindowCoveringDevice) presentes en la estructura que admiten automatizaciones, que puede proporcionar la API de Discovery.
En el caso de las automatizaciones que deben ejecutarse a una hora determinada, también debes asegurarte de que el usuario haya asignado una dirección de la calle a la estructura elegida en Google Home app (GHA). De lo contrario, la automatización no sabrá la zona horaria en la que se ejecutará. La API de Discovery puede ayudarte a determinar si se asignó una dirección a la estructura.
Por lo tanto, el flujo de ejecución se vería de la siguiente manera:
- Con la API de Discovery, recopila la lista de dispositivos
WindowCoveringDevice. - Si no se completa la dirección, notifica al usuario que debe proporcionar una y detén la ejecución.
- De lo contrario, define la automatización:
- Inicia la automatización a las 8 a.m.
- Para cada una de las persianas, llama al comando
upOrOpendel rasgoWindowCovering.
Automatización compleja
Imagina una app que crea una automatización que activa luces parpadeantes cuando se detecta movimiento.
Una de las primeras tareas para implementar esta app es averiguar qué luces están disponibles en la casa del usuario con la API de Discovery. Con esta información, tu app ahora puede mostrar las luces disponibles y, tal vez, permitir que el usuario seleccione qué luces quiere que parpadeen.
Flujo de ejecución:
- Con la API de Discovery, recopila la lista de dispositivos de iluminación presentes en la estructura, que serían todos los dispositivos con un tipo de dispositivo
OnOffLightDevice,ColorTemperatureLightDevice,DimmableLightDeviceoExtendedColorLightDevice. - Proporciona una forma de seleccionar las luces que parpadean, tal vez a través de un panel de configuración personalizado.
- Define la automatización:
- Inicia la automatización cada vez que alguien salga o llegue a las instalaciones supervisando
AreaPresenceState. - Si el
presenceStateindica que la estructura está ocupada, parpadea las luces elegidas.
- Inicia la automatización cada vez que alguien salga o llegue a las instalaciones supervisando
Automatización genérica
Para ver un ejemplo de una automatización más sofisticada, considera una que guíe al usuario para crear una automatización abierta, basada en cualquiera o todos los dispositivos que tenga en su casa.
La automatización podría primero solicitar al usuario que seleccione una estructura.
Luego, la automatización podría mostrar todas las habitaciones de la estructura en una vista de esquema expandible, en la que, al expandir una habitación, se muestran los dispositivos que contiene. Si expandes un dispositivo, se mostrarán los iniciadores y los comandos que admite.
El usuario podía elegir los dispositivos, los activadores y los comandos que quería usar, y la automatización lo guiaba para que armara una automatización.
Cuando todas las elecciones y decisiones del usuario sean definitivas, la automatización generará la automatización y la guardará en la estructura elegida.
A un nivel general, esta automatización debería recopilar varios conjuntos de datos sobre la casa del usuario con la API de Structure para Android, la API de Device para Android y la API de Discovery.
| API | Información |
|---|---|
| API de Structure |
|
| API de Device |
|
| API de Discovery |
|