Wir hatten diese Woche ein sehr interessantes Wochenthema. Vielen Dank an @Dreckfresse für den Input. Ich wollte nicht, dass dieses Thema untergeht und habe daher ein kleines Wiki inkl. Analyzer Tool geschrieben in der Hoffnung, dass hier viele mitlesen und es nutzen können.
Man kann wie im HA-Forum beschrieben wurde, auf dem Dahsboard einen Button anlegen, der nach drücken alle Home Assistant Entitäten, Automationen usw. in eine csv Datei exportiert. Diese Funktion vermisse ich aktuell in HA, da man so eine schöne “offline/backup” Variante hat, die Entitäten für sich zu strukturieren, zu kontrollieren, zu dokumentieren bzw. sich einen Überblick zu verschaffen. Perfekt um “Leichen” auszusortieren, Namenstrukturen zu entwickeln usw… Anschauen könnt ihr euch die csv-Datei z.B. mit dem beigefügtem Analyzer Tool oder mit Excel.

Erstellt als erstes im Dashboard eine neue custom button card und fügt dort folgenden Code ein. Im Anschluss solltet ihr wie im Bild gezeigt diesen Button erhalten. Drückt nach Fertigstellung den Button und ihr bekommt die csv-Datei in den Download-Ordner.
type: custom:button-card
name: Entity Export as CSV
tap_action:
action: javascript
javascript: |
[[[
function generateEntityItems() {
const hass = document.querySelector("home-assistant").hass;
const entities = hass.entities;
const sorted = Object.values(entities).sort((a, b) => {
const idA = a.entity_id?.toLowerCase() || '';
const idB = b.entity_id?.toLowerCase() || '';
return idA.localeCompare(idB);
});
let csvContent = "ENTITY ID;ENTITY NAME;DEVICE NAME;DEVICE ID;AREA;PLATFORM (INTEGRATION);STATE;FORMATED STATE\n";
sorted.forEach((ent) => {
const eId = ent.entity_id;
const stateObj = hass.states[eId];
const entityName = hass.formatEntityName(stateObj, "entity");
const deviceName = hass.formatEntityName(stateObj, "device");
const deviceId = ent.device_id;
const areaName = hass.formatEntityName(stateObj, "area") || '';
const platform = ent.platform || '';
const state = stateObj.state;
const formatedState = hass.formatEntityState(stateObj);
const info = [eId, entityName, deviceName, deviceId, areaName, platform, state, formatedState].join("; ");
csvContent += `${info}\n`;
});
const blob = new Blob([csvContent], { type: "text/csv;charset=utf-8;" });
const url = URL.createObjectURL(blob);
const link = document.createElement("a");
link.setAttribute("href", url);
link.setAttribute("download", "hass_entities.csv");
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
};
generateEntityItems();
]]]
Ich habe ein kleines Python Tool entwickelt, dass die CSV einlesen kann. Ihr könnt aber auch z.B. mit Excel (Spaltenansicht) oder anderem Programm die Datei anschauen. Für Windows gibt es gibt zwei Wege für die Installation, erstens bequem mit fertigem Programm arbeiten oder zweitens Python direkt installieren und das py-Script starten. Für Linux bleibt aktuell nur die Möglichkeit über Python direkt zu arbeiten, folgt dazu den Anweisungen.
Für Windows ladet euch einfach die ausführbare Version (.exe) herunter und startet das Programm.
Hier könnt ihr das Tool bei mir im github herunterladen:
Betrifft nur die manuelle Installation:
Das Tool nutzt Python, daher muss Python installiert sein oder werden!
In Windows öffnet ihr dazu die Powershell und gebt folgenden Befehl ein:
winget install Python
Alternativ oder sogar besser ist es die aktuelle Python-Version von der Website für Windows herunterzuladen und zu installieren.
Danach installiert ihr noch das pandas Paket bzw. die Bibliothek:
pip install pandas
Unter Windows könnt ihr die Python Datei direkt aus dem „src“ Ordner mit Doppelklick starten.
Unter Linux gebt folgende Befehle im Terminal ein:
sudo apt update && sudo apt install python3
Danach installiert ihr noch das pandas Paket bzw. die Bibliothek:
pip install pandas
Um das Programm zu öffnen, wechselt mit cd /euer Verzeichnis in den Ordner wo euer Entity_Analyzer liegt und startet mit folgendem Befehl das Tool.
python3 entity_analyzer_v1.py
Nun könnt ihr den Entity_Analyzer öffnen und eure csv-Datei auswählen. Die Oberfläche bietet ein paar Möglichkeiten eure Entitäten zu sichten. Nach dem öffnen seht ihr unten links die Anzahl der Entitäten!
-
Jetzt könnt ihr beispielsweise nach gewünschten Entitäten suchen:
Über die Spaltennamen kann beim auswählen eine aufsteigende oder absteigende Sortierung erfolgen.
- Die Entitätsstatistik abrufen und sehen wie viele Lichter oder Schalter ihr habt usw.:
- Oder ihr könnt nach Area also Bereichen bzw. nach Platform und somit Integrationen filtern.
Ihr könnt die geänderte csv-Datei mit Semikolon Trenner auch direkt in Excel öffnen und einsehen. Wer sich dort ein wenig auskennt, kann schnell die obere Zeile fixieren und ein Filter auf die Tabelle anwenden. Damit hat man einen ähnlichen Funktionsumfang wie mit meinem Tool. Aber nicht so ein eine schöne Zusammenfassung wie in den letzten Bildern. ![]()
So hoffe nichts vergessen zu haben, ansonsten schreibt gerne und ich kann das hier noch entsprechend ergänzen. ![]()
Danke an @Nicknol für die Änderung der Formatierung von Komma in Semikolon Trenner.














