Treppenlichtschaltung

Hallo,
ich habe hier eine Schaltaufgabe mit einem PIR und einem Shelly Mini der eine Lampe ansteuert. Der Shelly wird wahlweise noch über zwei Taster angesteuert.
Der erste Teil war einfach, die Lampe einschalten wenn der PIR “Belegung” (became occupied) meldet.
Jetzt soll das Licht nach einer definierten Zeit wieder ausgehen. Hierzu habe ich die “Nicht mehr Belegt” Meldung des PIR genutzt (became not occupied).
Durch die 1 Minute des Sonoff benötigt man fast keinen Timer, dennoch wäre meine Frage wie ich es einrichten müsste um 5 Minuten zu warten nachdem keine Bewegung mehr erkannt wurde?
Weiterhin möchte ich das wenn jemand den Taster betätigt die automatische Abschaltzeit deutlich höher ist (10-15 Minuten), also die PIR-/Timer-Ausschaltung überbrückt wird.
Wie gehe ich hier ran?

Je nach Entität kannst Du einstellen, dass diese den aktuellen / gewünschten Zustand für mind. Zeitraum X haben muss.

Ansonsten gibt es auch Warten Bausteine, die den Ablauf der Automatisierung entsprechend verzögern. Hier sollte dann meist mit Neustart als Art der Automatisierung gearbeitet werden.

Hast Du bereits eine (grobe) Automatisierung gebaut?

Hier schon einmal eine Stück Code, welche die Wartezeit bei ausbleibender Bewegung zeigt:

alias: "BEW: Flur1"
description: ""
mode: single
triggers:
  - entity_id:
      - group.bew_flur1_occupancy
    to: "on"
    id: Flur_ein
    trigger: state
  - entity_id:
      - group.bew_flur1_occupancy
    to: "off"
    id: Flur_aus
    for:
      hours: 0
      minutes: 0
      seconds: 30
    trigger: state
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - Flur_ein
        sequence:
          - data: {}
            target:
              entity_id: light.licht_aussen_flur1_l1
            action: light.turn_on
      - conditions:
          - condition: trigger
            id:
              - Flur_aus
        sequence:
          - data: {}
            target:
              entity_id: light.licht_aussen_flur1_l1
            action: light.turn_off

Dieser Teil ist der Wichtige:

    for:
      hours: 0
      minutes: 0
      seconds: 30

Gruß, Lars

Wenn Du die 30 Sekunden auf 5 Minuten hochstellst, hast Du die entsprechende Verzögerung.

Dann noch als Trigger die Schalter, damit diese das Licht einschalten.

Wird der Bewegungsmelder auch ausgelöst, wenn die Schalter betätigt werden?
Denn dann würde ich beim ausschalten durch Bewegungsmelder prüfen, dass in den letzten X Minuten kein Schalter betätigt wurde / dessen Status aus war. Damit bleibt das Licht an, wenn der Schalter gedrückt wurde.

Weiterer Trigger zum ausschalten, dass das Licht länger als X an ist.
Dabei prüfen, dass der Bewegungsmelder mindestens seit Y aus ist. Und in den letzten Z der Schalter auch aus war / sich nicht mehr verändert hat.