Newbee Frage - LED nach Tastendruck xMinuten leuchten lassen

Hallo zusammen,
ich bin der Neue, sowohl hier als auch im Thema generell mit ESPHome. Mein Name ist Peter, frisch in der Rente und hab nun endlich Zeit einen Sensor für einen möglichen Wasseralarm (Schlagregen) im Keller zu basteln.

Als Basis hab ich EspHome innerhalb des HomeAssistants auf einem Raspi4 laufen. Nun habe ich schon erfolgreich einen Temperatursensor mit ESP8266 Wemos D1 Mini und einem oneWire Sensor DS18B20 integriert, welcher hervorragend läuft!

Mein Wassersensor verwendet auch einen ESP8266 mit Wemos D1 Mini und hat
einen Taster an GPIO14 und eine LED an GPIO15.

Der Taster dient der Deaktivierung des Alarms bei Bodenreinigung (keine Alarmauslösung durch Putzwasser an den Sensoren).
Der Taster lässt aktuell die LED leuchten, aber nur solange die Taste gedrückt wird.
Mein Ziel ist aber, dass nach Tastendruck sagen wir mal die LED 60 Minuten lang leuchtet. Gleichzeitig soll der Taster auch einen Status “off” setzen, der dann von der Automation erkannt wird.

Aktuell löst mein Wassersensor brav aus, sofern keine Deaktivierung vorliegt (nur eben solange die Taste gedrückt wird). Per Automation wird bei Auslösung eines Wasseralarms eine Telegram Nachricht versendet.
Das funktioniert schon alles soweit, nur steh ich auf dem Schlauch wie ich das mit dem ablaufenden Timer von sagen wir 60 Minuten machen soll. Finde dazu keine Beispiele im Netz oder der Anleitung, aber auch weil ich nicht weis nach welcher Begrifflichkeit ich suchen soll (Timer brachte mich nicht weiter).

Hier mal mein Code von Taster und LED. Bei GPIO13 und 5 habe ich die beiden Wassersensoren (offene Kabelenden die auf Kurzschluss durch Wasser warten)

binary_sensor:
  - platform: gpio
    pin: 
      number: GPIO14
      inverted: True
      mode:
        input: True
        pullup: True
    name: "taster deaktivierung Heizungsraum"
    on_press: 
      then:
        - light.turn_on: "led_gpio15"
  
    on_release: 
      then:
        - light.turn_off: "led_gpio15"
    

  - platform: gpio
    pin:
      number: GPIO13
      inverted: True
      mode:
        input: True
        pullup: True
    name: "Wasseralarm Heizungsraum"

  - platform: gpio
    pin: 
      number: GPIO5
      inverted: True
      mode:
        input: True
        pullup: True
    name: "Wasseralarm Kellerflur"  

light:
  - platform: status_led
    pin: GPIO15
    id: "led_gpio15"
    name: "Alarm deaktiviert"

VG und schon mal Danke im Voraus
Peter

Muss die Funktion den auf dem ESP32 liegen?
Wenn die LED defioneit ist kannst du die Steuerung und das Verzögern doch in der HA-Automation umsetzen.

Hi,
nein, muss sie nicht zwingend. Habe nur in der Automation keine Möglichkeit gesehen, dass so umzusetzen.
Bitte bedenken, dass ich den HA erst ne Woche am Start habe.
Hast Du denn da einen Tipp für mich? Codeschnipsel?
VG Peter

Problem gelöst und es funktioniert wunderbar. Werde gleich alles am Zielort installieren.

  1. Ich hatte in der yaml des Wemos Mini nicht nur den “on_press” mit “light.turn_on”, sondern danach auch den “on_release” mit “light.turn_off”
    Habe den “on_release” jetzt rausgeworfen damit die LED grundsätzlich anbleibt.

  2. in den Automationen habe ich mit der entsprechenden Entität beim “on_press” Zustand eine Telegram Message verschickt. Dann gibt es eine Verzögerung von 60 Minuten und danach wird die Entität ausgeschaltet und eine abschließende Telegram Message versendet.

Als newbee war das schon ne Nummer und ich habe drei Tage am Stück alle möglichen Internetseiten und youtube Videos gesichtet ohne auch nur einen Hinweis zu bekommen. Der Hinweis hier über Automation hat mich da etwas tiefer einsteigen lassen und so bin ich dann zur Lösung gekommen. Hurra!
VG Peter