Schleife erst verlassen wenn

Hi zusammen,

ich versuche mich gerade an einer Automation. Vielleicht bin ich auch schon richtig unterwegs. Wollte das aber gerne einmal abchecken lassen.

Folgendes soll meine Automation tun:

WENN
der Wert meiner PV über 15 Sekunden über 850 liegt…

DANN MACHE

  • setze Limit vom Wechselrichter auf 1100
  • sende eine Nachricht an mein Handy
  • Warte eine Stunde
  • Prüfe ob der Wert immer noch über 835 liegt. Wenn ja, warte wieder eine Stunde und prüfe erneut (das soll so lange passieren, bis der Wert nicht mehr über 835 liegt.
  • Ist der Wert unter 835, dann setzte das Limit für den Wechselrichter wieder auf 1600
  • Sende eine Nachricht

Danach könnte WENN ganz normal wieder ausgeführt werden, wenn es eintritt.
Meine Idee wäre, es wie folgt zu lösen:

alias: BKW Überlast-Überwachung
description: >-
  Überwacht die Einspeisung des BKW und setzt ein Limit bei zu viel
  Sonneneinstrahlung
trigger:
  - platform: numeric_state
    entity_id: sensor.bkw_power
    above: 850
    for:
      seconds: 15
action:
  - service: number.set_value
    data:
      value: 1100
    target:
      entity_id: number.bkw_limit_nonpersistent_absolute
  - service: notify.mobile_app_iphone_app
    data:
      title: "------------ BKW ------------"
      message: "Aktivierung bei: {{ states('sensor.bkw_power') }} W"
      data:
        subtitle: Einspeisebegrenzung aktiviert
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.bkw_power
            above: 835
        sequence:
          - delay:
              hours: 1
              minutes: 0
              seconds: 0
      - conditions:
          - condition: numeric_state
            entity_id: sensor.bkw_power
            below: 835
        sequence:
          - service: number.set_value
            data:
              value: 1600
            target:
              entity_id: number.bkw_limit_nonpersistent_absolute
          - service: notify.mobile_app_iphone_app
            data:
              title: "------------ BKW ------------"
              message: "Aktuelle Einspeisung: {{ states('sensor.bkw_power') }} W"
              data:
                subtitle: Einspeisebegrenzung deaktiviert

Ich bin mir nicht sicher, ob diese Endlosprüfung mit den 835 richtig implementiert ist. Mag da mal jemand raufschauen?

Ich antworte mir mal selbst. :man_facepalming:

Hatte die Möglichkeit mit IDs ganz vergessen.

alias: Test
description: ""
trigger:
  - platform: numeric_state
    entity_id:
      - sensor.bkw_power
    above: 850
    for:
      hours: 0
      minutes: 0
      seconds: 15
    id: BKW-Überlastschutz ein
  - platform: numeric_state
    entity_id:
      - sensor.bkw_power
    below: 835
    for:
      hours: 1
      minutes: 0
      seconds: 0
    id: BKW-Überlastschutz aus
condition: []
action:
  - choose:
      - conditions:
          - condition: trigger
            id: BKW-Überlastschutz ein
        sequence:
          - service: number.set_value
            data:
              value: 1100
            target:
              entity_id: number.bkw_limit_nonpersistent_absolute
          - service: notify.mobile_app_iphone_app
            data:
              title: "------------ BKW ------------"
              message: "Aktivierung bei: {{ states('sensor.bkw_power') }} W"
              data:
                subtitle: Einspeisebegrenzung aktiviert
      - conditions:
          - condition: trigger
            id: BKW-Überlastschutz aus
        sequence:
          - service: number.set_value
            data:
              value: 1600
            target:
              entity_id: number.bkw_limit_nonpersistent_absolute
          - service: notify.mobile_app_iphone_app
            data:
              title: "------------ BKW ------------"
              message: "Aktuelle Einspeisung: {{ states('sensor.bkw_power') }} W"
              data:
                subtitle: Einspeisebegrenzung deaktiviert
mode: restart

So geht es.