Hallo zusammen,
ich bin David und neu hier im Forum. Ich nutze Home Assistant schon seit 2023
und habe mir mit der Zeit recht komplexe Lovelace-Dashboards aufgebaut – unter anderem mit Decluttering Cards, Button-Card-JavaScript und mehreren Ebenen verschachtelter Templates. Dazu kommen viele Template-Helfer, die direkt über die Benutzeroberfläche erstellt wurden.
Das Problem
Wer ein größeres Home-Assistant-Setup betreibt, kennt es vermutlich: Eine Entity wird gelöscht oder umbenannt, aber irgendwo bleibt eine alte Referenz zurück.
Spook und Watchman finden bereits sehr viel. In meinem Setup blieben aber vor allem zwei Bereiche übrig:
-
stark verschachtelte Dashboards mit Decluttering Cards und Button-Card-JavaScript
-
über die UI erstellte Template-Helfer
Deshalb habe ich zwei Custom Integrations entwickelt, die genau diese Bereiche prüfen.
Transparenzhinweis: Beide Integrationen habe ich mit Unterstützung einer KI entwickelt. Idee, Konzept und Anforderungen stammen von mir, und beide Tools laufen auf meiner eigenen Home-Assistant-Instanz.
Dashboard Entity Checker
Der Dashboard Entity Checker durchsucht ausgewählte Lovelace-Dashboards nach Entity-Referenzen, die weder in der State Machine noch in der Entity Registry vorhanden sind.
Er erkennt unter anderem:
-
direkte Entity-Referenzen in Dashboard-Karten wie
entityoderentities -
Referenzen in Button-Card-JavaScript wie
states['sensor.beispiel']oderstates.sensor.beispiel -
rekursiv verschachtelte Decluttering-Card-Templates
-
Variablen, Standardwerte und Platzhalter innerhalb der Decluttering Templates
-
verschachtelte Templates bis zu 20 Ebenen tief
-
veraltete Entity-IDs in JavaScript-Kommentaren
Service-Namen, URLs, CSS-Klassen und andere Inhalte, die nur wie Entity-IDs aussehen, werden möglichst herausgefiltert.
Fehlende Entities werden über alle ausgewählten Dashboards und Views hinweg zusammengefasst. Taucht dieselbe Entity an mehreren Stellen auf, wird sie nur einmal gemeldet – inklusive aller Fundorte.
Repository:
Template Entity Checker
Der Template Entity Checker durchsucht alle über die Benutzeroberfläche erstellten Template-Helfer nach statischen Entity-Referenzen und prüft, ob diese Entities noch existieren.
Unterstützt werden aktuell alle 17 UI-Template-Helfertypen, darunter Sensoren, Binary Sensoren, Lichter, Cover, Wetter- und Update-Entities.
Erkannt werden unter anderem:
-
states() -
state_attr() -
is_state() -
is_state_attr() -
has_value() -
Dot-Notation wie
states.sensor.beispiel -
expand()mit einzelnen Werten, mehreren Argumenten und Listen
Jinja wird dabei nicht ausgeführt oder gerendert. Der Parser untersucht ausschließlich die Struktur des Templates, berücksichtigt lokale Variablen und beachtet die jeweiligen Gültigkeitsbereiche.
Dynamisch zusammengesetzte Entity-IDs wie:
states('sensor.' ~ variable)
werden bewusst nicht geraten. Solche Stellen werden stattdessen als Diagnosehinweis aufgeführt.
Kommentare, normale Texte, Methodenaufrufe auf anderen Objekten und Jinja-Tests werden nicht fälschlich als Entity-Referenzen behandelt.
Die Ergebnisse werden nach Template-Helfer gruppiert und zeigen unter anderem den Namen des Helfers, das betroffene Feld sowie Zeile und Spalte der gefundenen Referenz.
Repository:
Was beide Integrationen bewusst nicht machen
-
Sie führen keinen JavaScript- oder Jinja-Code aus.
-
Sie verändern keine Dashboards, Templates oder Entity-IDs.
-
Sie führen keine automatische Reparatur durch.
-
Sie lesen oder bearbeiten keine
.storage-Dateien. -
Sie nutzen ausschließlich öffentliche Schnittstellen von Home Assistant.
-
Dynamisch erzeugte Entity-IDs werden nicht erraten.
Es handelt sich also ausschließlich um eine statische Analyse.
Gemeinsame Funktionen
Beide Integrationen bieten:
-
ein einstellbares Scan-Intervall
-
einen manuellen Scan über den Service
scan_now -
persistente Benachrichtigungen bei fehlenden Entities
-
eine Ignore-Liste für bewusst geduldete Entity-IDs
-
ein Event, sobald sich das Scan-Ergebnis ändert
-
einen Diagnostics-Download für Fehlerberichte
-
direkt in Home Assistant sichtbare Ergebnisse
-
deutsche und englische Übersetzungen
Sensible Inhalte wie Token oder Passwörter werden in den Diagnosedaten geschwärzt.
Voraussetzungen
-
Home Assistant 2026.7.0 oder neuer
-
HACS 2.0.0 oder neuer
Installation und Nutzung
Die jeweilige Integration wird in HACS als benutzerdefiniertes Repository hinzugefügt und anschließend wie gewohnt über Geräte & Dienste eingerichtet.
Beim Dashboard Entity Checker werden die gewünschten Dashboards ausgewählt. Der Template Entity Checker durchsucht automatisch alle unterstützten UI-Template-Helfer.
Die Sensoren
-
sensor.dashboard_entity_checker -
sensor.template_entity_checker
zeigen die Anzahl der gefundenen fehlenden Entities an. Weitere Details und Fundorte stehen in den Attributen.
Aktueller Stand
Beide Integrationen befinden sich noch im Pre-Release-Status. Ich nutze sie bereits selbst in meiner produktiven Home-Assistant-Instanz, trotzdem wird es sicherlich noch Fälle geben, die bisher nicht vollständig abgedeckt sind.
Feedback, Fehlerberichte und Ideen sind deshalb ausdrücklich willkommen.
Besonders interessieren mich Erfahrungen mit:
-
stark verschachtelten Decluttering Templates
-
komplexerem Button-Card-JavaScript
-
umfangreichen Jinja-Templates
-
nicht erkannten Referenzen
-
möglichen Fehlalarmen
Wer solche Dashboards oder viele UI-basierte Template-Helfer nutzt, darf die Integrationen gerne ausprobieren und berichten, was erkannt wird – und natürlich auch, was noch fehlt.
Schöne Grüße
David
Ausblick: Die Dokumentation für beide Integrationen wird derzeit noch erweitert. Für den Template Entity Checker sind außerdem bereits weitere Funktionen geplant. Dazu gehören unter anderem der Ausschluss kompletter Template-Helfer über Home-Assistant-Labels sowie ein durchsuchbares Auswahlfeld für die Ignore-Liste. Einen festen Termin gibt es dafür noch nicht.


