ich habe viele Homematic IP Fetnster - bzw Türkontakte und möchte alle in einer Helfergruppe zufügen.
Wenn eine Helfergruppe das richtige Element ist?
Also wenn ein Kontakt offen (1) meldet soll die Gruppe true (1) sein.
Erst wenn alle Kontakte geschlossen sind (0) soll die Helfergruppe false (0) sein.
Die Helfergruppe will ich dann ein einer weiteren Automation weiterverwenden.
Hallo.
Ich habe auch sehr viele Fenster/Tür Sensoren. Gibt es eine Möglichkeit eine Helfergruppe zu erstellen die automatisch alle Fenster- und Türsensoren enthält?
So etwas habe ich bereits mit der “Auto Entity Card” umgesetzt um eben diese Karte nur anzuzeigen, wenn irgendein Fenster offen ist. Diese fragt über device_class nach “window” ab.
Ich würde gerne einen Helfer einschalten, wenn irgendein Fenster (oder auch mehrere) geöffnet sind.
Dann schalte ich damit z.B. ein Licht als Anzeige dafür, dass noch was offen ist. Was genau offen ist, sehe ich bereits sehr schön mit der Auto Identity Card am Tablet oder Samrtphone.
Ich will halt nicht in die Helfer Gruppe manuell alle (das sind mehr als 25) diese Entitäten eintragen.
ich habe dafür 2 Gruppen so wie oben und Fenster und Türen getrennt.
So viele neue Fenstersensoren kommen ja nicht dazu, dass man das unbedingt dynamisch machen muss. Hatte ich mir aber auch überlegt
Ja, dynamisch wäre mir immer lieber als “hard coded”. Auch habe ich schon erlebt, dass nach Updates die Entitäten umbenannt wurden (_2). Und das würde man dadurch schön vermeiden können.
Netter Nebeneffekt: Bei mir wird innerhalb der Auto Entity Card (die ja alle devices “door” filtert) auch angezeigt, wenn beim Backofen die Tür offen ist. Ist halt auch eine “door”
Du könntest dir einen Template-Helfer für einen Binary-Sensor anlegen und dort folgendes testen:
{% if (states.binary_sensor | selectattr('entity_id', 'search', '_contact') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% else %}
off
{% endif %}
Das durchsucht alle binary_sensor nach _contact und zählt die mit dem Status on. Wenn die Zahl größer 0 ist, wird der Sensor auf on gestellt und du könntest ihn so abfragen.
Vielen Dank! Habe es so mal 1:1 ausprobiert aber leider (noch) erfolglos. Wenn ein Fenster offen ist, bleibt der Helfer “off”.
Ich habe es mal so probiert: also der Gedanke war nach device_class window zu suchen. Funktioniert aber auch nicht. War wohl zu simpel gedacht von mir…
{% if (states.binary_sensor | selectattr('device_class', 'search', 'window') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% else %}
off
{% endif %}
device_class gibt es dort nicht. Versuche es so, wie ich geschrieben hatte. _contact muss allerdings in allen Sensoren vorkommen. Oder du nimmst was anderes, was überall vorkommt.
Perfekt! Jetzt hat es doch funktioniert. Siehe Code unten.
Und noch eine Frage: kann man in den Code auch noch zwei ODER Abfragen ergänzen? Geht sicher, aber wie ist die genaue Syntax? Ich bräuchte die ODER Verknüpfungen wie folgt. Mal in laienhafter Textform:
entity_id = “fenster” ODER entity_id = “ture” ODER entity_id = “tor”
{% if (states.binary_sensor | selectattr('entity_id', 'search', 'fenster') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% else %}
off
{% endif %}
Vielen Dank aber bereits für deine Hilfe mit dem Template-Helfer! Zeigt wieder mal wie cool dieses Forum und die Mitglieder sind!
Code sieht jetzt so aus. Noch ohne zusätzliche Else IFs.
Beim Öffnen eines Fensters geht er auf “on” (geöffnet). Bleibt aber eben in diesem Zustand auch nach Schließen des (einzigen) geöffneten Fensters.
{% if (states.binary_sensor | selectattr('entity_id', 'search', 'fenster') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% else %}
off
{% endif %}