Simulation einer Automation? Oder wo liegt mein Fehler?

Die Automation Läuft jede Minute von 0 Uhr bis 24 Uhr. Lediglich die Ausführung der Aktionen finden nach 10 und vor 22 Uhr statt. Also 1440 Ausführungen pro Tag.

Die Stunden kannst Du weg lasen in Deinem Template, bzw. Insgesamt das Template vereinfachen.

Und dann würde es sich anbieten das Template als Auslöser zu verwenden und nicht als Bedingung.
Und zusätzlich die Ausführung auf die Stunden 10 bis 22 zu beschränken.

Wenn es um das Thema Kompaktheit geht, liese sich das ganze dann auch noch optimieren.

description: ""
triggers:
  - trigger: template
    value_template: "{{ (now().minute %6) == 1 and (now().hour > 9 and now().hour < 22) }} "
    id: "off"
  - trigger: template
    value_template: "{{ (now().minte %6)  == 0 and (now().hour > 9 and now().hour < 22) }}"
    id: "on"
conditions: []
actions:
  - action: switch.turn_{{ trigger.id }}
    metadata: {}
    target:
      entity_id: switch.xyz
    data: {}
mode: single

Es führen also viele Wege nach Rom. Und es gibt wahrscheinlich noch viele Dutzend andere mögliche Lösungen.

Gruß Osorkon

Hallo

Würde gern die fest vorgegeben Zeiten 1min u 5min durch einen Zeitpunkt-Eingabe Helfer ersetzen. So kann ich die Einschaltzeit, sowie die Pausenzeit flexibel gestalten.

weiss aber nicht wie ich das in der Automation einfügen kann. Für viele von euch ist das ein leichtes, für mich nicht.

Mit dieser Variante kannst Du doch die Einschalt und Ausschalt Dauer flexibel gestalten.

Einfach die Trigger bearbeiten.
Oder möchtest Du die Dauer in Minuten jeweils über einen Inüut number vorgeben.

Dann einfach anstatt einer festen Zeit, den Input Number angeben.
Also anstatt eine feste Zahl


    for:
      hours: 0
      minutes: 1
      seconds: 0

Den Input Number verwenden:


    for:
      hours: 0
      minutes: "{{ states('input_number.xyz') | int }}"
      seconds: 0

Gruß Osorkon

Ich möchte den Zeitpunkt-Eingabe Helfer benutzen.

So kann ich im Dashboard die Zeiten ändern, und muss nicht in der Automation was ändern.

Siehe Bild 2, Poolpumpe

Wenn Du mit einem Zeitpunkt-Eingabe Hälfer anstatt einen Zahlenwert Helfer arbeiten möchtest, dann so:


    for: |
      {{ states('input_datetime.xyz')}}

Gruß Osorkon

Das funktioniert so

Danke

Das funktioniert nicht.

Es kommt immer ein Fehler das das Format nicht passt.

Obwohl ich den Helfer sowie die Zahlenwert Eingabe in “min” formatiert habe.

Dann lass mal die Automation sehen (yaml)

Gruß Osorkon

alias: PP Zyklus 1/5
description: ""
triggers:
  - trigger: time
    at: "10:00:00"
    id: einschalten
  - trigger: time
    at: "20:30:00"
    id: ausschalten
  - trigger: state
    entity_id:
      - switch.aussen_poolpumpe_shellyoutdoorsg3_poolpumpe
    to:
      - "on"
    id: ausschalten
    for:
    hours: 0
    minutes: {{ states('input_number.pp_laufzeit_zyklus') | int }}
    seconds: 0

  - trigger: state
    entity_id:
      - switch.aussen_poolpumpe_shellyoutdoorsg3_poolpumpe
    to:
      - "off"
    for:
    hours: 0
    minutes: {{ states('input_number.pp_pausenzeit_wert') | int }}
    seconds: 0

    id: einschalten
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - einschalten
          - condition: time
            after: "10:00:00"
            before: "20:30:00"
        sequence:
          - action: switch.turn_on
            metadata: {}
            target:
              entity_id: switch.aussen_poolpumpe_shellyoutdoorsg3_poolpumpe
            data: {}
      - conditions:
          - condition: trigger
            id:
              - ausschalten
          - condition: time
            after: "10:00:00"
            before: "20:31:00"
        sequence:
          - action: switch.turn_off
            metadata: {}
            target:
              entity_id: switch.aussen_poolpumpe_shellyoutdoorsg3_poolpumpe
            data: {}
mode: single

Da stimmen sie Einrückungen nicht. Osorkon hat es weiter oben gezeigt.

ok

gemacht

Es kommt aber immer noch die Fehlermeldung:

Message malformed: expected float for dictionary value @ data[‘for’][‘minutes’]

Das Template gehört in Anführungszeichen!!


minutes: "{{ states('input_number.pp_laufzeit_zyklus') | int }}"

Oder:


minutes: |
  {{ states('input_number.pp_laufzeit_zyklus') | int }}

Gruß Osorkon

OK, das funktioniert.

Danke :grinning_face:

Bei den Anführungszeichen weiß man immer nicht, gehört das dazu, oder wird der Text damit Markiert.