Zuverlässigere Automatisierungen mit Home Assistant Retry Actions

Home Assistant dient mir als Bindeglied zwischen diversen Smart Home Plattformen, was mir ermöglicht, ein Vendor Lock-in zu vermeiden. Dadurch bin ich nicht gezwungen, teure Komponenten zu erwerben, deren Design oder Funktionalität mir nicht gefällt. Ein Beispiel hierfür ist die Verwendung eines Homematic Wandschalters, um Philips Hue Lampen zu steuern – auch wenn zugegebener Maßen beide Systeme eher kostspielig sind. In meinem Zuhause kommen zahlreiche Produkte unterschiedlicher Hersteller und Systeme zum Einsatz, je nach Funktion und Verwendungszweck. Diese Komponenten kommunizieren über verschiedene, nicht immer zuverlässige Wege und Protokolle, wie beispielsweise Wifi, Zigbee und MQTT. Also ist da auch viel was schief gehen kann.

Ein Aspekt von Home Assistant, der mich schon immer verwundert hat, ist die fehlende Möglichkeit, Zustandsänderungen so lange zu wiederholen, bis sie erfolgreich durchgeführt wurden – trotz des vollen Zugriffs auf alle verfügbaren Mittel und Informationen. Wenn ein Befehl einer Automatisierung nicht erfolgreich übermittelt wird, gibt es keine Fehlermeldung, keine Rückmeldung und keinen automatischen zweiten Versuch. Diese Lücke in der Funktionalität ist etwas, das ich im Kontext von „Smart“ durchaus anders erwartet hätte, insbesondere angesichts möglicher Kommunikationsstörungen bei Funk- und Netzwerkprotokollen. Diese Schwäche macht es praktisch unmöglich, kritische Elemente wie Türschlösser, Garagentore oder Rollläden zuverlässig mit Home Assistant zu automatisieren.

Um dies zu verdeutlichen, ein konkretes Beispiel: Ich habe eine Automatisierung eingerichtet, die abends zu einer festgelegten Uhrzeit das Garagentor schließen soll, falls es vergessen wurde. Eine herkömmliche Automatisierung in Home Assistant würde die Homematic CCU dazu veranlassen, den Befehl zum Schließen des Garagentors zu senden und dann wäre sie abgeschlossen. Ob das Garagentor anschließend tatsächlich geschlossen ist, wird nicht überprüft – diese Überprüfung müsste man manuell hinzufügen.

Zum Glück bin ich nicht allein mit diesem Anliegen, und vermutlich ist deshalb die Integration Retry für Home Assistant entstanden. Diese Integration implementiert das Resilience Pattern Exponential Backoff und Retries und macht die Automatisierungen mit Home Assistant spürbar zuverlässiger. Besonders angenehm ist, dass Retry transparent darauf hinweist, wenn trotz aller konfigurierten Wiederholungsversuche der gewünschte Zustand nicht erreicht werden konnte.

Installiert werden kann Rerty über HACS was sehr einfach ist. Etwas aufwändiger ist ist dann in allen Automatisierungen die Service Calls mit einem Retry call zu wrappen. So wird zum Beispiel aus:

- alias: Cover Office Sunrise
  trigger:
    - platform: sun
      event: sunrise
      offset: "00:30:00"
  action:
    - service: cover.set_cover_position
      data:
        entity_id: cover.XXX
        position: 50
Code-Sprache: CSS (css)

Dann dies:

- alias: Cover Office Sunrise
  trigger:
    - platform: sun
      event: sunrise
      offset: "00:30:00"
  action:
    - service: retry.call
      data:
        service: cover.set_cover_position
        retries: 10
        position: 50      
      target:  
        entity_id: cover.XXXCode-Sprache: CSS (css)

Beitrag veröffentlicht

in

von

Kommentare

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Cookie Consent mit Real Cookie Banner