Reminder (mit Wiederholungen) dass ein Gerät noch eingeschaltet ist

meine Mutter vergisst in letzter Zeit immer öfter, den Herd auszuschalten.
Habe da jetzt einen smarten FI eingebaut, der mir diese Werte liefert.

jetzt fehlt eine Automation, die zB 1 Stunde nach Einschalten eine akustische Erinnerung schickt und das dann zB alle 15 Minuten wiederholt und nach X Wiederholungen den FI abschaltet.

Mir ist klar, dass es sicherlich Szenarien gibt, wo ein Fehlalarm ausgelöst wird zB wenn da 4 Std. eine Gans schmurgelt, aber vielleicht kann man auch das noch unterscheiden, zB. durch den Stromverbrauch?

EDIT:
also der erste Aufruf ist ja recht simple

interessanter wird es dann mit den Wiederholungen …

Leider meine auch immer mehr. Demenz hat angefangen. :frowning:

Das kannst Du nur durch Testen herausfinden - wieviel Strom verbraucht wie lange bei der Ganz als eindeutige Unterscheidung zu anderen Gerichten.

Hier mein Vorschlag. Machs Beste daraus.

Zusammenfassung
alias: 1 test forum wiederholen reminder
description: >+
  #### Ablauf:

  - Sobald Schalter = AN wird ein Timer angestoßen und ein Zähler um 1 erhöht

  - Sobald Timer abgelaufen UND Schalter immer noch AN, wird der Timer wieder
  angestoßen und ein Zähler um 1 erhöht

  - Nach jedem Durchlauf wird ein Ton  ausgegeben

  - Nach einer definierten Anzahl von Durchgängen wird der Strom abgeschaltet


  #### Sensoren umbenennen und Helfer anlegen:


  - switch.aqara_plug_mitte_bad -> soll der Stromschalter für Ofen sein

  - timer.bewegung_unten_timer -> soll der Timer sein

  - counter.ventilator_schreibtisch_counter_wie_oft_heute_gelaufen -> soll der
  Zähler sein -> Anfangswert auf 0 setzen
      
  #### Variablen anpassen:

  Defaultwerte sind zum Testen.
      Dauer1xDurchlauf_sec: 5
      AnzahlDurchlaeufeBisAbschaltung: 3

triggers:
  - trigger: state
    entity_id:
      - switch.aqara_plug_mitte_bad
    from:
      - "off"
    to:
      - "on"
    id: OfenGehtAn
  - trigger: state
    entity_id:
      - switch.aqara_plug_mitte_bad
    from:
      - "on"
    id: OfenGehtAus
    to:
      - "off"
  - trigger: state
    entity_id:
      - timer.bewegung_unten_timer
    from:
      - active
    to:
      - idle
    id: TimerReminderEndet
conditions: []
actions:
  - variables:
      Dauer1xDurchlauf_sec: 5
      AnzahlDurchlaeufeBisAbschaltung: 3
  - choose:
      - conditions:
          - condition: trigger
            id:
              - OfenGehtAn
        sequence:
          - action: timer.start
            metadata: {}
            target:
              entity_id: timer.bewegung_unten_timer
            data:
              duration: "{{Dauer1xDurchlauf_sec}}"
          - action: counter.increment
            metadata: {}
            target:
              entity_id: counter.ventilator_schreibtisch_counter_wie_oft_heute_gelaufen
            data: {}
      - conditions:
          - condition: trigger
            id:
              - TimerReminderEndet
          - condition: state
            entity_id: switch.aqara_plug_mitte_bad
            state:
              - "on"
        sequence:
          - if:
              - condition: template
                value_template: >
                  {{
                  states('counter.ventilator_schreibtisch_counter_wie_oft_heute_gelaufen')
                  | int < AnzahlDurchlaeufeBisAbschaltung }}
                    
            then:
              - action: counter.increment
                metadata: {}
                target:
                  entity_id: >-
                    counter.ventilator_schreibtisch_counter_wie_oft_heute_gelaufen
                data: {}
              - action: timer.start
                metadata: {}
                target:
                  entity_id: timer.bewegung_unten_timer
                data:
                  duration: "{{Dauer1xDurchlauf_sec}}"
              - variables:
                  Comment: Deine Action wie Sirene mußt Du noch definieren
            else:
              - variables:
                  Comment: Abschlatung Ofen
              - action: switch.turn_off
                metadata: {}
                target:
                  entity_id: switch.aqara_plug_mitte_bad
                data: {}
      - conditions:
          - condition: trigger
            id:
              - OfenGehtAus
        sequence:
          - action: timer.cancel
            metadata: {}
            target:
              entity_id: timer.bewegung_unten_timer
            data: {}
          - action: counter.reset
            metadata: {}
            target:
              entity_id: counter.ventilator_schreibtisch_counter_wie_oft_heute_gelaufen
            data: {}
mode: single

na ja - ganz pragmatisch:
eine Gans wird 1x im Jahr gemacht, vielleicht nochmal ein Truthahn zu Thangsgiving - da kann ich dann mit einem Fehlalarm leben wenn der Rest des Jahres alles richtig läuft.

Danke für Deine Automation, da bin ich jetzt leider nicht ganz schlau draus geworden.
Meine Grundkonfiguration steht ja auch schon (siehe oben), es fehlt nur noch die Wiederholung, wenn keine Reaktion stattgefunden hat.

EDIT:
sehe aber gerade, dass meine Automation einen Fehler hat und zwar wird nicht berücksichtigt, ob der Herd noch an ist.
Hier wird stur 1 Std. nach Einschalten eine Erinnerung ausgegeben, daß kann man noch besser machen.

Alles gut, viele Wege führen nach Rom. Zur Not laß Dir durch ChatGPT erklären was die Automatisation macht. Und wenn Du Deine nimmst und weiterentwickelst, ist das auch ok. Du machst das schon.

1 „Gefällt mir“

ja, alle reden davon das die AI einem die Programme schreibt aber ich habe echte keine Ahnung, wie das gehen soll, was würde ich denn hier zB an ChatGPT übergeben?
Bin da noch old school - soll heissen: ich schreibe meine Automationen selbst …

Zuerst einen Helfer Schwellenwert Sensor erstellen. Obere Grenzwert z.B. 1
Eingangssensor wäre die Leistung des Herdes.

Also wenn Leistung über 1 Watt → Herd ist an
Wenn Leistung unter 1 Watt → Herd ist aus

Damit repräsentiert der so erstellte Binary Sensor den Zustand des Herdes, An oder Aus.

Dann würde ich es ganz einfach halten.

Auslöser 1: Herd ist seit einer Stunde an
Benachrichtigung raus und alle 15 min wiederholen, solange der Herd noch an ist.

Auslöser 2: Herd ist zwei Stunden lang an
Benachrichtigung raus und Herd ausschalten

Auslöser 3. Herd wurde ausgeschaltet
Wird nur benötigt um die Automation neu zu starten und eventuelle Schleifen abzubrechen.
Es wird keine Aktion ausgeführt.

alias: Herd Automatik
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "on"
    for:
      hours: 1
      minutes: 0
      seconds: 0
    id: erinnerung
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "on"
    for:
      hours: 2
      minutes: 0
      seconds: 0
    id: ausschalten
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "off"
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - erinnerung
        sequence:
          - repeat:
              while:
                - condition: state
                  entity_id: binary_sensor.herd
                  state:
                    - "on"
              sequence:
                - action: notify.xyz
                  metadata: {}
                  data:
                    message: >-
                      Herd ist schon seit {{ (as_timestamp(now()) -
                      as_timestamp(states.binary_sensor.herd.last_changed)) | 
                      timestamp_custom('%H h und %M min',false) }} an!
                - delay:
                    hours: 0
                    minutes: 15
                    seconds: 0
                    milliseconds: 0
      - conditions:
          - condition: trigger
            id:
              - ausschalten
        sequence:
          - action: notify.xyz
            metadata: {}
            data:
              message: >-
                Herd ist nun schon seit {{ (as_timestamp(now()) -
                as_timestamp(states.binary_sensor.herd.last_changed)) | 
                timestamp_custom('%H h und %M min',false) }} an! Er wird jetzt
                ausgeschaltet.
          - action: switch.turn_off
            metadata: {}
            target:
              entity_id: switch.herd
            data: {}
mode: restart

Wenn Du auch noch Deinen Gänsebraten berücksichtigen willst.

Kannst Du als Bedingung einen Helfer (Input Boolean) verwenden. Also z.B. nur ausführen, wenn Helfer aus ist.

alias: Test - Herd Automatik
description: ""
triggers:
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "on"
    for:
      hours: 1
      minutes: 0
      seconds: 0
    id: erinnerung
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "on"
    for:
      hours: 2
      minutes: 0
      seconds: 0
    id: ausschalten
  - trigger: state
    entity_id:
      - binary_sensor.herd
    to:
      - "off"
conditions:
  - condition: state
    entity_id: input_boolean.gaensebraten
    state:
      - "off"
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - erinnerung
        sequence:
          - repeat:
              while:
                - condition: state
                  entity_id: binary_sensor.herd
                  state:
                    - "on"
              sequence:
                - action: notify.xyz
                  metadata: {}
                  data:
                    message: >-
                      Herd ist schon seit {{ (as_timestamp(now()) -
                      as_timestamp(states.binary_sensor.herd.last_changed)) | 
                      timestamp_custom('%H h und %M min',false) }} an!
                - delay:
                    hours: 0
                    minutes: 15
                    seconds: 0
                    milliseconds: 0
      - conditions:
          - condition: trigger
            id:
              - ausschalten
        sequence:
          - action: notify.xyz
            metadata: {}
            data:
              message: >-
                Herd ist nun schon seit {{ (as_timestamp(now()) -
                as_timestamp(states.binary_sensor.herd.last_changed)) | 
                timestamp_custom('%H h und %M min',false) }} an! Er wird jetzt
                ausgeschaltet.
          - action: switch.turn_off
            metadata: {}
            target:
              entity_id: switch.herd
            data: {}
mode: restart

Gruß Osorkon

1 „Gefällt mir“

So entstand auch diese - ChatGPT sollst Du nehmen falls Du der Logik nicht folgen kannst - einfach nehmen und nach ChatGPT kopieren und fange mit der Frage an: Was passiert hier? und dann hinterfrage Details

Ich sehe Osorkon hat auch eine Lösung gepostet - ist sicher auch ok.

Hat er gut gemacht! :grin:

Perplexity

Die Automation macht Folgendes: Wenn der Herd‑Sensor 1 Stunde auf „on“ bleibt, bekommst du alle 15 Minuten Erinnerungen, solange der Herd an ist; nach 2 Stunden „on“ gibt es eine letzte Nachricht und der Herd‑Schalter wird ausgeschaltet – außer der Gänsebraten‑Schalter ist aktiv.
Trigger
• Trigger 1 ( id: erinnerung ): binary_sensor.herd ist seit 1 Stunde auf on .
• Trigger 2 ( id: ausschalten ): binary_sensor.herd ist seit 2 Stunden auf on .
• Trigger 3: binary_sensor.herd wechselt nach off (nur zum Starten der Automation; im aktuellen Code gibt es dafür keinen eigenen Action‑Pfad).
• Zusätzlich gilt global: Die Automation läuft nur, wenn input_boolean.gaensebraten auf off steht (also keine Ausnahme aktiv).
Aktionen bei 1 Stunde „an“ (Erinnerung)
Wenn Trigger erinnerung ausgelöst hat:
• Es startet ein repeat while , Bedingung: binary_sensor.herd ist weiter on .
• In dieser Schleife:
• Es wird eine Benachrichtigung gesendet mit der aktuellen „An‑Dauer“ des Herds (Differenz zwischen now() und last_changed ), formatiert als HH h und MM min .
• Dann wird 15 Minuten gewartet ( delay 0:15 ), danach wird die Bedingung erneut geprüft.
• Das wiederholt sich, bis binary_sensor.herd auf off geht oder die Automation durch den zweiten Trigger neu gestartet wird.
Aktionen bei 2 Stunden „an“ (Abschalten)
Wenn Trigger ausschalten ausgelöst hat:
• Es wird einmalig eine Benachrichtigung gesendet, wieder mit der berechneten An‑Dauer.
• Danach wird switch.herd mit switch.turn_off ausgeschaltet.
Bedeutung von mode: restart
• mode: restart bewirkt, dass ein neuer Triggerlauf (z.B. nach 2 Stunden) den laufenden 1‑Stunden‑Erinnerungs‑Loop abbricht und die Automation neu startet.
• Praktisch heißt das:
• Nach einer Stunde startet der Erinnerungs‑Loop.
• Nach zwei Stunden wird dieser Loop abgebrochen, die „Ausschalt‑Sequenz“ läuft: letzte Nachricht + Herd ausschalten.

Gruß Osorkon

1 „Gefällt mir“

Da war ich jetzt doch neugierig was ChatGPT bei meiner ausgibt - ich kopiere hier nicht alles rein aber das Ablaufdiagramm fand ich gut.

oh Gott - was für ein fauxpas: Gans mit Z geht ja gar nicht - da muss man sich ja schämen.
Hatte schon ein Glas Wein konsumiert…
Die ChatGPT Lösung sagt mir jetzt nicht soviel, ausser dass man einen Zähler verwenden soll.
und einen Gänsebraten-Schalter wird meine Mutter sicher nicht setzen wenn sie schon mit dem Herd nicht zurecht kommt.
Wenn man dieses Szenario berücksichtigen will - ist nicht zwangsläufig notwendig - könnte man das bestenfalls über den Stromverbrauch machen, man muss also wissen was der Backofen verbraucht und das dann abgrenzen zu den normalen Herdplatten. Aber wenn die Herdplatten dann auch noch eingeschaltet werden für die Knödel und das Kraut … :grinning_face:
Ist mir jetzt zu aufwendig für die max. 2x Vorkommen/Jahr.

(Beitrag vom Verfasser gelöscht)

Moin, also bevor man sich über die Gans (mit S) Gedanken macht vielleicht eher über dieses Szenario:

Herd wird eingeschaltet, der Timer läuft 1 Std, prüft dann, ob der Herd noch an ist und alamiert.
nach 30 Min. wird der Herd aber schon ausgeschaltet und nach 50 Min. ein 2. Mal eingeschaltet.

Was macht der Timer denn jetzt?
Also die Automation muss auch berücksichtigen, wann der Herd abgeschaltet wurde und dann die Automation stoppen. Mein code sieht aktuell so aus inkl. der Wiederholungen am Ende wo mir noch der Ausstieg fehlt…

alias: Herd_Reminder
description: ""
triggers:
  - type: power
    device_id: 304f80769489777028b9a08c293899a5
    entity_id: adfe4a910ab26b9790a80fadf35c69b7
    domain: sensor
    trigger: device
    above: 6
    for:
      hours: 0
      minutes: 1
      seconds: 0
conditions: []
actions:
  - delay:
      hours: 1
      minutes: 0
      seconds: 0
      milliseconds: 0
  - choose:
      - conditions:
          - type: is_power
            condition: device
            device_id: 304f80769489777028b9a08c293899a5
            entity_id: adfe4a910ab26b9790a80fadf35c69b7
            domain: sensor
            above: 6
        sequence:
          - type: turn_on
            device_id: 8d5fc6ca63bb40e953bd08282efee275
            entity_id: 4a08bf977c8980139596f23f6af667d1
            domain: switch
          - delay:
              hours: 0
              minutes: 2
              seconds: 0
              milliseconds: 0
          - type: turn_off
            device_id: 8d5fc6ca63bb40e953bd08282efee275
            entity_id: 4a08bf977c8980139596f23f6af667d1
            domain: switch
  - repeat:
      while:
        - type: is_power
          condition: device
          device_id: 304f80769489777028b9a08c293899a5
          entity_id: adfe4a910ab26b9790a80fadf35c69b7
          domain: sensor
          above: 7
      sequence:
        - delay:
            hours: 0
            minutes: 15
            seconds: 0
            milliseconds: 0
        - type: turn_on
          device_id: 8d5fc6ca63bb40e953bd08282efee275
          entity_id: 4a08bf977c8980139596f23f6af667d1
          domain: switch
mode: single

Ist egal wie oft Du den Herd und in welcher Frequenz ein und Ausschalten. Nach einer Stunde fangen die Benachrichtigungen. Schaltest Du den Herd bevor er 2 Stunden lang an ist, hören die Benachrichtigungen auf. Schaltest Du in gleich wieder an, dauert es wieder eine Stunde bis die Benachrichtigungen kommen. Und nach zwei Stunden geht er dann aus.

Die Auslöser lauten an für 1 h
Und 1 an für 2 h

Gruß Osorkon

das der Auslöser/Delay immer bis 1 Std. nach Einschalten läuft, ist mir bekannt und das ist ja der Fehler. Wenn bereits nach 30Min. der Herd abgeschaltet wird, muß die Automation komplett stoppen damit sie für einen späteren Einschaltvorgang wieder bereit ist und von vorne anfangen kann.

Da musst nichts gestoppt werden. Die Automation wird doch zum ersten Mal ausgelöst, wenn der Herd 1 h lang nonstop an ist.

Schaue Die doch mal die Erklärung der AI an. Die erklärt es doch ganz gut. :wink:

Und meine eigene als Vorwort zu Automation auch, wenn auch knapper.

Gruß Osorkon

ich habe nicht die von der AI genommen.
in meiner startet die Automation mit Einschalten sofort, wartet 1 Std. prüft dann, ob der Herd an ist und wenn ja kommt der Alarm, der sich dann alle 15Min. wiederholt.

ok, müsste ich dann ändern

Diese stammt auch nicht von er AI, es ist zu 100% aus meiner Feder. Lediglich die Beschreibung inspiriert von @Bacardi ist AI generiert.

Gruß Osorkon

@Cpt.Hardy Warum bist Du denn so abweisend der KI gegenüber?

Das man bei der HA Programmierung den Antworten nur unter Vorbehalt trauen sollte, ist bekannt. Je mehr man weiß, je schneller erkennt man Blödsinn. (Weder Osorkon noch ich haben Dir etwas KI generiertes vorgeschlagen und das ist auch nicht Sinn dieses Forums.) Aber um etwas verstehen/eintauchen zu wollen, ist KI wieder eine gute Hilfe. Du kannst natürlich wie Du schriebst “old school” die Doku lesen und 100 %ige Sicherheit erlangen aber es geht auch einfacher.

ok, der Anfang passt jetzt, es fehlt mir immer noch der Ausstieg aus der Wiederholschleife.
Diese wird aktuell bis in alle Ewigkeit alle 15 Min. ausgeführt, wenn der Herd nicht abgeschaltet wird.

Was ist an der Automation, die ich bereitgestellt habe, auszusetzen?

Kannst doch diese als Vorlage verwenden ohne was neues erfinden zu müssen. :wink:

Gruß Osorkon