Añadiendo un temporizador en Home Assistant
En este post vamos a ver algo bastante útil y común en cualquier hogar, el utilizar temporizadores para que una acción finalice, como es por ejemplo poner la calefacción durante el tiempo que escojamos y que cuando finalice el plazo, pues se apague. Así como el regadío del jardín o lo que se te ocurra.
La idea es esta, tener dentro de nuestro Home Assistant un interfaz como el de arriba. Saber si algo está encendido o no, como haremos el ejemplo de nuestro propio termostato. Podremos encenderlo o apagarlo con ese botón y además tendremos que indicar el número de minutos que queremos que dure dicha acción. Todo totalmente personalizable, claro.
Bueno, pues para empezar, añadiremos varias configuraciones en nuestro fichero de configuración configuration.yaml, tendremos por un lado un binary_sensor que será la entidad para la Calefacción y mediante MQTT podremos controlar y conocer sus 2 estados, o está puesta la calefacción o no, así que en la sección de los sensores binarios, lo damos de alta:
binary_sensor: ... - platform: mqtt name: "Calefaccion" state_topic: "RFBridge/cale" availability_topic: "tele/Sonoff-Bridge-04/LWT" qos: 1 payload_on: "Cale" payload_off: "Sin Cale" payload_available: "Online" payload_not_available: "Offline" device_class: heat ...
Necesitaremos también un input_boolean para poder manejarlo desde la GUI y luego las automatizaciones lean su estado (on u off) y hagan lo que tengan que hacer, así que en dicha sección, lo añadimos:
input_boolean: ... temporizador_cale: name: temporizador_cale initial: off
Más, necesitamos crear una entidad de tipo Timer, este será el temporizador:
timer: ... temporizador_cale: name: temporizador_cale duration: 1800 ...
Y por último, añadiremos un input_number, o sea un valor numérico que podremos nosotros desde la GUI manipularlo y establecer el tiempo que nos apetezca encender la calefacción (en este ejemplo). Indicaremos el valor inicial, en mi caso 60 (minutos); unos valores mínimos y máximos, en mi caso 0 y 240 (minutos) y finalmente el salto entre número y número, yo usaré 15 (minutos), nos quedaría algo como:
input_number: ... temporizador_cale: name: temporizador_cale initial: 60 min: 0 max: 240 step: 15 mode: slider ...
Grabamos el fichero y como siempre, reiniciamos Home Assistant para recargar la configuración recién añadida. Lo siguiente será crear las automatizaciones que necesitamos para dejar esto funcionando.
Primero crearemos una automatización que encienda la calefacción cuando manualmente pulsemos el booleano, las acciones que harán será publicar por MQTT el nuevo estado de esa entidad que hemos creado, así veremos que se ha encendido, además iniciaremos el timer y ejecutaremos la acción que encienda fisicamente la calefacción. En mi caso es un comando en shell que abre/cierra un relé enchufado en una Raspberry Pi al lado de la caldera. Esto cada uno lo que tenga 🙂
Crearemos otra automatización para cuando se acabe el tiempo que indicamos en el temporizador y queramos que se apague la calefacción. El desencadenante será cuando el timer haya finalizado. Luego por MQTT enviaremos que ya no está la cale encendida, por otro script le diré al relé que apague la calefacción y por los altavoces de casa mandará un sonidito y nos dirá que la calefacción se apagó.
La última automatización será para cuando nosotros cancelemos la cuenta atrás, esto es, si queremos apagar la calefacción antes de tiempo. La automatización mirará que el booleano fue a ‘off’; entonces parará la cuenta atrás del temporizador, enviará el topic por MQTT que la calefacción está apagada (actualizando el estado de la entidad) y finalmente, ejecutará el script que le dice al relé que apague la calefacción.
¡Recordar recargar las automatizaciones!
Para añadirlo en el interfaz Lovelace de Home Assistant, pues como siempre añadimos una tarjeta de entidades y añadimos cada elemento que hemos definido al principio en el fichero de configuración.
Y así quedaría el interfaz de Home Assistant, a la izquierda en modo normal, en reposo; y a la derecha una vez encendida la calefacción y a parte de su estado veremos el temporizador cómo corre hacía abajo.
Espero que os haya resultado de interés, y agradeceros que compartáis & esos likes en redes sociales!