Labels in Templates und Scripten verwenden (Home Assistant)

Labels in Templates
Shelly Plug S Smart Wifi Stecker
Shelly Plug S Smart Wifi Stecker
19,69 €

Mit dem April ’24 Update wurden Labels in Home Assistant eingeführt.
Natürlich ist es immer gut, neue Hilfsmittel für seine Strukturen zu erhalten. Aber die beste Gruppierung bringt einem nichts, wenn man sie nicht auch überall einsetzen kann.

Aus diesem Grund habe ich mir die Labels nicht nur in Automatisierungen angesehen (da lassen sich Labels ja direkt auswählen). Ich habe mir zusätzlich auch direkt einmal die Templates vorgenommen, da Ihr eure gruppierten Entitäten sicherlich auch in Template-Sensoren und Scripten einsetzen möchtet.

Beispiel Templates

Hier sind einige Beispiele, wie Ihr eure Labels in Templates verwenden könnt.


Alle Entitäten als Array/Liste abrufen, die ein bestimmtes Label tragen:

Der Befehl “label_entities” liefert alle Entitäten zu dem übergebenen Label als Array zurück. Im Beispiel also zum Label “High Power”. Wie für Home Assistant üblich sind die IDs vollständig klein geschrieben und Leertasten werden durch Unterstriche ersetzt.

{{ label_entities('high_power') }}

Alternativ:

Der folgende Code erzeugt ein identisches Array (ns.found) mit allen Entitäten, denen das Label “High Power” zugewiesen wurde.

{% set ns = namespace(found=[]) -%}
{%- for item in states | map(attribute='entity_id') | list if (labels(item) | contains('high_power')) -%}
{%- set ns.found = ns.found + [item] -%}
{%- endfor -%}
Entitäten aus High Power:
{{ns.found}}


Prüfen ob mindestens eine Entität des Labels eingeschaltet ist:

Mit dem folgenden Code wird geprüft, ob mindestens eine der Entitäten, denen das Label “High Power” zugeordnet ist, gerade eingeschaltet ist. Bei der Prüfung werden allerdings nur Entitäten berücksichtigt, die als Zustand auch on oder off zurückliefern. So werden z.B. Sensoren ausgeklammert, da Zahlenwerte hier ggf. stören würden. Natürlich lässt sich die Auswahl je nach Anwendungsfall auch nach belieben weiter einschränken.
Dieses Beispiel könnte z.B. als Grundlage für einen Binary-Sensor dienen.

{% set ns = namespace(found=false) -%}
{%- for item in label_entities('high_power') | list if states(item) in ('on','off') -%}
{{item}}
{%- if states(item)=="on" -%}
{%- set ns.found = true -%}
{%- endif -%}
{% endfor %}
Mindestens eine on/off Entität aktiv: {{ns.found}}


Prüfen ob alle Entitäten des Labels eingeschaltet sind:

Dieses Beispiel arbeitet fast identisch wie der Code davor. Allerdings wird hier geprüft, ob alle Entitäten mit dem Label “High Power” eingeschaltet sind.

{% set ns = namespace(found=true) -%}
{%- for item in label_entities('high_power') | list if states(item) in ('on','off') -%}
{{item}}
{%- if states(item)!="on" -%}
{%- set ns.found = false -%}
{%- endif -%}
{%- endfor %}
Alle on/off Entitäten aktiv: {{ns.found}}


Video

Alles was Du sonst über Labels und die neuen Kategorien in Home Assistant wissen musst, habe ich natürlich auch noch einmal in einem Video zusammengefasst. Da gehe ich am Ende auch noch einmal auf die hier gezeigten Templates ein.

YouTube

Mit dem Laden des Videos akzeptieren Sie die Datenschutzerklärung von YouTube.
Mehr erfahren

Video laden

https://youtu.be/a7CNMk0JH4Q






Solltet Ihr noch Fragen haben, schaut einfach auf unserem Discord vorbei. Dort kann euch sicher bei eurem Problem geholfen werden!
https://smarthomeyourself.de/discord

Falls Ihr noch mehr über Home Assistant wissen wollt, werft gerne auch einen Blick in meine Home Assistant Playlist auf YouTube:

Playlist:

https://www.youtube.com/watch?v=wZ1Qd0wDY8Y&list=PLtEjuZQyAkqHBqpF8Pg5hjqCMIht74OmS


Ansonsten findet Ihr jede Menge weiterer Informationen rund um Home Assistant in unserem Wiki: