Hallo Leute,
heute möchte ich mit euch teilen, was mir gerade gelungen ist und was evtl. jemanden von euch interessieren könnte.
In meinem Dashboard habe ich viele Karten, auf denen alles Mögliche eingestellt werden kann - so wie jeder von euch.
Oft gibt es aber auch Geräte und/oder Entitäten, die nirgendwo explizit bedienbar sind. Bei mir sind das z.B. Steckdosen, an denen mehrere Lampen hängen die nur per “Ambient Licht Wohnzimmer” geschaltet werden. Oder es gibt Entitäten, die nicht geschaltet werden sollen, wie z.B. Zwischensteckdosen an Waschmaschine etc. , die nur der Leistungsmessung dienen.
Ich habe mir überlegt, auf einer Seite per Dropdown auswählbar, solche “zusammengehörigen” Geräte in einer auto-entities-card anzuzeigen.
Dazu habe ich allen Geräten (Steckdosen, Schalter etc.) beschreibende Labels gegeben, die bestimmte Tokens enthalten. Alle Geräte, die bei mir Lichter schalten können erhalten ein Label, in dem entweder “licht” oder “lampe” vorkommt.
Meine auto-entities sieht dann so aus:
type: custom:auto-entities
card:
type: entities
title: Lichter schalten
filter:
template: >-
{% set tokens = ['licht', 'lampe'] %}
{% set matching_labels = labels() | select('search', tokens | join('|')) | list %}
{% set devices = matching_labels | map('label_devices') | sum(start=[]) | list %}
{% set entities = devices | map('device_entities') | sum(start=[]) | list %}
{% set filtered_entities = entities | select('match', '^switch\.(?!.*_vch[0-9]+).*') | list %}
[{% for entity in filtered_entities %}
{"entity": "{{ entity }}", "name": "{{ label_name(labels(device_id(entity))[0]) }}"}{% if not loop.last %}, {% endif %}
{% endfor %}]
Wie ihr seht, sind alle Entitäten, mit denen man ein Licht schalten kann, aufgeführt und haben die Beschreibung, die ich dem Gerät als Label hinzugefügt hatte.
Es widerstrebte mir, die Steckdosen mit “Lichterkette xyz” zu benennen, insbesondere, weil ich sie auch gerne mal wo anders einsetzen möchte, ohne die ganze UI neu schreiben zu müssen.
Im Moment sind die Tokens noch fest vorgegeben. Es ist meine Absicht, das so zu erweitern, dass ich in einem Select “Lichter”, “Rollläden”, “…” auswählen kann und mir ein Sensor die Liste der dazugehörigen Tokens liefert.
Das sollte hinreichend flexibel für eine große Zahl von Anwendungsfällen sein.
Leider ist es mir noch nicht gelungen, die den Labels zugeordneten Icons zu extrahieren. Sonst könnten Lichterketten, Stehlampen etc. auch die richtigen Icons anzeigen.
Bin mal gespannt, wie ihr das evtl. für eigene Zwecke nutzen könnt. Würde mich über Feedback freuen.