Es gibt im Smart Home diese Fehler, die nicht dramatisch genug sind, um sofort alles stehen und liegen zu lassen. Aber sie sind nervig genug, dass man sich irgendwann doch darum kümmern muss. Bei mir war das die Verbindung zwischen Home Assistant und meiner VELUX-KLF-200. Wenn sie weg war, standen die Rollläden auf unavailable. Damit konnte ich mich auch nicht mehr darauf verlassen, dass die nächste automatische Fahrt funktioniert.
Das eigentliche Problem war nicht einmal ein einzelner Ausfall. Ich kannte den Ablauf: nachsehen, ob die Zentrale erreichbar ist, kurz vom Strom trennen, warten, die VELUX-Integration neu laden und hoffen, dass die Verbindung stabil bleibt. Das kostet mich Zeit, passiert gerne spät abends und im Urlaub kann ich mich darum gar nicht kümmern.
Irgendwann war mir klar: Wenn ich bei jedem Ausfall dieselbe Reparaturroutine durchführe, kann Home Assistant das auch selbst übernehmen. Also habe ich daraus eine Automation gebaut, die nach zwei Minuten Verbindungsverlust selbstständig die KLF-200 neu startet, die VELUX-Integration neu lädt und anschließend prüft, ob die Verbindung tatsächlich wieder steht.
Inzwischen hat die Automation drei echte Verbindungsabbrüche behoben. Dabei zeigte sich auch, dass ein einzelner Neustart nicht immer reicht: In zwei der drei Fälle war ein zweiter Versuch nötig. Wie das funktioniert, zeige ich dir in diesem Artikel. Er enthält darüber hinaus das vollständige YAML zum Nachbauen.

Aus manuellen Schritten wird Self-Healing
Wann die Verbindung zur KLF-200 ausfiel, konnte ich nicht vorhersagen. Bei der Wiederherstellung lief es dagegen immer auf dieselben manuellen Schritte hinaus. Genau diese wiederkehrende Reparaturroutine war die Grundlage für meine Automation.
Manuelle Sichtung -> KLF-200 stromlos -> Integration neu laden -> prüfen, ggf. nochmal Integration neu laden
Aus dieser manuellen Reparaturroutine wurde mein Self-Healing: Home Assistant erkennt den Verbindungsverlust, führt die bekannten Schritte selbst aus und prüft anschließend, ob die Verbindung tatsächlich wiederhergestellt wurde. Erst wenn das nicht funktioniert, startet der nächste Versuch.
Das Self-Healing setzt dabei an den Symptomen an, löst aber nicht das eigentliche Grundproblem. Vergleichbare Verbindungsprobleme mit der KLF-200 sind auch bei anderen Home-Assistant-Nutzern dokumentiert. In einem Bug-Report im offiziellen Home-Assistant-Core-Repository beschreibt ein Nutzer, dass die VELUX-Integration nach einigen Tagen nicht mehr reagierte und erst ein Neustart der KLF-200 die Verbindung wiederherstellte.[Quelle] Ein ähnlicher Fall wurde bereits 2019 dokumentiert: Auch dort ging die Verbindung zur KLF-200 wiederholt verloren und ein physischer Neustart stellte sie wieder her[Quelle]. Welche Ursache hinter meinen eigenen Ausfällen steckt und ob sie mit diesen Fällen identisch ist, lässt sich daraus allerdings nicht ableiten.
Auch außerhalb von Home Assistant gibt es ein ähnliches Fehlerbild. Ein OpenHAB-Nutzer bezeichnet dieses Verhalten als „Zombie State“ und beschreibt den Zustand folgendermaßen:
This is the so called zombie state. The KLF thinks it still has a live connection from OH and it won’t accept any other connection attempt from OH. Whereas OH thinks the connection is down so it retries making a connection. The only solution is to disable the bridge in OH, then power cycle the bridge, then re-enable the bridge in OH.[Quelle]
Ob meine KLF-200 bei den Ausfällen tatsächlich in diesem beschriebenen „Zombie State“ steckt, kann ich nicht feststellen. Das dort beschriebene Verhalten ähnelt meinem Fall allerdings: Die Verbindung lässt sich nicht regulär wiederherstellen, nach einem Power-Cycle der KLF-200 funktioniert sie wieder. Mehr als eine mögliche Erklärung für meine Beobachtung ist das deshalb nicht.
So arbeitet meine Automation
Meine Automation wird ausgelöst durch den Verbindungsstatus der KLF-200. Dieser muss mindestens 2 Minuten auf off stehen, bevor die Automation mit ihrem Self-Healing beginnt. So verhindere ich, dass durch kurze Aussetzer direkt der Self-Healing-Prozess gestartet wird.
Im nächsten Schritt prüft die Automation die Erreichbarkeit und den Zustand der Matter-Steckdose an der VELUX-Zentrale. Nur wenn diese erreichbar und eingeschaltet ist, setzt sich der Reparaturverlauf fort. Wenn Home Assistant die Steckdose nicht steuern kann, kann die Automation die KLF-200 nicht zuverlässig stromlos schalten und wieder einschalten. Ist die Steckdose im Zustand off oder unavailable/unknown, wird der Versuch abgebrochen.
Die Automation trennt nun über die Matter-Steckdose die VELUX-KLF-200 für 5 Sekunden vom Strom und schaltet sie danach wieder ein.
Nach 10 Sekunden wird geprüft, ob die Matter-Steckdose eingeschaltet ist.
Erst wenn bestätigt ist, dass die Steckdose wieder eingeschaltet ist, wird nach weiteren 50 Sekunden die Integration neu geladen. Befindet sich die Steckdose nach dem ersten Versuch nicht im vorausgesetzten Zustand, wird sie nochmals auf on gesetzt und der Zustand nach kurzer Zeit nochmals geprüft. Erkennt die Automation zwischen den Schritten einen Zustand (z. B. Steckdose ausgeschaltet), der nicht erwartet ist, wird der Self-Healing-Prozess abgebrochen – oder der Einschaltversuch wiederholt. Ich erhalte dann eine Push-Benachrichtigung mit der Fehlerinformation.
Die VELUX-KLF-200 bekommt im Standardfall insgesamt 60 Sekunden für den Start, bevor die Automation weiterläuft. Bei Ausnahmen kann es länger sein.
Nach dem erneuten Laden der Integration wird nun auf die Rückkehr des Verbindungsstatus gewartet, wobei die gesamte Wartezeit maximal 2 Minuten beträgt. Der Self-Healing-Prozess ist abgeschlossen, wenn der Verbindungsstatus wiederhergestellt wurde. Tritt dieser Fall nicht ein, wird erneut ein Wiederherstellungsversuch innerhalb desselben Self-Healing-Prozesses ausgelöst. Spätestens nach dem dritten Versuch bricht die Automation ab und sendet mir eine Information.

Drei echte Einsätze statt Labortest
Nach der Implementierung der Automation am 05.09.2026 löste die Automation am selben Tag aus. Der erste Versuch konnte die Verbindung zwischen Home Assistant und VELUX-KLF-200 wiederherstellen.
Am 15.09.2026 erfolgte dann der zweite Ausfall gegen 21:05 Uhr. Die Automation stellte hier im zweiten Versuch die Verbindung wieder her. Die Verbindung war um 21:11 Uhr ohne manuellen Eingriff wiederhergestellt.
Um 21:05 Uhr wechselte der Verbindungsstatus von on auf off.
Nach der zweiminütigen Wartezeit begann die Automation um 21:07 Uhr mit der Überprüfung der Steckdose. Sie war erreichbar und eingeschaltet. Die Automation schaltete sie daraufhin für 5 Sekunden aus.
Insgesamt erhielt die VELUX-Zentrale dann 60 Sekunden für einen Neustart, bevor die Automation fortgesetzt wurde. Kurzzeitig wurde sie daraufhin wieder als verbunden angezeigt. Die Verbindung brach dann allerdings während des Reloads der Integration wieder weg.
Die Automation startete um 21:10 Uhr den zweiten Wiederherstellungsversuch beginnend beim kurzen Abschalten der Steckdose. Um 21:11 Uhr wechselte der Verbindungsstatus dann auf on, wodurch die Automation nach dem zweiten Versuch beendet wurde. Eine Push-Benachrichtigung ging dann raus. Ein Eskalationsschritt war nicht notwendig.
Zusätzlich lässt sich aus den Daten erkennen, dass auch die einzelnen Rollläden während des Ausfalls auf unavailable wechseln. Das geschieht auch, während die Integration neu geladen wird. Erst nach kurzer Zeit werden die Rollläden nach dem erneuten Laden der Integration wieder korrekt als open oder closed erkannt.
Meine beiden Rollläden im Badezimmer und Schlafzimmer wurden um 05:50 Uhr geöffnet und waren laut Datenaufzeichnung etwa 40 Sekunden später offen. Die Automation hat erfolgreich dafür gesorgt, dass dieser Vorgang nach dem vorangegangenen Ausfall funktionierte.
Ein dritter Vorfall ereignete sich dann am 18.09.2026. Auch dieser wurde durch das Self-Healing im zweiten Versuch gelöst.
Die Automation hat in allen drei bisher beobachteten Ausfällen funktioniert. Ob sie langfristig zuverlässig funktioniert und wie sie sich im bisher nicht eingetretenen Eskalationsfall verhält, können diese drei Fälle noch nicht zeigen. Bei zwei der drei Ausfälle war ein zweiter Wiederherstellungsversuch notwendig.
Die vollständige Home-Assistant-Automation
Nachfolgend findest du die Automation, die bei mir auch in den drei beschriebenen Ausfällen zum Einsatz kam. Für dein eigenes Setup musst du einige Entitäten und Dienste anpassen. Neben dem Verbindungsstatus der VELUX-Integration betrifft das insbesondere die schaltbare Steckdose vor der KLF-200 und den verwendeten Benachrichtigungsdienst.
alias: VELUX Verbindung überwachen
description: >-
Überwacht die Verbindung zur VELUX KLF 200. Nach zwei Minuten
Verbindungsverlust werden maximal drei Self-Healing-Versuche durchgeführt:
Zentrale kurz stromlos schalten, starten lassen, VELUX-Integration neu laden
und die Wiederherstellung prüfen. Benachrichtigt beim Start sowie über Erfolg
oder endgültigen Fehlschlag.
triggers:
- trigger: state
entity_id: sensor.connection_state
from: 'on'
to: 'off'
for:
minutes: 2
id: velux_offline
note: >-
Kurze Verbindungsflaps werden ignoriert; Self-Healing startet erst nach
zwei Minuten durchgehend offline.
actions:
- if:
- condition: not
conditions:
- condition: state
entity_id: switch.arbeitszimmer_velux_zentrale
state: 'on'
then:
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX KLF 200 ist offline, aber die Matter-Steckdose der Zentrale
ist nicht eingeschaltet oder nicht erreichbar. Self-Healing wurde
nicht gestartet.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- stop: 'VELUX Self-Healing abgebrochen: Matter-Steckdose nicht bereit'
error: true
note: >-
Nicht ausschalten, wenn die dedizierte Matter-Steckdose bereits aus oder
nicht erreichbar ist.
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX KLF 200 ist seit zwei Minuten offline. Self-Healing mit maximal
drei Versuchen wird gestartet.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- repeat:
count: 3
sequence:
- if:
- condition: state
entity_id: sensor.connection_state
state: 'on'
then:
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX KLF 200 Verbindung wiederhergestellt, bevor
Self-Healing-Versuch {{ repeat.index }} erforderlich wurde.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- stop: VELUX Verbindung bereits wiederhergestellt
note: >-
Eine verspätete Wiederherstellung beendet die Schleife, bevor erneut
der Strom getrennt wird.
- action: switch.turn_off
target:
entity_id: switch.arbeitszimmer_velux_zentrale
note: >-
VELUX KLF 200 für den aktuellen Self-Healing-Versuch stromlos
schalten.
- delay:
seconds: 5
- action: switch.turn_on
target:
entity_id: switch.arbeitszimmer_velux_zentrale
continue_on_error: true
note: >-
Die Steckdose muss unabhängig vom weiteren Verlauf wieder
eingeschaltet werden.
- delay:
seconds: 10
- if:
- condition: not
conditions:
- condition: state
entity_id: switch.arbeitszimmer_velux_zentrale
state: 'on'
then:
- action: switch.turn_on
target:
entity_id: switch.arbeitszimmer_velux_zentrale
continue_on_error: true
- delay:
seconds: 10
- if:
- condition: not
conditions:
- condition: state
entity_id: switch.arbeitszimmer_velux_zentrale
state: 'on'
then:
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX Self-Healing wurde abgebrochen: Die Matter-Steckdose
der Zentrale ließ sich nach dem Ausschalten nicht
zuverlässig wieder einschalten. Bitte dringend prüfen.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- stop: >-
VELUX Self-Healing abgebrochen: Matter-Steckdose blieb
ausgeschaltet
error: true
note: >-
Ein zweiter Einschaltversuch verhindert, dass die Zentrale bei einem
vorübergehenden Matter-Fehler ausgeschaltet bleibt.
- delay:
seconds: 50
note: >-
Zusammen mit der Steckdosenprüfung erhält die KLF 200 etwa 60
Sekunden Startzeit.
- action: homeassistant.reload_config_entry
data:
entry_id: 01K59Z334WKBR08RGE4KTY1YM2
continue_on_error: true
note: VELUX-Integration nach dem Hardware-Neustart neu laden.
- if:
- condition: state
entity_id: sensor.connection_state
state: 'on'
then:
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX Self-Healing erfolgreich: Die Verbindung wurde in
Versuch {{ repeat.index }} wiederhergestellt.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- stop: VELUX Self-Healing erfolgreich
note: >-
Status zuerst direkt prüfen, falls die Verbindung bereits während
des Integration-Reloads zurückkam.
- wait_for_trigger:
- trigger: state
entity_id: sensor.connection_state
to: 'on'
timeout:
minutes: 2
continue_on_timeout: true
note: Nach dem Reload höchstens zwei Minuten auf die Verbindung warten.
- if:
- condition: state
entity_id: sensor.connection_state
state: 'on'
then:
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX Self-Healing erfolgreich: Die Verbindung wurde in
Versuch {{ repeat.index }} wiederhergestellt.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
- stop: VELUX Self-Healing erfolgreich
note: Nur ein bestätigtes on gilt als erfolgreicher Versuch.
note: Die feste Anzahl verhindert eine unbegrenzte Recovery-Schleife.
- action: script.benachrichtigung
data:
benachrichtigungstext: >-
VELUX Self-Healing fehlgeschlagen: Die Verbindung ist nach drei
Neustarts und Integration-Reloads weiterhin nicht verfügbar. Bitte die
KLF 200 manuell prüfen.
an_sprachassistenten_senden: false
immer_per_pushnachricht_senden: true
an_lametric_senden: false
prioritaet: hoch
mode: single
max_exceeded: silent
Diese Stellen musst du anpassen
Beginnend von oben musst du in der Automation folgende Werte ersetzen:
- sensor.connection_state: Dieser Wert muss auf den Verbindungsstatus deiner VELUX-Zentrale lauschen (Zustände on und off). Andernfalls wird die Automation nicht ausgelöst.
- switch.arbeitszimmer_velux_zentrale: Diese Entität musst du auf die Steckdose anpassen, über die deine KLF-200 mit Strom versorgt wird. Hierüber wird der Neustart des Geräts ausgelöst.
- entry_id: Dieser Wert muss von dir auf die Config-Entry-ID deiner VELUX-Integration angepasst werden. Damit lädt die Automation die richtige VELUX-Integration nach dem Power-Cycle neu.
Das Ermitteln der entry_id kann über ein Template erfolgen. Navigiere dazu in den Bereich Werkzeuge in den Einstellungen von Home Assistant. Mit dem nachfolgenden Template wird dir die entry_id angezeigt. Gegebenenfalls musst du den Namen der Entität anpassen:
{{ config_entry_id('sensor.connection_state') }}
# Ergibt:
# 01K59Z334WKBR08RGE4KTY1YM2
Zudem musst du das script.benachrichtigung anpassen, da es sich hierbei um mein eigenes Benachrichtigungsskript handelt. Ich habe mich im Beispiel dennoch dazu entschlossen, es im YAML zu lassen, um dir einen vollständigen Einblick in meine Umsetzung zu geben. Ersetze diesen Bereich durch deinen eigenen notify.*-Dienst oder streiche die Benachrichtigungs-Action ersatzlos aus der Automation.
Die Zeitwerte kannst du zunächst übernehmen. Das sind Werte, mit denen meine Automation bei den drei beschriebenen Ausfällen gearbeitet hat.
Zudem anzumerken ist, dass die KLF-200 über eine mit Home Assistant steuerbare Steckdose versorgt werden muss. Die Automation kann sonst nicht funktionieren.
Was das Self-Healing nicht löst
Offenkundig ist, dass die Automation nicht das eigentliche Problem in der Verbindung behebt. Das Self-Healing unterstützt mich dabei, im Alltag weniger manuelle Eingriffe in mein Smart Home zu machen. Die Ursache ist weiterhin ungeklärt. Meine Automation setzt deshalb erst bei dem beobachteten Fehlerbild an.
Daraus lässt sich für mich ableiten: Self-Healing bedeutet bei mir nicht, jeden Fehler automatisch lösen zu wollen. Es bedeutet, eine bekannte und wiederholbare Reparatur zu automatisieren. Aufhören muss sie dort, wo unbekanntes Verhalten auftritt.
Klar ist allerdings auch, dass die Matter-Steckdose eine Abhängigkeit schafft. Ist sie nicht erreichbar, bricht die Automation ab und führt keinen Versuch zur Behebung des Problems durch. Einen Fallback-Mechanismus gibt es nicht. Es ist zwar möglich, von Matter (over Thread in meinem Fall) auf Zigbee zu wechseln, allerdings löst das nicht die Abhängigkeit. Bei einem Wechsel wird lediglich das Problem an eine andere Stelle verschoben. Die Abhängigkeit liegt in der Natur des Vorgehens.
Self-Healing funktioniert daher nur, solange die Instanz funktioniert, die die KLF-200 heilen soll.
Zuletzt die Einschränkung, dass nach dem dritten Versuch ein Abbruch erfolgt. Das ist eine bewusste Entscheidung, gleichzeitig aber auch eine Beschränkung der Optionen. Mein Gedanke dahinter ist simpel. Ich möchte eine Dauerschleife vermeiden. Das Self-Healing nimmt mir den bekannten Standardfall ab, macht manuelle Eingriffe aber nicht grundsätzlich überflüssig. Seit das Self-Healing läuft, war nach keinem der drei Ausfälle ein manueller Eingriff erforderlich.
Fazit
Meine Automation würde ich jederzeit wieder so aufbauen. Sie beweist nicht, dass sie mein Problem dauerhaft löst. Sie hat sich jedoch bei den drei Ausfällen bewährt und mir manuelle Eingriffe erspart. Besonders stark ist dabei, dass mein Smart Home auch dann eine eigene Reparatur beginnt, wenn ich nicht vor Ort oder verhindert bin. Ich muss den Ausfall nicht mehr erst durch eine fehlgeschlagene Rollladenfahrt bemerken. Ich habe den stillschweigenden Verbindungsabbruch sichtbar gemacht und gleichzeitig mit einem Mechanismus versehen, der eingreift.
Gleichzeitig hat sich daraus für mich ein übertragbares Learning ergeben: Wenn ich bei einem bekannten Fehler immer wieder dieselben Schritte zur Behebung durchführe, ist das ein möglicher Kandidat für Self-Healing. Dieses Prinzip möchte ich künftig auch auf andere Bereiche meines Smart Homes übertragen, sofern sich dort eine bekannte Reparaturroutine zuverlässig automatisieren lässt. Die Zeitersparnis mag im Einzelfall gering erscheinen, aber die Automation verhindert auch, dass eine notwendige Reparatur vergessen wird oder davon abhängt, dass ich gerade verfügbar bin.
Klar ist aber auch, dass ein Self-Healing genau dort aufhören muss, wo unbekanntes Verhalten auftritt.
0 Kommentare