Kann sich eine Automation selbst beenden ?

HaUsr23

Member
Hallo zusammen,

es handelt sich hier um eine allgemein Frage und keine Problemlösung.

Ich habe eine recht komplexe Automation, mit ca. 10 Auslösern die alle ein eignes ID haben.
Bei den Aktionen prüfe ich über wenn-dann Abfragen ab welches ID getriggert wurde und führe entsprechende Schritte aus, also eigentlich genau so wie es sein soll, hoffe ich.

Ich würde nun gerne am Ende der wenn-dann ID Abfrage die Automation verlassen, ohne weitere Prüfungen der anderen Trigger vorzunehmen. Geht das mit irgendeinem Befehl ?

Das Problem ist, eine der obersten Aktionen die ausgelöst werden startet einen Timer, eine der letzten Aktionen prüft auf den gleiche Auslöser und ob der Timer läuft, damit wird diese nach der Ausführung der ersten Aktion auch ausgeführt.

Klar, einfachste Lösung: Reihenfolge der Aktionen tauschen, hab ich, funktioniert auch.

Aber daraus ergibt sich halt die Frage, ob man die Automation nicht gleich in der ausgelösten Aktion beenden kann, wenn man weiß, dass danach nichts weiter ausgewertet werden muss.
Das könnte ja auch Abarbeitungszeit sparen.
 
Ich weiß nicht ob ich Dich richtig verstehe, bzw. Kenne den Aufbau derAutomatisierung nicht.
Zum einem im Bezug auf die Auslöser, bzw. das Verhalten beim erneuten auslösen der Automatisierung. Dazu solltest Du Dir die Automatisierung Modus anschauen.

Dann solltest Du Dir auch den Aktionstyp Auswahl anschauen, und die Optionen als Aktion. Dabei wird jeweils nur eine Option ausgeführt. Im Gegensatz zu den wenn dann Aktionen die alle nacheinander abgearbeitet werden.
Zum stoppen des laufenden Aktion Abfolge kannst Du als Aktion auch stop verwenden.

Eine bereits laufende Automatisierung, kannst Du nur stoppen, in dem diese deaktiviert wird.
 
Ich befürchtete schon, dass es nicht leicht zu verstehen ist, was ich mal wieder von mir gebe :)
Der Automatisierungs Modus ist single, was auch ok ist, ich überlege aber gerade ob queued bei mir nicht auch Sinn macht, aber das ist ein anderes Thema.

Ich hab mal einen Beispiel Code angelegt, der das "Problem" darstellt, was, wie ja erwähnt, durch umstellen der beiden Aktionen zu lösen ist, aber es geht ja darum ob es eine Möglichkeit gibt an der Stelle
"HIER: beenden des weiteren Ablaufs, quasi ans Ende der Automation springen"
den Ablauf der Automation zu beenden, so das nach Abarbeiten von (1) die (2) nicht mehr abgearbeitet wird.
Sollte danach ein neuer Trigger kommen geht's wie gewohnt neu durch die Automation.

Hoffe es ist jetzt etwas besser zu verstehen.

YAML:
alias: Test
description: ""
trigger:
  - platform: device
    type: turned_on
    device_id: 8fbb
    entity_id: 5654
    domain: switch
    id: TasteA
      :
      :  weitere Trigger
      :


condition: []
action:
  - alias: (1) Inaktiv und Taste A
    if:
      - condition: and
        conditions:
          - condition: state
            entity_id: timer.T
            state: idle
          - condition: trigger
            id:
              - TasteA
    then:
      - service: timer.start
        target:
          entity_id: timer.T
        data: {}
        alias: Timer -> Aktiv
            :
            :  weitere Code
            :
HIER: beenden des weiteren Ablaufs, quasi ans Ende der Automation springen


  - alias: (2) Aktiv und Taste A
    if:
      - condition: and
        conditions:
          - condition: state
            entity_id: timer.T
            state: active
          - condition: trigger
            id:
              - TasteA
    then:
      - service: timer.cancel
        target:
          entity_id: timer.T
        data: {}
        alias: Timer -> Inaktiv
           :
           :  weitere Code
           :
HIER: beenden des weiteren Ablaufs, quasi ans Ende der Automation springen

    :
    :
weitere Aktionen
    :


mode: single
 
Wie schon geschrieben.
Verwende als Aktion Auswählen und dann die einzelnen Optionen. Die Bedingung ist dann Ausgelöst durch, also die Trigger ID.

Sobald für eine Option die Bedingung erfüllt ist. Wird auch nur diese Option ausgeführt. Und danach ist die Automatisierung auch schon fertig. Es werden keine weitere Optionen abgefragt.

Wenn es unbedingt Wenn Dann Aktionen sein müssen. Wäre nicht mein Favorit.
Dann als zusätzliche Aktion im Dann Abschnitt, die Aktion Stopp verwenden.

Als Modus würde ich parallel verwenden.
Wenn jeder Trigger ohne zu warten die jeweilige Aktion ausführen soll.
 

Zurzeit aktive Besucher

Letzte Anleitungen

Statistik des Forums

Themen
6.152
Beiträge
59.872
Mitglieder
6.222
Neuestes Mitglied
Int17
Zurück
Oben