Automationstrigger "für X Minuten"

Hallo Leute,
heute habe ich ein Verständnisproblem zu Automatisierungen:
Ich möchte meiner Frau eine Nachricht schicken lassen, wenn die Waschmaschine fertig ist.
Die Maschine ist an einer Steckdose mit Messfunktion angeschlossen.
Meine Automatisierung triggert auf die Leistungsaufnahme.
Je nach Programm macht die Maschine aber Pausen. Also habe ich so getriggert:
Falls Leisung > Schwellwert für 2 Minuten => Maschine läuft
Falls Leistung <= Schwellwert für 20 Minuten => Maschine ist fertig.
Die 20 Minuten werden benötigt, um auch längere Pausen zu überbrücken.
Mit dem ersten Trigger setze ich eine input_boolean “Maschine läuft”.
Der zweite Trigger setzt diesen zurück und sendet die Nachricht.
“Maschine läuft” wird auch im Dashboard angezeigt.
Leider wird “Maschine läuft” aber nie gesetzt. Wahrscheinlich dadurch, dass die erste “Laufzeit” unter 2 Minuten lag und danach die “Aus-Variante” 20 Minuten alles blockierte.
Wie macht man so etwas ohne Blockaden?
Hier zwei Bilder zur Erläuterung:


Offensichtlich wird der erste Zweig nie durchlaufen.

Moin,
zeige doch mal bitte den YAML Code deiner Automatisierung.
Da können wir am besten sehen was vielleicht falsch ist.

Bitte als Vorformatierten Text.
grafik

LG
Tobi

alias: Waschmaschine Status Automatisierung
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.waschmaschine_lauft_sensor
    from: "on"
    to: "off"
    for:
      hours: 0
      minutes: 20
      seconds: 0
    id: aus
  - trigger: state
    entity_id:
      - binary_sensor.waschmaschine_lauft_sensor
    to: "on"
    for:
      hours: 0
      minutes: 3
      seconds: 0
    id: an
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - an
        sequence:
          - action: switch.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.waschmaschine_lauft
      - conditions:
          - condition: trigger
            id:
              - aus
        sequence:
          - action: switch.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: input_boolean.waschmaschine_lauft
          - action: script.notify_those_at_home
            data:
              title: Die Wäsche ist fertig!
              message: Die Waschmaschine kann geleert werden!
mode: single

Mir ist klar, dass ich die Zeit des Einschalttriggers auf 30 Sek. statt 3 Min. setzen könnte. Das löst aber nicht das generelle Problem. Im Zweifel könnte ein prellender Schalter den ersten Trigger auslösen und dann wäre wieder alles wie gehabt. Daher ja auch die 3 Minuten (30 Sekunden).

Die eigene Automation ehrt dich. Vielleicht ist folgender Blueprint ja trotzdem etwas für Dich.

Gruß, Lars

Hallo Lars,
das Blueprint sieht interessant aus. Ich versuche in der Regel mit eigenen Sachen auszukommen, da man für einige Blueprints Online sein muss. Das scheint hier aber nicht der Fall zu sein. Gut!
Trotzdem würde mich interessieren, auch für andere Automatisierungen, wie man das richtig macht. Wenn es tatsächlich so ist, dass die Delays blockierend auf die Automatisierung wirken, dann überlege ich mir, ob man mit 2 Automatisierungen und Zustandsvariablen arbeiten könnte. Oder einfach mit Timern.

Das ist die falsche Action für einen Input_boolean. Du brauchst
input_boolean.turn_on

Oh Mann! So einfach? Vielen Dank! Ich hab es geändert und warte mal ab …