Automatiza tu hogar con macros en Home Assistant: simplifica y reutiliza tus mejores templates.

¿Estás cansado de tener que configurar manualmente cada template en Home Assistant? ¿Te gustaría poder agrupar, parametrizar y reutilizar codigo? Si es así, ¡las macros son la solución que está buscando!

Con las macros, puede crear plantillas personalizadas que se pueden aplicar fácilmente a varias situaciones. Las macros pueden hacer que su hogar inteligente sea más organizado a la hora de configurarlo, y mucho mas facil de mantener.

Sigue leyendo para descubrir cómo puedes aprovechar al máximo las macros en Home Assistant.

PREPARAMOS LAS HERRAMIENTAS

Necesitaremos un editor para crear las macros. En principio la forma mas directa es utilizar File Editor desde Home Assistant, aunque tambien es perfectamente valido si susas un editor externo usando Samba.

Desde el menú Ajustes, elegiremos «Complementos«:

Si no lo tenemos ya, instalaremos File Editor:

Y lo iniciamos:

A continuacion, simplemente abrimos la Interface Web para poder crear y editar nuestros ficheros:

Si no la tenemos ya en nuestra estructura, tendremos que crear la carpeta con nombre «custom_templates» en el directorio config:

Como ejemplo, crearemos el fichero mensajes.jinja en esa carpeta que hemos creado:

Os debería quedar así:

NUESTRA PRIMERA MACRO

Este post no trata sobre el lengaje jinja2, por lo que usaremos un ejemplo muy sencillito. El lenguaje no es muy complicado, pero te sugiero que en vez de sumergirte en los detalles, te dejes llevar por ejemplos ideados por otros y adaptarlos a vuestras necesidades.

Por trabajar con algun ejemplo concreto, en ese fichero podemos poner el siguiente código:

{% macro estado_bateria(id) %}
{% if states(id)|int<20 %}
Reemplazar pila en {{id}}
{% endif %}
{% endmacro %}

La macro estara definida entre los delimitadores «macro» y «endmacro«, y logicamente tendremos que poner un nombre y los posibles argumentos de la funcion separados por coma si hay mas de uno.

Esta macro en concreto nos devolvera un aviso unicamente cuando el valor de bateria se encuentre por debajo del 20%.

Lo bonito de utilizar una macro es que el codigo nos va a servir para cualquier id del sensor que queramos.

Si no conoces el id, siempre puedes consultarlo por ejemplo en «Ajustes>Dispositivos y Servicios>Dispositivos»

PRUEBAS CON MACROS

A la hora de realizar pruebas, en teoria seria necesario reiniciar Home Assistant para que cargara el contenido de nuestros ficheros en la carpeta. Afortunadamente se puede usar el servicio «homeassistant.reload_custom_templates» para cargar todas nuestras macros sin necesidad de pasar por un reinicio:

Podemos probar nuestra nueva macro, antes de usarla, desde el mismo menu de «Herramientas para desarrolladores» pero ahora seleccionando la seccion de Plantillas e insertando la llamada a nuestra nueva macro. Recordad que siempre tendremos que usar el comando import:

Como veis, hemos usado un id valido cualquiera, y el resultado nos lo represente a la derecha.

CONCLUSIONES CON MACROS Y HOME ASSISTANT

Hemos visto como podemos crear una macro y usarla en cualquier momento. Muchas son las ventajas de usar este tipo de mejoras. Quizas la mayor de ellas es poder organizar y reutilizar a modo de paquetes todas nuestras macros.

La funcion import, nos permite cargar varias de esas macros al mismo tiempo, siempre que las separemos por «,».

Tambien es perfectamente posible tener varios ficheros .jinja en nuestra carpeta «custom_templates».

Por tanto, por favor, tenemos que ser organizados. Quizas un fichero mensajes.jinja para formatear todas aquellas salidas que queramos exponer como mensajes en Telegram, o directamente en nuestro frontend.

Si os apetece profundizar en temas de domotica y datos en general, no dejeis de visitar estas otras entradas: