Device Class eine Gruppe auslesen

Bolschi

Member
Hi, ich benötige mal wieder eure Hilfe. Ich möchte aus einer erstellten Gruppe (binary_sensor.gruppeallefensterkontakte) alle die anzeigen lassen welche aus dieser Gruppe den Status "on" haben.
Ich komme mal wieder nicht mit dem Syntax klar.
Ich bekomme hier einen Template Error. Das mit den geschweiften und eckigen Klammern macht mit Probleme
YAML:
type: custom:button-card
entity: binary_sensor.gruppeallefensterkontakte
secondary_info: last-changed
friendly_name: true
state_color: true
show_state: false
color_type: card
name: |
  [[[
    {{ states.binary_sensor.gruppeallefensterkontakte | selectattr('attributes.device_class', 'eq', 'door')
    | selectattr('state', 'eq', 'on') | list | count }}
  ]]]

Könnt ihr mir Helfen?
Danke!
 
Mal versucht, den Bereich in den geschweiften Klammern (inklusive dieser) in den Entwicklerwerkzeugen auszutesten? Das scheint so auf die Art nicht so wirklich...

Wenn ich ähnliches nachstelle - einen binary_sensor Gruppe mit drei binären Sensoren, davon zwei on, einer off:
1676372147265.png
funktioniert etwas in dieser Art:
YAML:
{{ expand('binary_sensor.bin_group') | selectattr("state", 'eq', 'on') | join(', ', attribute="attributes.friendly_name") }}
1676372170923.png
 
Als template sollte das doch gehen
YAML:
{{ states | selectattr('state', 'in', ['on']) | map(attribute='entity_id') | list | join(', ') }}
 
Perfekt hat als Template funktioniert.
YAML:
      - name: "Fensterkontakte Gruppe Splitten"
        unique_id: "fensterkontakesplitten"
        state: >
            {{ expand('binary_sensor.allefensterkontakte') | selectattr("state", 'eq', 'on') | join(', ', attribute="attributes.friendly_name") }}
Noch eine kurze Frage. Jetzt bekomme ich das Ganze wie folgt ausgegeben:
Fensterkontakt Bad, Fensterkontakt Wohnen, Fensterkontakt Küche
Ist es möglich die Ausgabe so zu gestalten, dass nach jeden Komma ein Zeilenumbruch gesetzt wird?
Also:
Fensterkontakt Bad
Fensterkontakt Wohnen
Fensterkontakt Küche

Danke!!!
 
Nicht getestet könnte aber mit \n funktionieren dies definiert einen Zeilenumbruch

join(', \n ', attribute="attributes.friendly_name")
 
YAML:
      - name: "Fensterkontakte Gruppe Splitten"
        unique_id: "fensterkontakesplitten"
        state: >
            {{ expand('binary_sensor.allefensterkontakte') | selectattr("state", 'eq', 'on') | join('\n', attribute="attributes.friendly_name") }}
 
mhh habe alles ausprobiert. Die Ausgabe ist immer hintereinander. Vielleicht sollte ich das direkt auf meiner custom:button-card erst auf spllitten (nach dem Komma). Im Moment lasse ich mir den Wert aus dem Template in meiner Karte so ausgeben:
YAML:
  label: |
    [[[
      var fenster = states['sensor.fensterkontakte_gruppe_splitten'].state;
      if (fenster!= "") return fenster;
  
    ]]]
 
Super mit <br> geht es wunderbar! Letzte Frage. Im Moment werden damit die Zustände "on" ausgelesen.
Ich habe nun eine Gruppe mit Thermostaten deren Zustände ja nicht on oder off sein kann sondern nummerisch.
Wo muss ich diese Formel ändern, damit er Alle mit Zustand > als 4 ausgibt?

YAML:
expand('binary_sensor.allefensterkontakte') | selectattr("state", 'eq', 'on') | join('<br> ', attribute="attributes.friendly_name") }}

Danke Nochmals!
 
Reine Vermutung, nicht getestet:
YAML:
expand('binary_sensor.allefensterkontakte') | selectattr("state", '>', '4') | join('<br> ', attribute="attributes.friendly_name") }}
Kann auch sein, dass die 4 ohne Anführungszeichen stehen und / oder state noch nach int konvertiert werden muss.
 
thats it! Danke!
Code:
expand('binary_sensor.allefensterkontakte') | selectattr("state", '>', '4') | join('<br> ', attribute="attributes.friendly_name") }}
 
Sehr schön. Ich möchte aber sicherheitshalber anmerken, dass Du damit eventuell nochmal in Probleme läufst, wenn Werte zweistellig werden, denn in Javascript ist '4' < '9' wahr, '4' < '11' hingegen falsch - während 4 < 11 wieder wahr ist. Der Unterschied zwischen dem Vergleich von Strings und dem von Zahlen, kommt drauf an, wie die Programmierung von custom:button-card das verarbeitet. Deshalb mein Vermerk mit den Anführungsstrichen / dem konvertieren nach int.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
4.672
Beiträge
47.689
Mitglieder
4.315
Neuestes Mitglied
CRiedel
Zurück
Oben