Benachrichtigungen wenn Kontaktsensoren länger als X geöffnet sind

Hallo @simon42, sehr informative YouTube-Videos, fehlerlose Doku und Code-Snippets in deinem Blog. Danke für deine Mühen und weiter so!!

Hallo Community,

ich migriere in den nächsten Tagen, nach und nach, alle meine Z-Wave- und Zigbee-Geräte, ca. 90 Stück, von ioBroker zu Home Assistent (HAOS mit Proxmox).

In ioBroker habe ich ein Skript, welches alle meine Kontaktsensoren überwacht und wenn diese 30, 60, 120, 240 Minuten, etc. geöffnet sind eine Erinnerung / Nachricht bei Telegram verschickt.

Telegram ist aufgrund der tollen iOS- bzw. Android-App ja nicht notwendig.

Hat jemand von euch ähnliche Sachen bereits realisiert?

Ich stelle mir vor, das ich alle Kontaktsensoren in eine Gruppe hinzufüge oder mit einem Label versehe, diese Gruppe / Label dann über Automation alle Gerät überwacht und wenn ein Kontaktsensor in der Gruppe / Label länger als X geöffnet ist, eine Benachrichtigung an die Geräte mit der HA-App schickt.

In der Benachrichtigung sollte dann natürlich auch den Name das Gerätes und die Zeit die der Kontaktsensor geöffnet ist stehen.

“Der Kontaktsensor Fenster Kinderzimmer Finn ist seit 30 Minuten geöffnet. Bitte schließen.”

Natürlich muss die Automation dann auch zeitgleich mit mehreren geöffneten Sensoren umgehen können. Also wenn das Fenster Kinderzimmer Felix zum Zeitpunkt der oberen Benachrichtigung 28 Minuten geöffnet ist, muss 2 Minuten später, die nächste Benachrichtigung, aber halt für das Kinderzimmer Felix verschickt werden.

Sieht man eigentlich irgendwo eine Historie der letzten Benachrichtigungen?

Viele Grüße
Nico

1 „Gefällt mir“

Hier kannst Du auch einfach die Alert Integration verwenden.

Gruß
Osorkon

Hi Osorkon,

danke. Ich hätte mich natürlich über etwas mehr Details gefreut. In diesem Fall müsste ich ja für 20 Kontaktsensoren ein “Alert” in der configuration.yaml anlegen. Des Weiteren kann man sich nicht die Minuten in der Benachrichtigung ausgeben lassen. Hätte gedacht, dass das einfacher gehen müsste.

Vielleicht hat noch jemand aus der Community einen besseren Tipp.

Gruß

Hi ich suche das gleiche

Hast Du einfach mal im Forum danach gesucht, um es Dir dann Stück für Stück zusammenzubauen?

Entsprechende bzw. ähnliche Fragen und Lösungen gab es hier bereits des Öfteren. So wirkt es, als würdest Du erwarten, dass Dir jemand anders die gesamte Lösung fertig präsentiert.

p.s. Simon direkt zu verlinken, wird Dir keine schnelleren Antworten liefern. :wink: Es ist eine Community, kein Support-Service.

Du setzt alle deine Sensoren in eine Gruppe und fragst dann im Trigger ab, ob die Gruppe für x Minuten off war. Als Aktion dann Notify xyz.

Falls Du wirklich mit Labeln und nicht Gruppen arbeiten willst, hier 2 Code Schnipsel, die Dir helfen können.

{{ (expand(label_entities('@DeinLabel'))
| selectattr('state', 'equalto', 'on')
| list
| count > 0) | bool }}

ergibt TRUE wenn eines der Entities den Status ‘on’ hat und kann somit als Template Trigger dienen

{{ expand(label_entities('@DeinLabel'))
| selectattr('state', 'equalto', 'on')
| map(attribute='entity_id')
| list
}}

Damit Du zum Debuggen sehen kannst was auf ON ist.

Als Einsteiger würde ich aber immer den Weg über eine Gruppe wählen da weniger Fehler anfällig.

Gutes Gelingen

1 „Gefällt mir“

Du kannst auch alle 20 Kontaktsensoren als “Auslöser” in eine Automation packen (als Liste) und dazu die gewünschte Zeit eingeben - also z.B. 60 min. Wenn einer der Sensoren mehr als 60 min offen ist, erfolgt die Benachrichtigung. In der Benachrichtigungstext kannst du etwas Template Code eingeben um den Namen des Sensors, der ausgelöst hat in der Meldung zu sehen. Die 60 min kannst du als Text in der Meldung eingeben. In diesem Fall brauchst du eine Automation pro Zeitpunkt - also z.B. für 30 min, 60 min, 90 min jeweils eine Automation. Wenn du die erste Automation angelegt hast, kannst du über die Kopier-funktion einfach die nächste Automation anlegen und brauchst jeweils nur die Zeit für den Offenstatus zu ändern. So etwas sollte auch für Anfänger möglich sein.
Ich selbst nutze eine solche Automation für alle Fenster, die nach Sonnenuntergang noch offen stehen. In diesem Fall benötigt man sogar nur eine Automation, da der Startpunkt (Sonnenuntergang) für alle Fenster gleich ist.

Ich nutze dafür übrigens nicht die configuration.yaml sondern den visuellen Editor. Nur im Fall der notification mit code für den Namen des Sensors musst du dann genau diesen Teil als “yaml” bearbeiten.

Anbei der Link zu meinem Beispiel als Anregung für die eigene Umsetzung
https://www.it-und-hausautomation-blog.de/offene-fenster-im-blick/

Danke für die vielen Antworten. Nach ca. 2 Wochen mit Home Assistant haben sich die ein oder anderen Fragezeichen geklärt.

@sirector Ich denke, dass man mit einer Gruppe, das Problem nicht so lösen kann, da man die Benachrichtigung nicht auf die Entität runterbrechen kann. Sondern nur sagen könnte: “Es ist noch ein Kontaktsensor / Fenster geöffnet”. Darüber hinaus wäre das Problem mit einer Gruppe, dass diese immer “Zusammen” gezählt werden, wenn ein Fenster offen ist, ist die ganze Gruppe offen bzw. erst wenn alle Fenster offen sind - je nachdem wie man die Einstellungen beim Anlegen der Gruppe trifft.

@Bacardi Das ist auf jeden fall für zukünftige Umsetzungen hilfreich, dass man die Gruppe auch “expanden” kann. Das widerspricht meiner Antwort an @sirector etwas. Danke :slight_smile:

@bellini Danke! Das ist auch nicht schlecht und ohne große Tricksereien!! Gefällt mir.

@tarag Keiner soll mir eine Lösung fertig präsentieren! Ich brauchte nur ein paar Hinweise als Neuling von Home Assistant.
Simon habe ich nur verlinkt, weil ich mich im ERSTEN Post in der Community für seine Videos bedanken wollte - nicht weil ich von ihm eine Antwort erwartet habe.


Wie habe ich es nun gelöst?

Für kritischere Kontakte, wie Haustür oder Garagentor, habe ich es über die Alerts gelöst:

haustur_flur_eg_sensor_state_door_window:
  name: Haustür (Z-Wave)
  entity_id: binary_sensor.haustur_flur_eg_sensor_state_door_window
  message: "Achtung, die Haustür (Z-Wave-Türkontakt) ist noch geöffnet ..."
  done_message: "Danke! Haustür (Z-Wave-Türkontakt) ist nun wieder geschlossen."
  state: "on"
  repeat: 5
  can_acknowledge: true
  skip_first: true
  notifiers:
    - erwachsene

schloss_haustur_door_sensor:
  name: Haustür (Nuki)
  entity_id: binary_sensor.schloss_haustur_door_sensor
  message: "Achtung, die Haustür (Nuki-Türkontakt) ist noch geöffnet ..."
  done_message: "Danke! Haustür (Nuki-Türkontakt) ist nun wieder geschlossen."
  state: "on"
  repeat: 5
  can_acknowledge: true
  skip_first: true
  notifiers:
    - erwachsene

garagentorkontakt_garage_sensor_state_door_window:
  name: Garagentor
  entity_id: binary_sensor.garagentorkontakt_garage_sensor_state_door_window
  message: "Das Garagentor ist noch geöffnet ..."
  done_message: "Danke! Das Garagentor ist nun wieder geschlossen."
  state: "on"
  repeat:
    - 15
    - 30
    - 60
    - 120
    - 240
    - 480
    - 960
  can_acknowledge: true
  skip_first: true
  notifiers:
    - erwachsene

erwachsene ist eine notify group

notify:
  - name: Erwachsene
    platform: group
    services:
      - service: mobile_app_nico
      - service: mobile_app_frida

Für die anderen Kontaktsensoren in den Wohnräumen, habe ich die Benachrichtigung an die Raumtemperatur geknüpft. Hatte ich bisher bei ioBroker nicht so, war nervig, weil ich auch im Sommer nach 30 Minuten eine Benachrichtigung kam.

Viele Grüße

Schönes Feedback. Wünschte mir das gebe es öfters