Automation für Poolpumpe funktioniert irgendwie nicht

Hallo Zusammen,

die Poolsaison startet jetzt und habe auch eine Automatisierung erstellt fürs einschalten der Poolpumpe und Wärmepumpe…

Irgendwie scheint die irgendwie nicht zu funktionieren…
Sie startet die Poolpumpe nicht um 10 uhr wie angegeben…

Könnt ihr helfen? Sieht ihr einen Fehler irgendwo?

alias: Poolpumpe und Wärmepumpe
description: ""
triggers:
  - trigger: time
    at: "10:00:00"
    id: 10 Uhr
  - trigger: numeric_state
    entity_id:
      - sensor.ac_power_uberschuss
    for:
      hours: 0
      minutes: 15
      seconds: 0
    below: 500
    id: Überschuss unter 500
  - trigger: numeric_state
    entity_id:
      - sensor.ac_power_uberschuss
    for:
      hours: 0
      minutes: 15
      seconds: 0
    below: 200
    id: Überschuss unter 200
  - trigger: numeric_state
    entity_id:
      - sensor.tasmota_poolthermometer_ds18b20_temperature
    above: 28
    id: Pool über 28 Grad
conditions:
  - condition: and
    conditions:
      - condition: state
        entity_id: input_boolean.poolsaison
        state: "on"
      - condition: state
        entity_id: input_boolean.pool_service_wartung
        state: "off"
actions:
  - alias: Einschalten Poolpumpe mit oder ohne Wärmepumpe
    if:
      - condition: trigger
        id:
          - 10 Uhr
    then:
      - choose:
          - conditions:
              - condition: and
                conditions:
                  - condition: numeric_state
                    entity_id: sensor.ac_power_uberschuss
                    above: 2000
                  - condition: numeric_state
                    entity_id: sensor.tasmota_poolthermometer_ds18b20_id
                    below: 27
            sequence:
              - action: switch.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: switch.poolpumpe
              - delay:
                  hours: 0
                  minutes: 0
                  seconds: 15
                  milliseconds: 0
              - condition: numeric_state
                entity_id: sensor.poolpumpe_power
                above: 100
              - delay:
                  hours: 0
                  minutes: 2
                  seconds: 0
                  milliseconds: 0
              - action: switch.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: switch.warmepumpe
          - conditions:
              - condition: numeric_state
                entity_id: sensor.ac_power_uberschuss
                below: 1000
            sequence:
              - action: switch.turn_on
                metadata: {}
                data: {}
                target:
                  entity_id: switch.poolpumpe
  - alias: Ausschalten Wärmepumpe wenn Überschuss unter 500
    if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Überschuss unter 500
          - condition: time
            after: "16:00:00"
            before: "19:00:00"
          - condition: state
            entity_id: switch.warmepumpe
            state: "on"
    then:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.warmepumpe
  - if:
      - condition: trigger
        id:
          - Pool über 28 Grad
      - condition: state
        entity_id: switch.warmepumpe
        state: "on"
        for:
          hours: 0
          minutes: 5
          seconds: 0
    then:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.warmepumpe
    alias: Wärmepumpe aus wenn über 28 Grad
  - alias: Wiederholung bis Wärmepumpe an ist
    if:
      - condition: time
        after: "10:10:00"
        before: "15:30:00"
    then:
      - repeat:
          sequence:
            - action: switch.turn_on
              metadata: {}
              data: {}
              target:
                entity_id: switch.warmepumpe
          until:
            - condition: and
              conditions:
                - condition: numeric_state
                  entity_id: sensor.ac_power_uberschuss
                  above: 1500
                - condition: numeric_state
                  entity_id: sensor.tasmota_poolthermometer_ds18b20_temperature
                  below: 28
                - condition: state
                  entity_id: switch.warmepumpe
                  state: "off"
                - condition: state
                  entity_id: switch.poolpumpe
                  state: "on"
  - if:
      - condition: and
        conditions:
          - condition: trigger
            id:
              - Überschuss unter 200
          - condition: time
            after: "18:00:00"
            before: "20:00:00"
    then:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.poolpumpe
    alias: Poolpumpe ausschalten
  - alias: Poolpumpe ausschalten
    if:
      - condition: and
        conditions:
          - condition: time
            after: "19:00:00"
    then:
      - action: switch.turn_off
        metadata: {}
        data: {}
        target:
          entity_id: switch.poolpumpe
mode: single

So wie du die Automation aufgebaut hast, wird sie nur einmalig um 10.00 Uhr ausgeführt und prüft alle untergeordneten Bedingungen. Danach trifft die übergeordnete Bedingung 10:00 Uhr ja nicht mehr zu.

hmmm ok… habe das eigentlich alles mit ID´s in den Auslösern gemacht, da ich dann eigene Wenn-Dann Formeln genommen habe mit entsprechenden Auslösern…
Um 10 Uhr schaltet er die aber komischerweise auch nicht ein…

Hast du die in der Grafischen Oberfläche erstellt? Mir kommt es komisch vor, dass da unterhalb von actions: als erstes - alias: kommt und nicht action:

ja, ich hab das komplett in der grafischen erstellt.
Das kommt vielleicht weil ich für den besseren überblick die Wenn-Dann Blöcke umbenannt habe.

10:00 Trigger:

genau um diese Uhrzeit (nicht danach!!) = also nur ein Trigger

dann noch diese beiden Bedingungen
UND Bedingung:

Also Trigger um 10:00:00 Uhr und das „sensor.ac_power_uberschuss“ über 2000 und der „sensor.tasmota_poolthermometer_ds18b20_id“ ist kleiner als 27

hast du das gewollt?

tippe mal du möchtest ab 10:00 Uhr prüfen und wenn beide Bedingungen = IO dann Ausführen??

also anderen Trigger, z.B. den „sensor.ac_power_uberschuss“ bei jeder Veränderung
und die Uhrzeit nach 10:00 Uhr als Bedingung (also ein Zeitraum Von Bis)

1 „Gefällt mir“

Irgendwie verstehe ich nix mehr… oder ich stehe auf dem schlauch… Grundidee ist:
Um 10 Uhr soll die Pumpe auf jeden Fall angehen…
Aber es gibt 2 Optionen.
Erste Option: Wenn zu der Zeit der überschuss unter 1000 ist, soll nur die Pumpe angehen.
Option 2: Wenn zu dieser Zeit der Überschuss über 2000 ist und die Temperatur unter 27 ist dann soll die Pumpe UND ZUSÄTZLICH die Wärmepumpe angehen.

Hätte ich das anders einstellen sollen?

Die Uhrzeit als Bedingung und nicht als Trigger zu setzen, wird auch funktionieren (wie Drecksfresse vorgeschlagen hat). Ich habe es jetzt aber mal so umgesetzt, hier bleibt der Trigger auf 10.00 Uhr und standardmäßig wird die Pumpe um diese Uhrzeit immer eingeschaltet, sollte keine der Bedinungen erfüllt sein. Die beiden Bedingungen sind dann 2000Watt Überschuss und unter 27 Grad. Die andere prüft ob unter 1000Watt Überschuss anliegen.

Entitäten musst du dann noch mit deinen austauschen.

alias: Pumpe und Wärmepumpe 10 Uhr
triggers:
  - at: "10:00:00"
    trigger: time
conditions: []
actions:
  - choose:
      - conditions:
          - condition: numeric_state
            entity_id: sensor.ueberschuss
            above: 2000
          - condition: numeric_state
            entity_id: sensor.temperatur
            below: 27
        sequence:
          - target:
              entity_id: switch.pumpe
            action: switch.turn_on
            data: {}
          - target:
              entity_id: switch.waermepumpe
            action: switch.turn_on
            data: {}
      - conditions:
          - condition: numeric_state
            entity_id: sensor.ueberschuss
            below: 1000
        sequence:
          - target:
              entity_id: switch.pumpe
            action: switch.turn_on
            data: {}
    default:
      - target:
          entity_id: switch.pumpe
        action: switch.turn_on
        data: {}

Danke…
Wenn ich mir das jetzt aber anschaue dann sehe ich irgendwie keinen unterschied zu meiner Automation jetzt…
Einziger unterschied das ich das mit der funktion "Ausgelöst durch → ID (10 Uhr).

Oder übersehe ich etwas?

Naja nicht so ganz, du löst die Aktion bei dir um 10.00 Uhr durch den Trigger 10 aus. Dann prüfst du aber nochmal in der wenn/dann Funktion, ob die Uhrzeit 10.00 Uhr entspricht. Die kann aber nicht mehr 10.00 Uhr entsprechen, weil bereits ein paar Sekunden vorher, genau um 10.00 Uhr, durch den Trigger die Aktion ausgeführt wurde. Das hatte Thomas oben im ersten Post auch schon geschrieben. Bei mir wir die Uhrzeit als Trigger genutzt und dann erst die Bedingungen geprüft, ob diese wahr oder falsch sind.

Letztlich wurden die ganzen unnötigen, wenn/dann Funktionen entfernt und die Automatisierung dadurch vereinfacht und übersichtlicher gestaltet.

ahhhh … jetzt verstehe ich den fehler… Danke euch

1 „Gefällt mir“

aber ich hab in den Bedingungen nicht nochmal 10 uhr drin…
Das steht nur wenn ausgelößt durch „10 Uhr“.
Das ist doch aber der Sinn von den Auslöser IDs…

Und was steht hier: das ist der Auslöser für das was danach kommt

Ja das ist der eine auslöser für den ja die ID Vergeben wurde. Das ist ja der Sinn von IDs.
So habe ich das auch mit Bewegungsmeldern usw. in einer automation…
Also wenn Bewegung erkannt dann eine Aktion und wenn wieder frei eine aktion.
Es wird eine ID für jeden auslöser eingerichtet und kann dann in der Wenn-Dann Aktion (Ausgelöst durch) den jeweiligen gewünschten auslöser eintragen…

Ist das so nicht korrekt???

Hier z.B. das mit dem Bewegungsmelder mit den IDs was ich meine…

Oder meint ihr ich sollte die Automation auf mehrere aufteilen damit sie nicht so komplex und etwas übersichtilicher ist?

Guten morgen zusammen.
Es hat mit keine ruhe gelassen und habe mal ChatGPT gefragt ob sie meine Automatisierung prüfen kann auf fehler. Sie hat sofort was gefunden und die Automation angepasst. Heute mal getestet und um 10 Uhr ist sie auch angegangen.

Habt ihr sowas schon mal mit ChatGPT gemacht?

Hier der Code den die erstellt hat.

alias: Poolpumpe und Wärmepumpe
description: ""
triggers:
  - at: "10:00:00"
    id: 10 Uhr
    trigger: time
  - entity_id: sensor.ac_power_uberschuss
    below: 500
    for: "00:15:00"
    id: Überschuss unter 500
    trigger: numeric_state
  - entity_id: sensor.ac_power_uberschuss
    below: 200
    for: "00:15:00"
    id: Überschuss unter 200
    trigger: numeric_state
  - entity_id: sensor.tasmota_poolthermometer_ds18b20_temperature
    above: 28
    id: Pool über 28 Grad
    trigger: numeric_state
conditions:
  - condition: state
    entity_id: input_boolean.poolsaison
    state: "on"
  - condition: state
    entity_id: input_boolean.pool_service_wartung
    state: "off"
actions:
  - alias: Einschalten Poolpumpe (mit/ohne Wärmepumpe) um 10 Uhr
    if:
      - condition: trigger
        id: 10 Uhr
    then:
      - choose:
          - alias: Mit Wärmepumpe bei viel Überschuss & kaltem Pool
            conditions:
              - condition: numeric_state
                entity_id: sensor.ac_power_uberschuss
                above: 2000
              - condition: numeric_state
                entity_id: sensor.tasmota_poolthermometer_ds18b20_temperature
                below: 27
            sequence:
              - target:
                  entity_id: switch.poolpumpe
                action: switch.turn_on
                data: {}
              - delay: "00:00:15"
              - condition: numeric_state
                entity_id: sensor.poolpumpe_power
                above: 100
              - delay: "00:02:00"
              - target:
                  entity_id: switch.warmepumpe
                action: switch.turn_on
                data: {}
              - data:
                  name: Pool-Automation
                  message: >-
                    Poolpumpe & Wärmepumpe um 10 Uhr gestartet (viel
                    Überschuss).
                action: logbook.log
          - alias: Nur Poolpumpe bei wenig Überschuss
            conditions:
              - condition: numeric_state
                entity_id: sensor.ac_power_uberschuss
                below: 1000
            sequence:
              - target:
                  entity_id: switch.poolpumpe
                action: switch.turn_on
                data: {}
              - data:
                  name: Pool-Automation
                  message: Nur Poolpumpe um 10 Uhr gestartet (wenig Überschuss).
                action: logbook.log
        default:
          - target:
              entity_id: switch.poolpumpe
            action: switch.turn_on
            data: {}
          - data:
              name: Pool-Automation
              message: Poolpumpe um 10 Uhr gestartet (Standard-Fallback).
            action: logbook.log
  - alias: Wärmepumpe ausschalten bei wenig Überschuss am Abend
    if:
      - condition: trigger
        id: Überschuss unter 500
      - condition: time
        after: "16:00:00"
        before: "19:00:00"
      - condition: state
        entity_id: switch.warmepumpe
        state: "on"
    then:
      - target:
          entity_id: switch.warmepumpe
        action: switch.turn_off
        data: {}
      - data:
          name: Pool-Automation
          message: Wärmepumpe ausgeschaltet wegen zu wenig Überschuss (Abend).
        action: logbook.log
      - data:
          title: Wärmepumpe ausgeschaltet
          message: >-
            Wenig PV-Überschuss: Wärmepumpe wurde um {{ now().strftime('%H:%M')
            }} ausgeschaltet.
        action: notify.mobile_app_daniels_iphone
  - alias: Wärmepumpe ausschalten bei über 28 Grad
    if:
      - condition: trigger
        id: Pool über 28 Grad
      - condition: state
        entity_id: switch.warmepumpe
        state: "on"
        for: "00:05:00"
    then:
      - target:
          entity_id: switch.warmepumpe
        action: switch.turn_off
        data: {}
      - data:
          name: Pool-Automation
          message: Wassertemperatur über 28°C – Wärmepumpe ausgeschaltet.
        action: logbook.log
  - alias: Wärmepumpe wiederholt aktivieren tagsüber
    if:
      - condition: time
        after: "10:10:00"
        before: "15:30:00"
    then:
      - repeat:
          sequence:
            - target:
                entity_id: switch.warmepumpe
              action: switch.turn_on
              data: {}
            - data:
                title: Wärmepumpe gestartet
                message: >-
                  Wärmepumpe wurde um {{ now().strftime('%H:%M') }} automatisch
                  aktiviert (PV-Überschuss vorhanden).
              action: notify.mobile_app_daniels_iphone
          until:
            - condition: and
              conditions:
                - condition: numeric_state
                  entity_id: sensor.ac_power_uberschuss
                  above: 1500
                - condition: numeric_state
                  entity_id: sensor.tasmota_poolthermometer_ds18b20_temperature
                  below: 28
                - condition: state
                  entity_id: switch.warmepumpe
                  state: "off"
                - condition: state
                  entity_id: switch.poolpumpe
                  state: "on"
  - alias: Poolpumpe ausschalten bei sehr geringem Überschuss am Abend
    if:
      - condition: trigger
        id: Überschuss unter 200
      - condition: time
        after: "18:00:00"
        before: "20:00:00"
    then:
      - target:
          entity_id: switch.poolpumpe
        action: switch.turn_off
        data: {}
      - data:
          name: Pool-Automation
          message: Poolpumpe ausgeschaltet wegen sehr geringem Überschuss.
        action: logbook.log
  - alias: Poolpumpe sicherheitshalber aus ab 19 Uhr
    if:
      - condition: time
        after: "19:00:00"
    then:
      - target:
          entity_id: switch.poolpumpe
        action: switch.turn_off
        data: {}
      - data:
          name: Pool-Automation
          message: Poolpumpe ausgeschaltet (nach 19:00 Uhr).
        action: logbook.log
mode: single

1 „Gefällt mir“

Hi,

ChatGPT und Gemini sind meine Freunde wenn ich mal Hilfe bei Automationen brauche oder etwas nicht funktioniert.
Man muss sie nur gut füttern.
Wo lag denn jetzt dein Fehler. Hatte leider keine Zeit mir das näher anzusehen.

Wenn du mehr Automationen hast wird es noch unübersichtlicher.
Meine sind teilweise auch sehr komplex, aber ich habe eben immer alles in einer und somit ist es für mich übersichtlicher.

Ich hatte einen kleinen fehler… Es wurde als Auslöser Uhrzeit 10 Uhr gesetzt dann 2 optionen. Jetzt wurde als Standard Option noch einschalten von Poolpumpe eingestellt.
Dann wurde gefunden das ich als bedingung für wärmepumpe die temperatur von unter 27 grad habe und dafür die falsche Entität (ID statt Temperature) eingegeben habe… alles wurde geändert…

1 „Gefällt mir“