Geräte mit ihrem Bereich ausgeben

Hallo,

aktuell gebe ich alle eingeschalteten Steckdosen mit der Befehlskette

{{ expand('switch.steckdosen')|selectattr('state','eq','on')|map(attribute='name')|sort|list|join('<br>') }}

aus. Jetzt möchte ich aber zusätzlich zum Gerätename auch noch den Bereich mit ausgeben.
Wer kann helfen?

ich glaube mit map bekommst du nicht beide Infos, dann eher so:

{% for s in expand('switch.steckdosen')|selectattr('state','eq','on')|sort(attribute='name') %}
  {{ s.name }} - {{ state_attr('area.' ~ s.attributes.area_id, 'name') }}
{% endfor %}

Fragst Du nur die eine Entität ab switch.steckdosen

Oder sollen es alle Entitäten die mit steckdosen anfangen?
Also switch.stwckdosen*

Dann z.B. so:


{% for s in states.switch
   | selectattr('entity_id', 'match', '^switch\\.steckdosen')
   | selectattr('state', 'eq', 'on')
   | sort(attribute='entity_id') %}
- {{ s.name }} –> {{ area_name(s.entity_id) }}
{% endfor %}

Gruß Osorkon

Hallo zusammen,

aktuell funktioniert beides nicht.

@maxe es gibt kein state_attr(‘area’)
@Osorkon es sollen alle Steckdosen ausgegeben werden, die an sind, also switch.steckdosen*

{% if states('sensor.steckdosen_ein') > "0" %}  
  Folgende Steckdosen sind eingeschaltet:

  {% for s in states.switch
   | selectattr('entity_id', 'match', 'switch.steckdosen')
   | selectattr('state', 'eq', 'on')
   | sort(attribute='entity_id') %}
- {{ s.name }} –> {{ area_name(s.entity_id) }}


{% endfor %}
{% else %} 
  Alle Steckdosen sind aus. 
{% endif %}

liefert:


Ergebnistyp: string

Folgende Steckdosen sind eingeschaltet:

  
- Steckdosen –> None

Dieses Template abonniert die folgenden Ereignisse zu Zustandsänderungen:

    Domain: switch
    Entität: sensor.steckdosen_ein

Mein aktuelles Ergebnis ohne Bereich sieht so aus:

Folgende Steckdosen sind eingeschaltet:

Sonos Arc
Subwoofer

Jetzt soll einfach noch der Bereichsname davor, nachdem auch noch sortiert sein soll.

Vielleicht lohnt es sich aber auch noch zu warten, da laut SIMON42 ja noch neue Auttribute (z.B. für den Bereich) kommen sollen.

Heißen bei Dir die zu überwachend Switch Entitäten auch alle switch.steckdosen* oder möchtest Du alle Switches überwachen?


{% for s in states.switch
   | selectattr('state', 'eq', 'on')
   | sort(attribute='entity_id') %}
- {{ s.name }} –-> {{ area_name(s.entity_id) }}
{% endfor %}

Gruß Osorkon

Die heißen alle unterschiedlich. “switch.steckdosen” ist eine Gruppe.

Sag das doch gleich. :grinning_face:


{% set members = state_attr('switch.steckdosen', 'group_entities') or [] %}
{% for s in expand(members)
   | selectattr('state', 'eq', 'on')
   | sort(attribute='name') %}
- {{ s.name }} –> {{ area_name(s.entity_id) or 'Kein Raum zugewiesen' }}
{% endfor %}


Gruß Osorkon

Leider ohne Ergebnis :face_with_peeking_eye:

Ergebnis
Ergebnistyp: string

Dieses Template abonniert die folgenden Ereignisse zu Zustandsänderungen:

    Entität: switch.steckdosen


Aber so geht es :grinning_face:

{% for s in expand('switch.steckdosen')
   | selectattr('state', 'eq', 'on')
   | sort(attribute='name') %}
- {{ s.name }} –> {{ area_name(s.entity_id) or 'Kein Raum zugewiesen' }}
{% endfor %}

Danke für die Tipps.

Als erster Zwischenschritt ist das schon einmal sehr gut. Was mir noch fehlt, ist die 1. Sortierung nach “Bereich” und eine bessere Formatierung, sodass alle Bereiche untereinander stehen.

Folgende Steckdosen sind eingeschaltet:

    Sonos Arc –> Wohnzimmer

    Steckdose HM Funksteckdose Bad –> Bad

    Subwoofer –> Wohnzimmer

Zumindest die Formatierung wäre hilfreich.