Powiadomienia o otwartych oknach w HA bez NodeRed - problem

Mam problem z poprawnością działania powiadomień o otwartych oknach i drzwiach w HA.

Chciałbym, aby powiadomienia przychodziły np co godzinę na telefon jako push, że jakieś okno jest otwarte oraz aby głośnik to odtwarzał.

Dodatkowo w osobnej automatyzacji chciałbym zrobić, aby informowało, że coś jest otwarte jak uruchamiam scenę Wyjście z domu, ale to jak się uporam z podstawowym problemem. Może jest na te sprawy jakiś blueprint? Póki co nie znalazłem takiego, dlatego sam tworzyłem automatyzacje pod kolejne okna i drzwi.

Zrobiłem automatyzację w HA - póki co nie korzystam z Node reda - i automatyzacja odtwarza i przysyła push, jednakże nie mogę w niej dojść ładu, aby po zamknięciu okna nie powtarzało zbędnie jeszcze raz w pętli, że okno jest otwarte i po chwili kolejny właściwy komunikat, że okno zostało już zamknięte.
Yaml poniżej:

description: ""
trigger:
  - platform: state
    entity_id:
      - binary_sensor.kontaktron6
    to: "on"
    for:
      hours: 0
      minutes: 59
      seconds: 0
condition: []
action:
  - service: notify.mobile_app_rmx3085
    data:
      message: Okno w kuchni otwarte zbyt długo!
      title: UWAGA
      data:
        tag: ostrzezenie_okno_kuchnia
  - service: notify.mobile_app_asia_huawei_p30lite
    data:
      message: Okno w kuchni otwarte zbyt długo!
      title: UWAGA
      data:
        tag: ostrzezenie_okno_kuchnia
    enabled: false
  - delay:
      hours: 0
      minutes: 20
      seconds: 0
      milliseconds: 0
    enabled: false
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_komunikatu') | float }}"
    target:
      entity_id: media_player.google_home_mini
  - service: tts.google_say
    data:
      entity_id: media_player.google_home_mini
      message: UWAGA Okno w kuchni otwarte zbyt długo!
      language: pl
  - wait_template: "wait_template: {{ is_state('media_player.google_home_mini', 'off') }} "
    timeout: "4"
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_odtwarzania') | float }}"
    target:
      entity_id: media_player.google_home_mini
  - repeat:
      until:
        - condition: state
          entity_id: binary_sensor.kontaktron6
          state: "off"
          for:
            hours: 0
            minutes: 0
            seconds: 10
      sequence:
        - delay:
            hours: 1
            minutes: 0
            seconds: 0
            milliseconds: 0
        - service: media_player.volume_set
          data:
            volume_level: "{{ states ('input_number.glosnosc_komunikatu') | float }}"
          target:
            entity_id: media_player.google_home_mini
        - service: tts.google_say
          data:
            entity_id: media_player.google_home_mini
            message: UWAGA Okno w kuchni otwarte zbyt długo!
            language: pl
        - wait_template: >-
            wait_template: {{ is_state('media_player.google_home_mini', 'off')
            }} 
          timeout: "4"
        - service: media_player.volume_set
          data:
            volume_level: "{{ states ('input_number.glosnosc_odtwarzania') | float }}"
          target:
            entity_id: media_player.google_home_mini
  - service: notify.notify
    data:
      message: Okno w kuchni zostało już zamknięte!
      data:
        tag: ostrzezenie_okno_kuchnia
      title: Informacja
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_komunikatu') | float }}"
    target:
      entity_id: media_player.google_home_mini
  - service: tts.google_say
    data:
      entity_id: media_player.google_home_mini
      message: Okno w kuchni zostało już zamknięte
      language: pl
  - wait_template: "wait_template: {{ is_state('media_player.google_home_mini', 'off') }}"
    timeout: "4"
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_odtwarzania') | float }}"
    target:
      entity_id: media_player.google_home_mini
mode: single

Aby nie powtarzało zbędnie kolejny raz pętli po zamknięciu okna i od razu komunikowało, że okno zostało zamknięte zabrałem się od nowa za tą automatyzację wykorzystując warunek if else, jednakże tu komunikuje po otwarciu i ponawia co jakiś czas jak jest otwarte poprawnie, natomiast nie przetwarza automatyzacji poprawnie po zamknięciu okna, jakby dalej nie było instrukcji i wychodziło z automatyzacji, pomimo tego, że uruchomienie ręczne testu samego bloku else automatyzacji z zamkniętym oknem wysyła właściwego pusha, że okno zostało już zamknięte.

Poniżej yaml:

description: Wysyła i odtwarza na głośniku komunikaty po otwarciu i zamknięciu okna
trigger:
  - platform: state
    entity_id:
      - binary_sensor.kontaktron6
    to: "on"
    for:
      hours: 0
      minutes: 0
      seconds: 10
condition:
  - condition: time
    after: "07:00:00"
    before: "23:00:00"
    weekday:
      - mon
      - tue
      - wed
      - thu
      - fri
      - sat
      - sun
action:
  - service: notify.mobile_app_rmx3085
    data:
      message: Okno w kuchni zostało właśnie otwarte
      title: UWAGA
      data:
        tag: ostrzezenie_okno_kuchnia
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_komunikatu') | float }}"
    target:
      entity_id: media_player.google_home_mini
    enabled: false
  - service: tts.google_say
    data:
      entity_id: media_player.google_home_mini
      message: UWAGA Okno w kuchni zostało właśnie otwarte
      language: pl
    enabled: false
  - wait_template: "wait_template: {{ is_state('media_player.google_home_mini', 'off') }} "
    timeout: "4"
    enabled: false
  - service: media_player.volume_set
    data:
      volume_level: "{{ states ('input_number.glosnosc_odtwarzania') | float }}"
    target:
      entity_id: media_player.google_home_mini
    enabled: false
  - delay:
      hours: 0
      minutes: 0
      seconds: 10
      milliseconds: 0
  - if:
      - condition: state
        entity_id: binary_sensor.kontaktron6
        state: "on"
    then:
      - repeat:
          until:
            - condition: state
              entity_id: binary_sensor.kontaktron6
              state: "off"
              for:
                hours: 0
                minutes: 0
                seconds: 10
          sequence:
            - service: notify.mobile_app_rmx3085
              data:
                title: UWAGA
                message: Okno w kuchni jest otwarte
                data:
                  tag: ostrzezenie_okno_kuchnia
            - delay:
                hours: 0
                minutes: 0
                seconds: 10
                milliseconds: 0
    else:
      - wait_for_trigger:
          - platform: state
            entity_id:
              - binary_sensor.kontaktron6
            from: "on"
            to: "off"
            for:
              hours: 0
              minutes: 0
              seconds: 10
        timeout:
          hours: 0
          minutes: 0
          seconds: 10
          milliseconds: 0
      - service: notify.mobile_app_rmx3085
        data:
          message: Okno w kuchni zostało już zamknięte
          title: Informacja
          data:
            tag: ostrzezenie_okno_kuchnia
        enabled: true
mode: restart

Ostatecznie lepiej by było zmodyfikować pierwszą wersję kodu, gdyż tam wszystko działało z wyjątkiem tego, że o 1 raz za dużo powtarzało komunikat, że okno jest otwarte, a tuż po tym przetwarza właściwie instrukcję, że zostało już zamknięte. Jak wyjść wcześniej z tej pętli?

Może znalazłby się ktoś chętny coś podpowiedzieć.

Mam to tak zrobione i działa choć mi przyświecała inna idea ( przypomnienie że zapomniałem zamknąć a ma być cały czas zamknięte ).

alias: Ostrzeżenie o otwartym oknie
description: ""
trigger:
  - type: opened
    platform: device
    device_id: 5e0cf8ad9288dae50e4c2bda9643e7a5
    entity_id: binary_sensor.okno_kuchnia_contact
    domain: binary_sensor
    for:
      hours: 0
      minutes: 2
      seconds: 0
condition: []
action:
  - repeat:
      count: "5"
      sequence:
        - delay:
            hours: 0
            minutes: 0
            seconds: 5
            milliseconds: 0
        - service: tts.cloud_say
          data:
            entity_id: media_player.pokoj_dzienny
            message: OTWARTE OKNO !
            cache: false
  - wait_for_trigger:
      - type: not_opened
        platform: device
        device_id: 5e0cf8ad9288dae50e4c2bda9643e7a5
        entity_id: binary_sensor.okno_kuchnia_contact
        domain: binary_sensor
        for:
          hours: 0
          minutes: 1
          seconds: 0
          milliseconds: 0
    continue_on_timeout: true
  - service: tts.google_translate_say
    data:
      entity_id: media_player.pokoj_dzienny
      message: OKNO ZAMKNIĘTE
      cache: false
mode: single

Echo-Notification to Close a Window with custom sensors

Obsługuje:
czujnik otwarcia, wilgotności, temperatury z ustawialnym zakresem.
3 timery powiadomień, ustawiany czas dla każdego powiadomienia
Głośność przed i po komunikacje