Automation mit Delay/Verzögerung nach Neustart

Moin Community,

ich habe ein paar Automationen, wie z.B. Rollläden, Beleuchtung, die eine Verzögerung, ein sogenanntes Delay in ihrer Automation haben.

Wenn diese Automation nun startet und dann in Home Assistant ein Neustart gemacht wird, wird die Verzögerung nicht weitergeführt, sprich die Automation bleibt dort hängen. Wie kann ich in Zukunft sicherstellen, dass die Automationen durchlaufen, auch wenn HA einen Neustart macht?

Über eure Erfahrungen und Tipps würde ich mich freuen.

Viele Grüße
Mirco

Schau dir dazu mal den timer helper an.

1 „Gefällt mir“

Schau Dir mal die timer-helfer an:

image

Diesen kannst du dann als zusätzlichen Trigger nutzen.

Gruß, Lars

EDIT: @maxe war schneller :slight_smile:

1 „Gefällt mir“

Der Timer aktiviert sich dann, wenn HA neustartet, deshalb muss ich den als Auslöser hinzufügen, verstehe ich das richtig?

trigger: state
entity_id:
  - timer.helfer_timer_rollladen
to: active

Ich füge quasi die Zustandsänderung hinzu?

Die Automatisierung startet doch bestimmt durch andere Trigger.

Du wolltest es doch als “delay” in den Aktionen nutzen. Also musst du den Timer in der Aktion starten und dann noch einen Bedingung setzen, dass der Timer ON sein muss.

1 „Gefällt mir“
alias: Rollladen schliessen
if:
  - condition: trigger
    id:
      - Sonnenuntergang_+10
then:
  - sequence:
      - delay:
          hours: 0
          minutes: 0
          seconds: 3
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 5
        target:
          entity_id: cover.rl_eg_fl_technisat
      - delay:
          hours: 0
          minutes: 0
          seconds: 2
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 50
        target:
          entity_id: cover.rl_eg_nz_fibaro
  - sequence:
      - delay:
          hours: 0
          minutes: 2
          seconds: 0
          milliseconds: 0
      - action: script.gruppe_rl_wg_ost_sued
        metadata: {}
        data: {}
      - delay:
          hours: 0
          minutes: 0
          seconds: 2
          milliseconds: 0
      - action: script.gruppe_rl_wg_west
        metadata: {}
        data: {}
  - sequence:
      - delay:
          hours: 0
          minutes: 30
          seconds: 0
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 45
        target:
          entity_id: cover.kuchen_fenster

So sieht meine aktuelle Automation der Rollladen aus.
Die Aktion ist eingebettet in ein “Wenn-Dann” Baustein, da ich hier mehrere Etagen in einer Automation abdecke.

Wenn ich es richtig verstanden habe, musst du beim then in der letzten Sequence den Timer starten

      - action: timer.start
        metadata: {}
        data: {}
        target:
          entity_id: timer.helfer_timer_rollladen

dann ist er 30 Min. active.

Und in einer weiteren Automation, triggerst du, dass der timer wieder idle ist.

  - trigger: state
    entity_id:
      - timer.helfer_timer_rollladen
    from: active
    to: idle

und führst dann die Aktionen aus

      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 45
        target:
          entity_id: cover.kuchen_fenster
1 „Gefällt mir“

oder du nutzt die IDs der Trigger und packst dass dann in die gleiche Automation.

So könnte das aussehen:

alias: Test
description: ""
triggers:
  - trigger: state
    entity_id:
      - sensor.btn_buero_klein_action
    to: single
    id: BUTTON
  - trigger: state
    entity_id:
      - timer.timer_test
    to: idle
    from: active
    id: TIMER_Ende
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - BUTTON
        sequence:
          - action: timer.start
            metadata: {}
            data: {}
            target:
              entity_id: timer.timer_test
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.licht_buero_klein
      - conditions:
          - condition: trigger
            id:
              - TIMER_Ende
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.licht_buero_klein
mode: single

Gruß, Lars

1 „Gefällt mir“

Ich stehe gerade völlig auf den Schlauch :thinking: @maxe @LvS21
Was macht der Timer-Helfer genau?

Mein Gedanke, der Timer-Helfer aktiviert sich bei einem Neustart von Home Assistant erneut und wenn dieser dann abgelaufen ist, durchläuft dieser erneut die Automation von da aus, wo ich den Timer-Helfer eingebaut habe?!?

Timer-Helfer = Zustand und Zeit beim Start von Home Assistant wiederherstellen

Auslöser => 10 Minuten nach Sonnenuntergang
Aktion => Baustein “Wenn-Dann” => Bedingung = Ausgelöst durch ID => Aktion = Timer starten => Rolllade 1 schließen => Verzögerung 2 Minuten => Rollade 2 schließen => Verzögerung 2 Minuten => Rolllade 3 schließen => Verzögerung 30 Minuten => Rolllade 4 schließen undsoweiter

Hier nun die Aktion mit dem Baustein “Wenn-Dann”

alias: Rollladen schliessen
if:
  - condition: trigger
    id:
      - Sonnenuntergang_+10
then:
  - action: timer.start
    metadata: {}
    data: {}
    target:
      entity_id: timer.helfer_timer_rollladen
  - sequence:
      - delay:
          hours: 0
          minutes: 0
          seconds: 3
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 5
        target:
          entity_id: cover.rl_eg_fl_technisat
      - delay:
          hours: 0
          minutes: 0
          seconds: 2
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 50
        target:
          entity_id: cover.rl_eg_nz_fibaro
  - sequence:
      - delay:
          hours: 0
          minutes: 2
          seconds: 0
          milliseconds: 0
      - action: script.gruppe_rl_wg_ost_sued
        metadata: {}
        data: {}
      - delay:
          hours: 0
          minutes: 0
          seconds: 2
          milliseconds: 0
      - action: script.gruppe_rl_wg_west
        metadata: {}
        data: {}
  - sequence:
      - delay:
          hours: 0
          minutes: 30
          seconds: 0
          milliseconds: 0
      - action: cover.set_cover_position
        metadata: {}
        data:
          position: 45
        target:
          entity_id: cover.kuchen_fenster

Jetzt muss ich noch aktiv den Timer-Helfer wieder auf untätig setzen, damit dieser wieder in der Ausgangssituation ist?
Ich dachte, der würde bei einem neustart wieder von vorne beginnen :thinking:

der Timer wird lediglich durch eine Aktion timer.start gestartet und ist dann active. Er läuft dann automatisch die eingestellte Zeit und setzt sich danach wieder auf idle.

Was dann allerdings passieren soll, wenn er wieder idle ist, musst du selber bestimmen.

1 „Gefällt mir“

Der wird also für das Delay / die Verzögerung ausgetauscht? Und würde dann eben wieder auslösen, wenn HA neu startet.

Somit würde ich in meiner Automation den Timer an drei Stellen dieser Automation starten lassen und keine Delays mehr einsetzen.

Theoretisch muss nichts passieren, wenn der Timer im “Leerlauf” ist.

Wenn dem Ganzen so ist, dann verstehe ich den Timer glaube ich auch. Dann muss ich natürlich noch dem Timer eine Bedingung mitgeben, da er auch über Tag auslösen würde, wenn ich HA neu starte - sprich die Automation Rollladen schließen würde durchlaufen, da der Timer gestartet wird.

Doch, in deiner Automatisierung muss nach Ablauf des Timers die cover auf position 45 fahren.

1 „Gefällt mir“

Das heißt, der Timer löst nicht bei Aktivierung eine Automation aus sondern erst, wenn er wieder in den “Leerlauf” geht, die Zeit abgelaufen ist?
Bedeutet, ich brauche einen Timer Start, wenn HA neu gestartet wird und ein Was passiert nachdem der Timer abgelaufen ist = 2 Timer Befehle für 1 Delay :thinking:

Noch mal:
der Timer löst erst mal überhaupt nix aus. Du kannst ihn starten und beenden lassen. Mehr ist das erst mal nicht.

Über Automatisierungen kannst du dann sagen, was passieren soll, wenn der Timer aktiviert wird oder ausläuft.

nein, der Timer läuft einfach weiter auch wenn er unterbrochen wurde.

ja, 1x den Timer starten (die 30 Min. fangen an zu laufen) und dann was passieren soll, wenn der Timer ausgelaufen ist.

Stell dir vor du würdest eine Pizza in den Backofen schieben (dein Trigger). Jetzt aktivierst du einen Timer (timer.start) auf 12 Minuten (1. Aktion).
Wenn der Wecker jetzt nach 12 Minuten bimmelt (timer wieder im leerlauf), musst du ja auch eine Aktion durchführen (der Timer weiß ja nix), nämlich die Pizza rausholen.

1 „Gefällt mir“