Fenster offen Nachricht erstellen

Hallo,

ich möchte eine Automation erstellen, welche mich nach 5 Minuten erinnert, dass ein Fenster noch offen ist und nach weiteren 10 erinnert, dass es immer noch offen ist, wenn es zwischenzeitlich noch nicht geschlossen wurde.

Es soll mir nach Ablauf der jeweiligen Zeit, eine Pushover-Nachricht auf mein Handy geschickt werden.

Zusätzlich soll nach den genannten 10 Minuten eine Nachricht als Sprachausgabe über mein Tablet ausgegeben werden (mit “Benachrichtigungsmeldung senden”)

Bei den Benachrichtigungen soll auch das jeweils betroffene Fenster mit angegeben/angesagt werden.

Ist dies mit einer Automation möglich und könnte mir bitte hierbei jemand helfen?

Vielen Dank

Grüße

Ruggy

Klar ist das möglich. Was hast Du den schon versucht selbst umzusetzen und womit hast Du evtl. Probleme?

Warum frag ich das? Weil sich Dein Beitrag ein kleines bisschen so liest: dass sind meine Anforderungen, bitte einmal Automation erstellen. Bitte nicht falsch verstehen :wink:

1 „Gefällt mir“

Ich habe es versucht bzw. mir schon darüber gedanken gemacht, scheitere aber dann u.a. an folgenden Sachen oder ich “Stehe derzeit auf dem Schlauch”.

Muß ich für jedes Fenster eine Automation machen oder kann ich es in eine Automation packen?

Wenn nämlich (bei einer Automation) z.B. das Küchenfenster geöffnet wird läuft der Timer, wenn dann das Badfenster geöffnet wird, würde ja für beide der Timer wieder von vorne beginnen und das Küchenfenster wäre zu lange offen?

Wie kann bei der Meldung das entsprechende Fenster automatisch mit genannt werden?
Bei meinem Beispiel habe ich nämlich das Fenster “händisch” in die Nachricht geschrieben.

Folgendes habe ich derzeit:

alias: Fenster offen Meldung
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 15
      seconds: 0
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: Küchenfenster ist offen
    target:
      device_id: bbf8ace29d973acbdc27a7b1b98e45bc
  - action: notify.pushover
    metadata: {}
    data:
      message: Küchenfenster ist offen
mode: single

Ich habe das mit HELFER/GRUPPEN gelöst. Alle Fenster in eine GRUPPE und wenn nur eines offen ist, steht die Gruppe auf “offen”.

Hier meine Kameras.

2025-11-27 10-06-43

Das BADGE wird erst sichtbar, wenn die Gruppe unter 50% liegt. Wenn man dann auf das Badge klickt, sieht es so aus. Für mich die einfachste Lösung.

1 „Gefällt mir“

Würde aber dann der Timer nicht wieder von vorne beginnen, wenn ein weiteres Fenster geöffnet wird?

Eine Möglichkeit, Du fügst alle relevanten Fenster als Auslöser auf:

Mit diesem Template im Nachrichten Text, wird der Raum ausgegeben.


      message: >
        Draußen ist es kalt 🥶 und das {{ area_name(trigger.entity_id) }}
        Fenster steht seit 15 Minuten 

Hast aber den Nachtteil, dass wenn ein zweites Fenster aufgemacht wird, Du die Gruppe nicht mehr als Auslöser verwenden kannst.

Gruß Osorkon

1 „Gefällt mir“

Kommt halt auf den Anspruch an. Für mich ist es die beste / einfachste Lösung.

Mein Entitäts-Badge:

type: entity
show_name: false
show_state: true
show_icon: true
entity: sensor.gruppe_kamera
visibility:
  - condition: numeric_state
    entity: sensor.gruppe_kamera
    below: 50
icon: mdi:battery-charging-wireless-50

Sehr einfach…

1 „Gefällt mir“

Nein, musst Du nicht.

Schau Dir mal die Run Modes von Automationen an:

Auch das geht, z.B. mit. {{ trigger.to_state.name }} im Nachrichtenteil.

action: notify.mobile_app_xxx
metadata: {}
data:
  message: >-
    {{ trigger.to_state.name }}, whatever you want to notify about
  title: ⚠️ Some title
1 „Gefällt mir“

Ich füge alle entsprechenden Fenster in eine Automation?
Habe ich das richtig verstanden und die Zustände der Fenster arbeiten dann unabhängig voneinander?

So?
Aber wie erstelle ich eine andere Meldung, welche nach 15 Minuten “immer noch offen” meldet und zustätlich die Ausgabe am Tablet?

alias: Fenster offen Meldung
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 15
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.bad_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.bad_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 15
      seconds: 0
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: Das {{ area_name(trigger.entity_id) }} ist offen.
    target:
      device_id: bbf8ace29d973acbdc27a7b1b98e45bc
    enabled: true
  - action: notify.pushover
    metadata: {}
    data:
      message: Das {{ area_name(trigger.entity_id) }} ist offen.
mode: single

Geht auch eleganter

{{
  states.binary_sensor
  | selectattr('attributes.device_class', 'eq', 'window')
  | selectattr('state', 'eq', 'on')
  | map(attribute='name')
  | list
}}

Das z.B. in einen Template Trigger verpacken

2 „Gefällt mir“

Das mit dem Template funktioniert nicht. Was habe ich falsch gemacht.

Habe das ‘window’ auch versuchsweise in ‘door’ geändert, weil es nicht funktioniert.
Aber es hat sich trotzdem nichts geändert.

Wenn ich mir in den Entwickleroptionen nämlich die Entitätszustände ansehe steht dort beim Fenstersensor bei manchen device_class: door und bei manchen device_class: window

Oder hat dies nichts damit zu tun?

alias: Fensteroffen Version 2
description: ""
triggers:
  - trigger: template
    value_template: |-
      {{
        states.binary_sensor
        | selectattr('attributes.device_class', 'eq', 'door')
        | selectattr('state', 'eq', 'on')
        | map(attribute='name')
        | list
      }}
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - trigger: template
    value_template: |-
      {{
        states.binary_sensor
        | selectattr('attributes.device_class', 'eq', 'door')
        | selectattr('state', 'eq', 'on')
        | map(attribute='name')
        | list
      }}
    for:
      hours: 0
      minutes: 0
      seconds: 10
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: Das {{ area_name(trigger.entity_id) }} ist offen.
    target:
      device_id: bbf8ace29d973acbdc27a7b1b98e45bc
    enabled: false
  - action: notify.pushover
    metadata: {}
    data:
      message: Das Fenster in der {{ area_name(trigger.entity_id) }} ist offen.
mode: single

Hier ein Bsp. Jedes Fenster als Auslöser für 5 min und 10. sowie ein Template für die Nachricht mit Ausgabe des Raums und der id, also 5min oder 10 min.


alias: Fenster offen Meldung
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.fenster_1
    from:
      - "off"
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: "5"
  - trigger: state
    entity_id:
      - binary_sensor.fenster_1
    from:
      - "off"
      - "on"
    for:
      hours: 0
      minutes: 10
      seconds: 0
    id: "10"
  - trigger: state
    entity_id:
      - binary_sensor.fenster_2
    from:
      - "off"
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: "5"
  - trigger: state
    entity_id:
      - binary_sensor.fenster_2
    from:
      - "off"
      - "on"
    for:
      hours: 0
      minutes: 10
      seconds: 0
    id: "10"
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: >-
        Im {{ area_name(trigger.entity_id) }} steht das Fesnter seit {{
        trigger.id }} Minuten offen.
    target:
      entity_id: notify.telegram_xyz
mode: queued
max: 5

Gruß Osorkon

1 „Gefällt mir“

@Osorkon

Bei diesem Beispiel muss ich dann für jedes Fenster einen Auslöser (bzw. zwei 5 und 10 Minuten) anlegen?
(Wäre jetzt auch nicht das Problem)

Das “i-Tüpfelchen” wäre jetzt, wenn nach den 10 Minuten eine andere Meldung (ist immer noch offen) kommen würde.

Ist dies leicht umsetzbar bzw. was müsste ich hier noch angeben?
Ist dies auch mit dem visuellen Editor möglich oder nur über YAML?

Dann nimmst Du als Aktion den Baustein Auswählen
Option 1: Bedingung Auslöser: 5
Aktion 1

Option 2: Bedingung: Auslöser: 10
Aktion 2

Gruß Osorkon

1 „Gefällt mir“

Alles klar.

Danke euch. Werde es dann mal umsetzen und ne Zeit lang testen.

Update:
Grundsätzlich funktioniert es. Die Zeitangabe funktioniert aber anscheinend nicht richtig.

Zum Testen hab ich das Badfenster mit 5 und 10 Sekunden konfiguriert.

Nach 5 Sekunden kommt aber die Meldung, dass es seit 2 Minuten offen ist und nach 10 Sekunden, dass es seit 3 Minuten offen ist.

alias: Fenster offen Meldung
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - trigger: state
    entity_id:
      - binary_sensor.kuche_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 10
  - trigger: state
    entity_id:
      - binary_sensor.bad_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 5
  - trigger: state
    entity_id:
      - binary_sensor.bad_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 0
      seconds: 10
  - trigger: state
    entity_id:
      - binary_sensor.kinderzimmer_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.kinderzimmer_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 10
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.schlafzimmer_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.schlafzimmer_fenster_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 10
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.wohnzimmer_balkonture_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 5
      seconds: 0
  - trigger: state
    entity_id:
      - binary_sensor.wohnzimmer_balkonture_contact
    from:
      - "off"
    to:
      - "on"
    for:
      hours: 0
      minutes: 10
      seconds: 0
conditions: []
actions:
  - action: notify.send_message
    metadata: {}
    data:
      message: >-
        Im {{ area_name(trigger.entity_id) }} ist das Fenster seit {{ trigger.id
        }} Minuten offen.
    target:
      device_id: bbf8ace29d973acbdc27a7b1b98e45bc
    enabled: false
  - action: notify.pushover
    metadata: {}
    data:
      message: >-
        Im {{ area_name(trigger.entity_id) }} ist das Fenster seit {{ trigger.id
        }} Minuten offen.
mode: single

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Dann hast Du Dich irgendwo verzettelt.
Ohne den Yaml Code Deiner Automation, ist die Fehlersuche aber ein Ding der Unmöglichkeit.

Gruß Osorkon

Sorry, ja stimmt. Hab in jetzt beigefügt.

Nachtrag1:
ich hab das id: “10” vergessen, weil ich es mit dem visuellen Editor gemacht habe

Nachtrag2:
Kann man dies auch mit dem visuellen Editor machen oder nur mit dem YAML Code?

1 „Gefällt mir“

Jetzt funktionierts soweit.

Mir ist noch aufgefallen, dass bei Dir “mode: queued” und bei mir “mode: single” ist.

Hab mir die von @Jorge verlinkte Seite angesehen.

Habe ich es richtig verstanden, dass bei queued die Fensteroffenmeldungen in eine Warteschlage kommen und nacheinander abgearbeitet werden.

D.h. wenn die Meldung vom Badfenster kommt und kurz darauf von der Küche kommen würde, erst die Badnachricht fertig beendet wird und dann die von der Küche.

Dies ist wahrscheinlich vor allem für die Textdurchsage wichtig.

Also sollte ich auf queued umstellen?

Probiere es mal mit dem folgenden Blueprint. Damit ist es sehr einfach und funktioniert sehr gut.

Zusätzlich habe ich noch eine Benachrichtigung erstellt, dass wenn wir beide die HA-Zone verlassen haben, eine Benachrichtigung erscheint das noch Fenster geöffnet sind.

LG Philip