Plantillas
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/]