Stopp einer Automation verhindern, wenn Fehler auftritt

Ich schalte zu Hause meine Kameras per Automation an, wenn niemand mehr zu Hause ist. Manchmal kommt es vor, dass eine der Kameras gerade - aus welchen Gründen auch immer - nicht erreichbar ist. Dann bricht die Automation ab und alle weiteren Schritte werden nicht ausgeführt.

Kann ich diesen Abbruch verhindern und die Automation “zwingen” trotz des Fehlers die weiteren Schritte auszuführen?

Du kannst Aktionen/ Aktionsabfolgen auch parallel laufen lassen. Oder vorher abfragen ab Kamera verfügbar und dann erst die Aktion aufführen, ansonsten überspringen.

Lass mal die betroffene Automatisierung sehen.

Gruß
Osorkon

1 „Gefällt mir“

Ich habe eine ähnliche Situation, nur mit anderen Geräten. Die Lösung war: continue_on_error: true zu setzen. Bei mir sind es Rolladen. Die Aktionen werden alle parallel ausgeführt und jede Minute wiederholt, bis die Rolladen, im unteren Beispiel offen, den entsprechenden Zustand haben:

alias: Rollade Badezimmer öffnen
if:
  - condition: device
    device_id: 97c460f79d2b0b9c8db185ec6912906c
    domain: cover
    entity_id: 54172c005babfe7f6053dff517706356
    type: is_closed
then:
  - repeat:
      sequence:
        - action: script.rollade_badezimmer_offnen
          continue_on_error: true
          data: {}
        - delay:
            hours: 0
            minutes: 1
            seconds: 0
            milliseconds: 0
      until:
        - condition: device
          device_id: 97c460f79d2b0b9c8db185ec6912906c
          domain: cover
          entity_id: 54172c005babfe7f6053dff517706356
          type: is_open

1 „Gefällt mir“

Das habe ich versucht, führt jedoch bei mir auch zum Abbruch.

Werde ich testen. Aktuell folge ich aber erstmal diesem Vorschlag:

Mal schauen, ob dies reicht. “Leider” kommt es selten vor, dass eine Kamera nicht erreichbar ist. Daher muss ich es beobachten.

Kannst Du den Fehler nicht simulieren, in dem Du zum Beispiel die Stromzufuhr der Kamera unterbrichst, bevor Du die Automatisierung von Hand anstößt bzw. die auslösenden Werte über die Entwicklungswerkzeuge manipulsierst?

Finde ich gut, noch besser wenn ich Dauer/Timeout oder anderen Ausstieg setzen könnte. Was wenn das Gerät kaputt ist, dann wäre eine Dauerschleife. Ggf. Repeat/Count mit höherer Anzahl. Alles nur Anregung gedacht.

Update:
Ich dachte, ich rede nicht nur, sondern liefer auch den Code wie ich das meine:

description: ""
mode: single
trigger: []
condition: []
action:
  - repeat:
      count: 10
      sequence:
        - if:
            - condition: device
              device_id: 97c460f79d2b0b9c8db185ec6912906c
              domain: cover
              entity_id: 54172c005babfe7f6053dff517706356
              type: is_closed
          then:
            - device_id: 97c460f79d2b0b9c8db185ec6912906c
              domain: cover
              entity_id: 54172c005babfe7f6053dff517706356
              type: open
            - delay:
                hours: 0
                minutes: 1
                seconds: 0
                milliseconds: 0

Es wird insgesamt 10 x geprüft ob Rollladen noch geschlossen ist und wenn nicht, dann der Öffnungsbefehl abgesetzt und dann 1 min warten. Sollte das Gerät aus irgendeinem Grund nicht funktionieren, wird nach 10 Versuchen abgebrochen.

Ich weiß natürlich nicht welche Befehle in Deinem script.rollade_badezimmer_offnen enthalten sind. Vielleicht setzt Du da noch Helper oder andere Dinge.

Einen schönen Tag, muß jetzt arbeiten.

An welche Stelle der Aktion müsste die Zeile damit sie für die ganze Automatisation gilt?

continue_on_error: true

Hab ebenfalls eine Automation am Abend die alle Rollläden schließt, diverse Geräte aus,… Ab und zu bewegen sich 1-3 Rollläden (Somfy) nicht und dann läuft der Rest eben auch nicht weiter.
Somfy ist der Fehler sogar bekannt, Antwort vom Support :man_facepalming:

Sie dürfen ja auch nicht alle Taster gleichzeitig drücken

Hab das Problem aber an diversen Stellen. z.B. Skoda erlaubt es max. 3x per API unseren Enyaq zu wecken (nachdem man gefahren ist) damit die 12V Batterie geschont wird. Die aus einer Hochvoltbatterie mit 77 kW gespeist wird :man_facepalming:

actions:
  - action: cover.close_cover
    metadata: {}
    data: {}
    target:
      entity_id: cover.alle_rollladen
  - delay:
      hours: 0
      minutes: 2
      seconds: 0
  - action: cover.set_cover_position
    metadata: {}
    data:
      position: 15
    target:
      entity_id:
        - cover.schlafzimmer_nord
        - cover.schlafzimmer_west
        - cover.kind_balkontur
        - cover.kind_nord
  - type: turn_off
    device_id: 353756e8db58319edfb231daad4dcb
    entity_id: b09cbb52d96ef7c39465e886dd0903
    domain: switch
  - type: turn_off
    device_id: 8549841ac6b4a58f99d547f7d5a5a9
    entity_id: ed963c99cab8b61a38c8fc6c1cbdbe
    domain: switch

Nur ein Auszug/der Anfang, ist recht lange.

Ich habe das bei jedem “-action” drin:

- action: select.select_option
  continue_on_error: true

Danke für die Hilfe!

actions:
  - action: cover.close_cover
    continue_on_error: true
    metadata: {}
    data: {}
    target:
      entity_id: cover.alle_rollladen
  - delay:
      hours: 0
      minutes: 2
      seconds: 0

So würde es dann aussehen?

1 „Gefällt mir“