Hallo zusammen,
in meiner Küche gibt es nur zwei Lampen, da kann ich damit leben die Lampen einzeln in der Mushroom Card hinzuzufügen:
{% if is_state('light.unterbaulampen', 'on') or is_state('light.shelly_kueche_kugel', 'on')%}
orange
{% endif %}
“Leider” habe ich im Wohnzimmer und in den anderen Räumen noch viele Lampen mehr. Ich hatte nun versucht, nicht mehr die einzelnen States zu nutzen, sondern die area_id:
{% if states.light | selectattr('area_id', 'eq', 'Wohnzimmer') | selectattr('state', 'eq', 'on') | list | count > 0 %}
orange
{% endif %}
Leider scheine ich hier irgendwo einen Knoten zu haben und stehe derzeit auf dem Schlauch und würde gerne um eure Hilfe bitten.
Grüße
Hi, bis sich jemand findet der den eigentlich besseren obigen Ansatz vollendet, versuche es hiermit:
{% set area_name = 'Wohnzimmer' %}
{% set ns = namespace(light_counter=0) %}
{% set area_lights = area_entities(area_name) | select('search', 'light.') | list %}
{% for light in area_lights -%}
{% if states[light].state == 'on' -%}
{# {{ light }}: {{ states[light].state }} #}
{% set ns.light_counter = ns.light_counter + 1 -%}
{% endif -%}
{% endfor -%}
{% if ns.light_counter > 0 %}
orange
{% endif %}
Läuft sehr gut. Der Code muss nicht unbedingt kurz sein, hauptsache er funktioniert. Danke dir für deine schnelle und sehr gute Hilfe!
Bacardi
2. September 2024 um 09:41
4
Hi
Du hast zwar oberes Iterieren von mir als Lösung gekennzeichnet (und es geht ja auch) aber ich gebe besseren Code immer den Vorzug.
Im Post https://community.simon42.com/t/alle-lichter-einer-etage-zaehlen/31359/3 hat @Osorkon diesen geliefert und übertragen auf Deinen Fall lautet der:
{%
if expand(area_entities('Wohnzimmer'))
| selectattr('domain', 'eq', 'light')
| selectattr('state', 'eq', 'on')
| list
| count > 0
%}
orange
{% endif %}
Viel Spaß!
Danke, habe ich noch angepasst.