Conceptos básicos: scripts y automatizaciones

Si acabas de empezar con Home Assistant y andas un poco perdido, no te pierdas esta clase sobre dos conceptos básicos: scripts y automatizaciones.

Ambos son aspectos centrales de este sistema y pueden complicarse todo lo que quieras, pero en esta entrada nos vamos a limitar a entender qué son, para qué sirven y cómo funcionan. Con el tiempo, la experiencia y sobretodo las nuevas necesidades que te surjan aprenderás a llevarlos más allá.

🥑 Si lo prefieres, puedes ver el video del taller de la academia en el que te explico cómo dominar las automatizaciones y scripts!
taller scripts automatizaciones

Cuando quieras dar los siguientes pasos, te aconsejo que revises la Guía de inicio y contenido. Además, desde nuestro grupo de Telegram siempre estaremos para ayudarte 🙂

Scripts

Un ‘script‘ es una secuencia de acciones que se ejecutan cuando se activa el script. Así de simple. Puedes crearlos y acceder a ellos desde Ajustes > Automatizaciones y escenas > Scripts.

¿Para qué sirven?

Además de con scripts, las acciones también se pueden ejecutar directamente desde tarjetas en el panel de control (por ejemplo, botones). Sin embargo, un script te permite definir una secuencia más compleja.

Por ejemplo, tiene sentido usar un botón para encender una bombilla. Pero si quieres que la bombilla se encienda de un color determinado dependiendo de qué persona está en la habitación, y sólo a partir de cierta hora del día, tiene más sentido crear un script.

Además, a veces vas a querer ejecutar la misma secuencia de acciones en distintos escenarios y de distinta forma. Cuando creas un script puedes llamarlo para que se ejecute desde tarjetas, automatizaciones, dispositivos e incluso desde otros scripts.

Por ejemplo, imagínate que has creado una secuencia de acciones que consiste en apagar la tele, los altavoces y las luces del salón. Puede que quieras ejecutar esta secuencia manualmente cuando te vayas a la cama, pero también que se ejecute de forma automática cuando tus sensores de presencia indiquen que te has ido a dormir, o cuando llegue cierta hora del día.

Por otro lado, cuando creas un sistema de secuencias y automatizaciones más complejas, trabajar con scripts te permite segmentar el proceso. Es una forma más limpia y cómoda de programar, que te permite ir validando el correcto funcionamiento de cada etapa del sistema.

¿Cómo funcionan?

Cuando creas un script lo primero que tienes que hacer es asignarle un nombre y, si quieres, un icono. El ID de la entidad asociada se asigna automáticamente (aunque lo puedes modificar si quieres). Esta entidad es la que vas a llamar en un futuro para activar el script. También puedes seleccionar el modo de ejecución, aunque para empezar puedes dejar la opción “único” que viene por defecto (esto significa que si el script se detiene en algún momento de la secuencia, generará un error y abortará el proceso).

A continuación viene la secuencia de acciones. Es decir, todo aquello que va a pasar cuando se ejecute el script. Puedes añadir todas las acciones que quieras, y se ejecutarán en el orden que ves en pantalla.

Cuando hagas clic en “Añadir acción” te pedirá que le indiques el tipo de acción. Algunas de las más básicas, con las que puedes empezar y crear un montón de secuencias son las siguientes:

  • Dispositivo. Esta acción sirve para alterar el estado de uno de los dispositivos que hayas integrado en Home Assistant. Por ejemplo, encender la tele, apagar una bombilla, activar el robot aspirador, encender un enchufe…
  • Llamar servicio. Esta acción sirve para ejecutar un comando predefinido en Home Assistant (por ejemplo, para encender una luz se utiliza el servicio ‘light.turn_on’). Esta acción se parece a la anterior en que sirve para alterar el estado de los dispositivos, pero también te permite cambiar el estado de variables (por ejemplo, campos numéricos, temporizadores, contadores…). Asimismo permite, a su vez, ejecutar un conjunto de acciones que hayas grabado previamente en un script. Para ciertos servicios tendrás que indicar datos adicionales como el dispositivo o la entidad que quieres alterar, u otros detalles sobre la acción (por ejemplo, el color de la bombilla).
  • Si-entonces. Esta acción te permite evaluar una condición (o varias) antes de ejecutar las acciones. La condición puede ser una hora del día, el estado de un dispositivo o una variable, el importe de un campo numérico… entre otros. Una vez definida la condición, podrás indicar lo que quieres que pase si se cumple la condición. También puedes definir acciones en caso de que no se cumpla (aunque no es obligatorio).

Cuando defines una acción se crea un bloque con tres puntos a la derecha. Si haces clic sobre ellos podrás hacer una serie de cosas útiles como reordenar las acciones, ejecutarlas (para probar que funcionan), duplicarlas… y editarlas en yaml. Si haces clic en esta última opción te aparecerá un código en pantalla que se corresponde con la traducción de la acción que has creado mediante la interfaz visual, al lenguaje de programación que usa Home Assistant.

No olvides hacer clic en el botón de “Guardar script” cuando hayas terminado. Desde ese momento lo encontrarás en el panel de Ajustes > Automatizaciones y escenas > Scripts. También estará disponible para ser ejecutado siempre que elijas como acción “Llamar servicio” (en tarjetas, automatizaciones, otros scripts…).

Automatizaciones

Una “automatización” es una secuencia de acciones que se ejecutan cuando se da un evento y, opcionalmente, cuando se cumple una condición. El concepto es parecido al de ‘script’, pero en este caso las acciones se ejecutan de forma autónoma sin necesidad de tu intervención. Puedes crearlas y acceder a ellas desde Ajustes > Automatizaciones y escenas > Automatizaciones.

¿Para qué sirven?

La pregunta es obligada, pero la respuesta es evidente ya que son uno de nuestros principales motivos para usar Home Assistant. Las automatizaciones sirven para programar acciones en función de lo que pasa a nuestro alrededor. Por ejemplo:

  • Cuando cambia el tiempo meteorológico (temperatura, lluvia, amanecer…) o llega cierta hora del día.
  • Cuando cambia el estado de un dispositivo (al encender la tele, responder una llamada de teléfono, pulsar un botón…)
  • Cuando cambia el estado de una variable o entidad (al finalizar un temporizador, al alcanzar cierto número en un contador, cuando un sensor tomar cierto estado…)
  • Cuando alguien llega a casa o a cierta zona paramétrizada (como el trabajo, el supermercado, el gimnasio…)
  • Cuando das una orden a través de tu altavoz inteligente.
  • Y un largo etcétera.

¿Cómo funcionan?

Las automatizaciones constan de 3 partes básicas:

  1. Desencadenantes o ‘triggers’. Puesto que, a diferencia de los scripts, las automatizaciones no requieren de tu intervención manual para activarse, necesitan que les indiques qué tiene que pasar para que se inicien. Ten en cuenta que si añades varios desencadenantes funcionarán de forma alternativa. Es decir, la automatización se iniciará si se cumple cualquiera de ellos. Todos los ejemplos que mencionaba en el apartado anterior son desencadenantes y tienen su correspondencia en los tipos de desencadenante que puedes elegir. Algunos ejemplos:
    • Dispositivo. Este desencadenante te permite iniciar acciones cuando cambia el estado de un dispositivo (por ejemplo, cuando se apaga la tele -> se apaga el ‘home cinema’).
    • Estado. Permite iniciar acciones cuando cambia el estado de una entidad (por ejemplo, cuando se hace de noche -> se encienden las luces).
    • Estado numérico. Muy parecida a la anterior, pero en este caso evalua valores numéricos (por ejemplo, cuando la temperatura supera 26ºC -> enciende el aire acondicionado).
    • Hora. Inicia una acción cuando llega una hora del día (por ejemplo, a las 7:00 am -> sube las persianas).
  2. Condiciones. Este paso, opcional, evalúa una condición (o varias) y permite que la automatización se ejecute sólo si se cumple. En ocasiones puede confundirse con el desencadenante, porque se parecen mucho. Los desencadenantes analizan las acciones (encender una luz), mientras que las condiciones analizan el estado actual (luz encendida).
  3. Acciones. Este paso funciona de forma idéntica a lo explicado en el apartado de scripts. De hecho, una práctica muy habitual es crear un script con una secuencia de acciones, y ejecutarlo desde una automatización. Por ejemplo, crear una automatización de “Buenos días”, que se desencadene a las 7:00 am, si se cumple la condición de que haya alguien en casa, y tenga como acciones subir las persianas y encender las luces.

¿Dudas?¿necesitas ayuda? entra aquí
Y si te ha gustado, compártelo! 🙂
Send this to a friend