Zwei Entity-Checker für Home Assistant: Fehlende Referenzen in Dashboards und Template-Helfern finden

Hallo zusammen,

ich bin David und neu hier im Forum. Ich nutze Home Assistant schon seit 2023 :wink: 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 entity oder entities

  • Referenzen in Button-Card-JavaScript wie states['sensor.beispiel'] oder states.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.

Update: Template Entity Checker v0.1.2 und Dashboard Entity Checker v0.3.6 sind verfügbar

Für meine beiden Home-Assistant-Integrationen wurden neue Versionen veröffentlicht. Die Updates verbessern die Auswahl von Ausschlüssen, erweitern die Erkennung und bringen eine vollständige deutsche und englische Dokumentation mit.

Template Entity Checker v0.1.3

Der Template Entity Checker prüft die über die Home-Assistant-Oberfläche erstellten Template-Helfer auf fehlende Entity-Referenzen.

Highlights:

  • Durchsuchbare Liste für exakte Entity-Ausschlüsse.
  • Optional können vollständige Template-Helfer über ein vorhandenes Home-Assistant-Label ausgeschlossen werden.
  • Ignorierte Funde bleiben im Sensor und in den Diagnosen nachvollziehbar.
  • Erkennt statische Entity-IDs jetzt auch in allen unterstützten has_value-Varianten: als Funktion, Filter und Test.
  • Nativer Home-Assistant-Schalter für Benachrichtigungen.
  • Bestehende Ausschlüsse bleiben erhalten.

Die Integration prüft weiterhin ausschließlich über die Oberfläche angelegte Template-Helfer. YAML-Templates, Automationen, Skripte, Dashboards und Blueprints gehören nicht zu ihrem Bereich.

Release: Release v0.1.2 · Dajwitt/template-entity-checker · GitHub Dokumentation: Template Entity Checker – Dokumentation

Dashboard Entity Checker v0.3.6

Der Dashboard Entity Checker durchsucht ausgewählte Lovelace-Dashboards nach fehlenden Entity-Referenzen – auch in unterstützten verschachtelten Decluttering-Templates und Button-Card-JavaScript.

Highlights:

  • Neue durchsuchbare Mehrfachauswahl für auszuschließende Entity-IDs.
  • Enthält alle Entities aus der State Machine und der Entity Registry.
  • Auch registrierte oder deaktivierte Entities ohne aktuellen State stehen zur Auswahl.
  • Nativer Home-Assistant-Schalter für Benachrichtigungen.
  • Bestehende textbasierte Ignore-Werte werden automatisch übernommen.

Es ist bei beiden Integrationen keine manuelle Änderung der Konfiguration erforderlich. Einfach über HACS aktualisieren und Home Assistant anschließend neu starten.

Release: Release v0.3.6 · Dajwitt/dashboard-entity-checker · GitHub Dokumentation: Dashboard Entity Checker – Dokumentation