Gruppieren von vielen Fenster/Türkontakte zu einem Helfer

Hallo,

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.

Oder kann ich das nur über node-red machen?
Danke

Das geht über Helfer → Gruppe → binary_sensor


Sobald ein Fenster offen ist, ist der Sensor an.

OK, Danke für die Infos.

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.

Also ich suche nach einer Möglichkeit alle Fenster/Tür Sensoren “automatisch” in einer Helfergruppe aufzunehmen.

Vielen Dank!

Ich wüsste auf Anhieb nicht wie.

Aber mal anders gefragt. Wofür brauchst du das? Ggf. gibt es andere Möglichkeiten.

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. :slight_smile:

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 :wink:

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” :slight_smile: :slight_smile:

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.

1 „Gefällt mir“

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!

Mit elif kannst du weiteres abfragen und ganz zum Schluss der else.

{% if (states.binary_sensor | selectattr('entity_id', 'search', 'fenster') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% elif (states.binary_sensor | selectattr('entity_id', 'search', 'tur') | selectattr('state', 'eq', 'on') | list | count) > 0 %}
on
{% else %}
off
{% endif %}

So, jetzt geht der Helfer zwar wenn ein Fenster offen ist auf “on” aber wenn wieder alle zu sind bleibt er auf “on”.
Was übersehe ich hier?

Schau mal ob wirklich alle Sensoren off sind. Teste den Code mal in den Entwicklerwerkzeugen.

Wie sieht dein Code jetzt aus?

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 %}

Hast du das mal gemacht?

Hast du noch mehr binary_sensor, die fenster in der id haben?