Konkurrierende Aktionen

Ich spiele gerade mit meiner Garagenbeleuchtung rum. Mein Idee ist das diese während dem schließen die Beleuchtung aktiviert und diese nachdem das Tor vollständig zu ist (dafür gibt es einen Sensor) die Beleuchtung noch weitere 3 Minuten an lässt und dann aus macht. Das funktioniert auch soweit (habe ein Script dafür gebaut).

Jetzt ist aber der Fall das ich das Tor während dieser 3 Minuten wieder auffahre, was ebenfalls das Licht aktiviert und in der Endposition weitere 5 Minuten an lässt. Der Timer vom verschließen läuft aber noch und schaltet dann das Licht mittendrin aus.

Wie würde man solche Wechselwirkungen vermeiden? Die eine Automation weiß ja nichts von der anderen? Oder muss man mit einem Befehl die jeweils andere Automation beenden?

Prüfe nach den 3 Minuten ob das Tor wirklich zu ist. Wenn ja, Licht aus. Wenn nein, nichts machen.

Keine getrennte Automationen erstellen, sondern alles in eine packen.
Wichtig! Modus = restart

BSP::

description: ""
mode: restart
triggers:
  - trigger: state
    entity_id:
      - cover.garagentor
    to:
      - opening
    id: licht an
  - trigger: state
    entity_id:
      - cover.garagentor
    to:
      - closing
    id: licht an
  - trigger: state
    entity_id:
      - cover.garagentor
    to:
      - closed
    for:
      hours: 0
      minutes: 3
      seconds: 0
    id: licht aus
  - trigger: state
    entity_id:
      - cover.garagentor
    to:
      - open
    for:
      hours: 0
      minutes: 5
      seconds: 0
    id: licht aus
conditions: []
actions:
  - choose:
      - conditions:
          - condition: trigger
            id:
              - licht an
        sequence:
          - action: light.turn_on
            metadata: {}
            data: {}
            target:
              entity_id: light.licht_garage
      - conditions:
          - condition: trigger
            id:
              - licht aus
        sequence:
          - action: light.turn_off
            metadata: {}
            data: {}
            target:
              entity_id: light.licht_garage

Gruß Osorkon

Da kein Delay o.ä. in den Aktionen, ist restart imho nicht nötig. Denn sobald ausgelöst wurde, sollte die Automation auch schon durch sein.

Delay hin oder her, die Automat läuft zwar in der Regel nur ein paar ms. Können aber auch ein paar Sekunden sein, wenn die Rückmeldung von Licht nicht augenblicklich ankommt, oder wenn mehrere Aktionen nacheinander ausgeführt werden. Da sie ja in Sequenz und nicht parallel ausgeführt werde. Mit dem Modus Restart stellt man somit IMMER sicher, dass die letze Auslösung auch zum Zuge kommt.

Gruß Osorkon

Wenn eine Automation ein Script startet, dann wartet die Automation doch erstmal nicht auf die Beendigung desselben, richtig? Wenn ich also darin Waits/Delays habe dann läuft das ja parallel. Daher habe ich in der Action-Data

wait_for_completion: true

hinzugefügt in der Hoffnung das mein Script bis zuende durchläuft.