Crear una automatización con secuencias de comandos

1. Introducción

Qué aprenderás

  • Cómo planificar y escribir una automatización de secuencia de comandos
  • Cómo probar una automatización de secuencia de comandos

Requisitos

  • Un teléfono Android o iOS con la app de Google Home
  • Una luz inteligente o algún otro dispositivo certificado como Funciona con Google Home que se pueda encender o apagar

2. Configura el dispositivo

Si tu dispositivo aún no está configurado, hazlo en tu casa.

Confirma que el dispositivo aparezca en la app de Google Home y que puedas encenderlo y apagarlo con la app de Home.

3. Planifica tu automatización de secuencias de comandos

Comenzaremos por pensar qué queremos que haga nuestra automatización con secuencias de comandos. Esto incluye consideraciones como las siguientes:

  • Qué dispositivos quieres automatizar
  • Qué activador (o evento) debe iniciar la ejecución de la automatización con secuencias de comandos.
  • Qué condiciones adicionales, si las hay, controlan si la automatización con secuencias de comandos se ejecuta o no una vez que se activa.
  • Son las acciones que se deben realizar.

Para los fines de este codelab, nuestro plan es que la automatización con secuencias de comandos haga dos cosas:

  1. Encender la luz (o cualquier otro dispositivo inteligente) a una hora específica
  2. Apagar el dispositivo a una hora específica

Ahora que tenemos claro exactamente lo que queremos que haga nuestra automatización de secuencia de comandos, abriremos el editor de secuencia de comandos y escribiremos la automatización.

4. Escribe la automatización de secuencias de comandos

Las automatizaciones de secuencias de comandos se escriben de forma declarativa con el lenguaje de serialización de datos YAML.

Una automatización con secuencias de comandos se compone de dos secciones principales:

  1. Metadatos: El nombre de la automatización basada en secuencias de comandos y una descripción de lo que hace.
  2. Reglas de automatización: Definen la lógica de inicio y el comportamiento de la automatización.

Metadatos

Los metadatos de nuestra automatización le indican al usuario cómo se llama y qué hace. Los metadatos se especifican en el bloque metadata, que se ve de la siguiente manera:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times

Reglas de automatización

Una regla de automatización es donde se realiza el trabajo real. Consta de tres partes: activadores, condiciones y acciones, que se evalúan en orden:

1 Starter

2 Condiciones

3 acciones

Los activadores son los que inician la automatización. Al menos un iniciador debe evaluarse como true para que se evalúen las condiciones posteriores.

Son opcionales y constan de una o más restricciones adicionales que se evalúan después de que se activa un iniciador. Si las condiciones se resuelven como true, se ejecutan las acciones. Si se resuelven en false, las acciones no se ejecutan.

Cuando incluyas varias restricciones, sepáralas con las palabras clave and y or para formar una sola expresión lógica. Esta expresión debe resolverse como true para que continúen las acciones de una automatización.

Una condición no es lo mismo que una notificación de cambio de estado:

  • Una condición representa un hecho que debe ser verdadero en el momento en que se "activa" el iniciador para que se ejecuten las acciones.
  • Una notificación de cambio de estado es un evento, como el encendido de otro dispositivo.

Las acciones son operaciones que se realizan cuando se cumplen el activador y las condiciones de restricción.

El bloque automations de nuestra automatización contiene dos reglas:

automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false

Ten en cuenta lo siguiente:

  1. Hay dos reglas de automations. El primero enciende la luz y el segundo la apaga.
  2. Cada regla tiene una sola acción.
  3. on: true significa encender la luz. Del mismo modo, on: false significa apaga la luz.
  4. Cada regla tiene un solo activador time.schedule que le indica a la automatización a qué hora debe iniciarse.
  5. No hay condiciones en esta automatización.

5. La automatización completa con escritura de secuencias de comandos

Si juntamos todas estas partes, así se verá la automatización completa con secuencia de comandos:

metadata:
  name: Scheduled light
  description: Turn the light on and off at specific times
automations:
  - starters:
      - type: time.schedule
        at: 1:00 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: true
  - starters:
      - type: time.schedule
        at: 1:05 PM
    actions:
      - type: device.command.OnOff
        devices: Desk light - Office
        on: false
  1. Copia la automatización (arriba).
  2. Ve a Google Home para la Web.
  3. Selecciona la pestaña de automatizaciones, que se representa con un ícono de tres estrellas:
    Pestaña Automatizaciones
  4. Haga clic en + Agregar nueva.
  5. En el editor de secuencias de comandos, borra la plantilla de automatización.
  6. Pega tu automatización.
  7. Reemplaza Desk light - Office por el nombre y la ubicación de tu dispositivo.
  8. Haz clic en Validar. El editor de secuencias de comandos subraya las secciones de tu automatización de secuencias de comandos que contienen errores. Resuelve los errores que surjan y sigue validando y corrigiendo hasta que no haya más errores. Por ejemplo, el nombre de tu dispositivo puede ser diferente. Si es así, puedes usar la función de autocompletar para elegir un nombre de dispositivo válido.
  9. Haz clic en Guardar.
  10. Asegúrate de que el interruptor Activar, que se encuentra debajo del texto de tu secuencia de comandos, esté en la posición activado: Editor de secuencias de comandos con automatización de secuencias de comandos validada y activada por completo

6. Prueba la automatización

  1. Asegúrate de que el dispositivo esté enchufado y sea visible en la app de Google Home.
  2. Si el dispositivo está encendido, apágalo.
  3. En la página Automatizaciones de Google Home para la Web, haz clic en el botón "Ejecutar" junto a tu automatización.
    Botón de ejecución de la secuencia de comandos
  4. Se debería encender el dispositivo.

Ahora, probemos la automatización.

  1. Apaga el dispositivo.
  2. Edita la automatización y cambia la hora de "encendido del dispositivo" en la línea 7 a una hora cinco minutos en el futuro.
  3. Cambia la hora de "apagado del dispositivo" en la línea 14 a una hora poco después de la hora de "encendido".
  4. Haz clic en Validar. Resuelve cualquier error que pueda surgir.
  5. Haz clic en Guardar.
  6. Asegúrate de que el interruptor Activar esté en la posición activado.
  7. Espera a que pasen los dos horarios de inicio. El dispositivo debería encenderse y apagarse en los horarios que especificaste.

7. ¡Felicitaciones!

Creaste correctamente una automatización de secuencias de comandos. ¡Excelente!

En este codelab aprendiste a hacer lo siguiente:

  • Cómo diseñar y escribir una automatización
  • Cómo probar una automatización

Próximos pasos

En este codelab, creamos una automatización muy simple. Las automatizaciones pueden hacer mucho más que programar el encendido y apagado de un interruptor. Ahora que comprendes los conceptos básicos para crear una automatización, puedes explorar los distintos tipos de activadores, condiciones y acciones disponibles en el ecosistema de Google Home.

Prueba los siguientes ejercicios:

  • Agrega más activadores time.schedule a la automatización.
  • Modifica la automatización para encender y apagar otro dispositivo con el mismo programa.
  • Sin quitar los activadores time.schedule, modifica la automatización para que solo encienda los dispositivos cuando se encienda otro dispositivo. Consulta los ejemplos de secuencias de comandos que usan la cláusula condition.
  • Modifica la automatización para que solo encienda los dispositivos cuando haya alguien en casa.

Lecturas adicionales

Para obtener más información sobre las automatizaciones de Google Home, explora la documentación de referencia de Automatizaciones: