Las plantillas o templates son una gran herramienta a la hora de personalizar la visualización de datos en Home Assistant. Con ellas, se pueden visualizar rápidamente resultados de operaciones llevadas a cabo que se implementen en las automatizaciones. El editor de plantillas en Home Assistant lo encontraremos en las Herramientas de Desarrollador (Developer Tools). Desde ahí, la ventana de Estados (States) nos servirá para identificar más fácilmente las IDs de los diferentes sensores o dispositivos, además de los atributos que poseen. Existe la posibilidad de buscar el que necesitemos, filtrándolo de la lista.

Por ejemplo, si escribimos este código en el editor de la ventana de Templates:


Podremos ver en la parte derecha qué resultado obtenemos:

Podemos observar los eventos que escucha la plantilla creada y, encima, la salida que se obtiene. Aunque sea de tipo ''string'', el código hace operaciones con números decimales ''float''. Una vista más didáctica de esto:

Al escribir: {{states.sensor.tasmota_mhz19b_carbondioxide.state}} , estamos llamando al estado del sensor MHZ19B Integrado con Tasmota y lo imprimimos como una cadena (string) de caracteres. Sin embargo, para poder hallar la diferencia, debemos pasarlo a decimal (float, punto flotante), y así operar con él. Para pasarlo a decimal, se escribe |float tras la llamada al estado. Para hallar la diferencia, simplemente los restamos: {{states.sensor.tasmota_bme680_temperature.state |float - states.sensor.tasmota_bme680_temperature_2.state |float}}. Obsérvese que, todo lo que queramos que sea llamado desde un sensor o cualquier otra entidad, debemos escribirlo entre ''{{ }}''. Para los condicionales y otras operaciones lógicas, escribiremos entre "{% %}".

Los dispositivos se representan con entidades. Estas entidades poseen:

  • ID.
  • Nombre.
  • Icono.
  • Estado.
  • Atributos.

Como se observa en la imagen, obtenida directamente de Home Assistant, se han filtrado las entidades que contengan ''tasmota'' en su designación. En las siguientes columnas, pueden visualizarse los Estados y los Atributos que estén asignados a esa Entidad.

Las plantillas se renderizan usando el motor Jinja2. Es un motor para plantillas desarrollado en Python.

[API: https://jinja.palletsprojects.com/en/3.1.x/]

[Diseño de plantillas: https://jinja.palletsprojects.com/en/3.1.x/templates/]