Lokale Variable: Wie geht das richtig?

Liebe Wissende,

Ich bin verzweifelt, weil mein HA macht nicht was ich möchte.
Wenn die Terrassentür offen steht, kann das seine Berechtigung haben oder nicht. Nach 20 Minuten (5 min. nachts) möchte ich einen Hinweis bekommen und danach regelmäßig wieder nach 20 min. Es sei denn ich lege im xxxx einen Schalter um.
Soweit ganz einfach, meint man. Drei Fallen habe ich mir gestellt.
Ich möchte gesagt bekommen, wielange die Terrassentür bis zur Ansage total offen gestanden hat.
Der input_boolean funzt überhaupt nicht.
Vorläufig ganz weggelassen habe ich die Meldung, wenn die Tür geschlossen wurde, weil das nur erfolgen sollte, wenn der loopcounter > 1 ist.

Kann sich jemand einmal die Mühe machen und mir sagen, warum sich der loopcounter nicht erhöht? Welcher Logik der Schalter (Terrasse still) folgen sollte? Sprich: wie die Wennabfrage lauten sollte, die die Sprachausgabe sofort verhindert.
Ich gehe davon aus, wenn Punkt 1 gelöst ist, kann ich auch die Erfolgsmeldung wieder einprogrammieren.

- id: 'xxx'
  alias: Terrassentür offen
  description: Warnt wenn Terrassentür zu lange offen steht
  triggers:
  - alias: Sobald Terrasse geöffnet wird
    trigger: state
    entity_id:
    - binary_sensor.tk_terrassent_tk_terrassentuer
    to: 'on'
    from: 'off'
    enabled: true
  - alias: Sobald Terrasse geschlossen wird
    trigger: state
    entity_id:
    - binary_sensor.tk_terrassent_tk_terrassentuer
    to: 'off'
    from: 'on'
    enabled: true
  conditions:
  - condition: state
    entity_id: input_boolean.jemand_zuhause
    state: 'on'
  actions:
  - alias: Wiederhole bis die Terrassentür geschlossen wird
    repeat:
      sequence:
      - delay:
          hours: 0
          minutes: '{{states(''input_number.minuten_tolleranz'') |float}}'
          seconds: 0
          milliseconds: 0
        alias: Verzögere um 5 bzw 20 min
        enabled: true
      - variables:
          loopcounter: '{{loopcounter + 1}}'
          duration: '{{loopcounter * states(''input_number.minuten_tolleranz'')|float}}'
      - action: script.sprachausgabe
        metadata: {}
        data:
          nachricht: Die Terrassentür ist offen seit {{duration|int}} Minuten. Bitte
            schließen.
          ausgabe:
          - media_player.keller
          - media_player.assy_kuche
      while:
      - alias: Während Terrassentür offen
        condition: state
        state: 'on'
        for:
          hours: 0
          minutes: 0
          seconds: 0
        enabled: true
        entity_id: binary_sensor.tk_terrassent_tk_terrassentuer
  - if:
    - condition: and
      conditions:
      - condition: state
        entity_id: input_boolean.terrassentur_ruhig
        state: 'off'
      - condition: template
        value_template: '{{loopcounter > 1}}'
        alias: Wenn die Terrasse länger als 20 min offen war
    then:
    - action: notify.pushover
      metadata: {}
      data:
        message: Die Terrassentür ist jetzt geschlossen. Danke
        title: Alles wird gut
  mode: restart
  variables:
    loopcounter: 0
    duration: 0

Ein alternativer Vorschlag der Herangehensweise:

  • Tür offen → Timer startet + Nachricht senden “Tür ist auf”
  • Boolean wird AN geschaltet → Timer abbrechen + Nachtricht “Schlaf weiter, alles ok”
  • Timer endet und Boolean = AUS → Timer starten + Nachricht senden “Tür ist immer noch auf”

Der timer will einfach nicht stoppen. Wie sollte der Auto-Modus gesetzt sein?

Was meinst Du mit Auto-Modus? Kopiere Deinen bisherigen Code bitte und ich schau mir das am Abend an.