In diesem Beitrag geht es erneut ein wenig um ein mir sehr wichtiges Thema: Housekeeping! Ich lege sehr viel Wert darauf, mein Smarthome möglichst stabil zu halten. Eine wesentliche Voraussetzung hierfür ist es, dass verwaiste Entitäten (also nicht mehr aktive Sensoren, Services, Input-Selects etc.) entfernt/korrigiert werden, so dass das Smarthome ohne Fehler funktionieren kann. Eine einfache Möglichkeit solche verwaisten Entitäten in Home Assistant zu finden, stelle ich in diesem Beitrag vor!
Das eigene Smarthome wächst und ändert sich bei vielen meist sogar täglich. Neue Komponenten kommen hinzu. Hier und da findet man im Netz eine spannende/interessante Anleitung die man gleich ausprobieren will. Man tauscht smarte Geräte aus ohne diese korrekt aus dem System zu entfernen.
Als Ergebnis sammeln sich über die Zeit verwaiste Einträge in den YAML-Dateien, die in Summe das Smarthome instabiler, langsamer und somit schlechter machen. Alleine die Vorstellung, dass da in meinem Home Assistant „Datenmüll“ schlummert mag ich nicht, weshalb ich beispielsweise regelmäßig die Error-Logs sichte um Probleme möglichst schnell zu beheben.
Verwaiste Entitäten in Home Assistant finden und korrigieren
Nun gehe ich mit der HACS-Integration Watchman in meinem Setup noch einen Schritt weiter: Watchman ist eine Custom-Integration, welche einen Service bereitstellt, der einzig dafür da ist, verwaiste Entitäten aufzufinden und einem diese zu nennen.
Einmal eingerichtet (Hinzufügen über HACS, danach als Integration ergänzen) steht einem der Dienst „Watchman: report“ zur Verfügung. Führt man diesen aus (ich habe im ersten Lauf keine Änderungen an den zahlreichen möglichen Optionen vorgenommen!) erhält man nach wenigen Sekunden im Haupt-Ordner der eigenen Home Assistant-Installation eine Datei namens watchman_report.txt
Du magst Home Assistant? Dann abonniere kostenlos meine Beiträge mit Tipps, Tricks und Anleitungen rund um Home Assistant:
Follow Home Assistant
Garantiert kein Spam, keine Werbung und immer mit Abmelde-Link, solltest du es dir anders überlegen!
Bei mir sah die Datei nach dem allerersten Lauf konkret wie folgt aus:
-== Watchman Report ==-
-== Missing 2 service(s) from 30 found in your config:
+--------------------------------+---------+--------------------------------------------------------------+
| Service ID | State | Location |
+--------------------------------+---------+--------------------------------------------------------------+
| shell_command.meross_restart | missing | scripts/test_script.yaml:8 |
| variable.set_variable | missing | scripts/away.yaml:22 |
+--------------------------------+---------+--------------------------------------------------------------+
-== Missing 27 entity(ies) from 245 found in your config:
+--------------------------------+---------+--------------------------------------------------------------+
| Entity ID | State | Location |
+--------------------------------+---------+--------------------------------------------------------------+
| input_select.wecker | missing | automations.yaml:10 |
| sensor.luftdaten_15768_p1 | missing | recorder.yaml:8 |
| sensor.luftdaten_15768_p2 | missing | recorder.yaml:9 |
| sensor.travel_time_rewe | missing | recorder.yaml:10 |
| sensor.travel_time_pwc | missing | recorder.yaml:11 |
| binary_sensor.fenster_turkonta | unavail | sensors/binary_sensors.yaml:10,12 |
| ktsensor_2 ('Regensensor') | | |
| sensor.danfoss_devolo_home_con | missing | groups/groups.yaml:37 |
| trol_radiator_thermostat_batte | | |
| ry_level_8 | | |
| binary_sensor.vibration_4 | missing | automations/comfort.yaml:69 |
| light.extended_color_light_18 | unavail | automations/switches.yaml:336,347 |
| ('Lichtschlauch') | | |
| binary_sensor.updater | missing | automations/system.yaml:27 |
| media_player.buro ('Büro') | unavail | lovelace/views/office.yaml:4 |
| sensor.car_position_back | missing | lovelace/views/test.yaml:55 |
| light.extended_color_light_17 | unavail | lovelace/views/party_cellar.yaml:24 |
| ('Licht-Büro') | | |
| sensor.fenster_turkontaktsenso | unavail | lovelace/views/batteries.yaml:10 |
| r_2_battery_level ('Fenster- / | | |
| Türkontaktsensor-2 Battery') | | |
| sensor.luftfeuchtigkeit_1_batt | missing | lovelace/views/batteries.yaml:11 |
| ery_level | | |
| sensor.luftfeuchtigkeit_2_batt | unavail | lovelace/views/batteries.yaml:12 |
| ery_level ('Luftfeuchtigkeit-2 | | |
| Battery') | | |
| sensor.temperature_16_battery_ | unavail | lovelace/views/batteries.yaml:14 |
| level ('Luftfeuchtigkeit- | | |
| Nebenan Battery') | | |
| sensor.vibrationssensor_briefk | missing | lovelace/views/batteries.yaml:15 |
| asten_battery_level | | |
| media_player.wohnzimmer_2_2 | missing | scripts/random.yaml:15,36,40 |
| switch.fibaro_system_fgwpe_f_w | missing | scripts/away.yaml:5 |
| all_plug_switch | | |
| climate.danfoss_devolo_home_co | missing | scripts/away.yaml:8 |
| ntrol_radiator_thermostat_heat | | |
| ing_1 | | |
| climate.danfoss_devolo_home_co | missing | scripts/away.yaml:10 |
| ntrol_radiator_thermostat_heat | | |
| ing_1_5 | | |
| climate.danfoss_devolo_home_co | missing | scripts/away.yaml:11 |
| ntrol_radiator_thermostat_heat | | |
| ing_1_7 | | |
| group.all_lights | missing | scripts/away.yaml:16 |
| media_player.keller | missing | scripts/away.yaml:19 |
| media_player.keller2 | missing | scripts/away.yaml:20 |
| media_player.buero | missing | scripts/away.yaml:20 |
+--------------------------------+---------+--------------------------------------------------------------+
-== Report created on 10 May 2022 11:31:49
-== Parsed 89 files in 0.22s., ignored 0 files
-== Generated in: 0.02s. Validated in: 0.00s.
Die tabellarische Darstellung dürfte relativ selbsterklärend sein. In der ersten Spalte wird die Entität genannt, zu der ein Problem festgestellt wurde. In der zweiten Spalte ist das eigentlich Problem aufgeführt (also beispielsweise missing oder unavailable) und in der dritten Spalte steht dann wo das Problem entdeckt wurde, als in welcher YAML-Datei (und sogar in welcher Zeile!).
Da die Darstellung aufgrund der limitieren Breite nicht so übersichtlich ist, hier noch ein Screenshot dazu:
Alles, was man nun machen muss, ist diesen Report Entität für Entität abzuarbeiten und jeden der Fehler zu korrigieren!
In meinem Fall werden als verwaiste Entitäten zum einen Entitäten aufgelistet, die „gewandert“ sind und umbenannt wurden oder komplett entfernt wurden. Ebenso taucht meine test.yaml auf, die ich für Spielereien nutze und deswegen regelmäßig solche verwaiste Entitäten beinhalten dürfte.
Regelmäßig auf verwaiste Entitäten prüfen!
Ich werde nun regelmäßig durch den manuellen Aufruf des Dienstes „Watchman: report“ überprüfen, ob ich neue verwaiste Entitäten habe, und diese entsprechend korrigieren (hierfür einfach in den Entwicklerwerkzeugen den Reiter Dienste auswählen und die Anfangsbuchstaben eintippen).
Dies werde ich genau wie das Sichten der Logs als Regeltermin einplanen und somit für ein noch stabileres Smarthome sorgen! 🙂 Mit der HACS-Integration Watchman ist diese Housekeeping-Tätigkeit denkbar einfach geworden!
Produktempfehlungen