Home Assistant langsam? Datenbank verkleinern
Die Datenbank von Home Assistant bremst Backups und Verlauf? So findest Du die Datenfresser, stellst den Recorder ein und behältst die Statistiken.
Von Nathan Base
Am Anfang ist Home Assistant flott. Nach ein, zwei Jahren und ein paar Dutzend Geräten mehr dauert das Öffnen des Verlaufs plötzlich Sekunden, die nächtlichen Backups sind mehrere Gigabyte groß, und auf einem Raspberry Pi mit SD-Karte wird die Oberfläche zäh. Fast immer steckt dieselbe Ursache dahinter: Die Datenbank ist zu groß geworden, weil ein paar Sensoren im Sekundentakt Werte schreiben, die niemand braucht.
Zuständig dafür ist der Recorder. Er speichert jede Zustandsänderung jeder Entität, damit Verlauf, Logbuch und Diagramme funktionieren. Die gute Nachricht: Mit wenigen Zeilen Konfiguration bekommst Du die Datenbank dauerhaft klein, ohne die Langzeitstatistiken zu verlieren, auf denen zum Beispiel das Energie-Dashboard beruht. Grundlage ist die offizielle Dokumentation zum Recorder, Stand Home Assistant 2026.11.
Wie der Recorder arbeitet
Zwei Arten von Daten musst Du auseinanderhalten:
- Kurzzeitdaten: jede einzelne Zustandsänderung. Ab Werk behält Home Assistant sie 10 Tage. Jede Nacht um 4:12 Uhr löscht der Recorder ältere Einträge, und am zweiten Sonntag jedes Monats packt er die Datenbank neu, damit der freie Platz auch wirklich frei wird.
- Langzeitstatistiken: Mittelwerte, Minima, Maxima und Zählerstände in Stunden-Auflösung, für alle Sensoren mit einer
state_class. Diese Daten löscht der Recorder nie. Sie sind klein und versorgen das Energie-Dashboard und Statistik-Diagramme über Jahre.
Daraus folgt die wichtigste Erkenntnis: Wenn Du Kurzzeitdaten reduzierst, verlierst Du keine Jahreskurven für Strom, Temperatur oder Luftfeuchtigkeit. Du verlierst nur die sekundengenaue Detailansicht für ältere Tage.
Schritt 1: Wie groß ist die Datenbank?
Die Datenbank liegt bei einer Standardinstallation in der Datei home-assistant_v2.db im Konfigurationsordner. Am bequemsten siehst Du ihre Größe mit der App File editor oder Studio Code Server, die Du unter Einstellungen > Apps findest. Bis Anfang 2026 hieß dieser Bereich noch Add-ons.
Als grobe Orientierung: Bis etwa 1 GB ist alles im grünen Bereich. Ab 2 bis 3 GB wird es auf einem Raspberry Pi spürbar, und Datenbanken mit 10 GB und mehr sind fast immer das Werk weniger, sehr gesprächiger Entitäten.
Schritt 2: Die Datenfresser finden
Installiere unter Einstellungen > Apps die App SQLite Web und öffne sie. Wähle links die Tabelle states, wechsle auf Query und führe diese Abfrage aus:
SELECT states_meta.entity_id, COUNT(*) AS anzahl
FROM states
JOIN states_meta ON states.metadata_id = states_meta.metadata_id
GROUP BY states_meta.entity_id
ORDER BY anzahl DESC
LIMIT 20;Die Abfrage zählt, wie viele Zustände jede Entität in der Datenbank hat, und zeigt die zwanzig größten. Typische Kandidaten ganz oben sind:
- Leistungs- und Spannungssensoren von Steckdosen, die jede Sekunde einen neuen Wert melden.
- Signalstärke-Sensoren von WLAN- und Bluetooth-Geräten.
- Uptime- und Zeitsensoren, die sich ständig ändern.
- Mediaplayer, die während der Wiedergabe laufend ihre Position melden.
- Systemmonitor-Werte wie CPU-Last oder Netzwerkdurchsatz.
Frag Dich bei jedem Eintrag: Schaue ich mir dafür jemals den Verlauf an? Wenn nicht, gehört er auf die Ausschlussliste.
Schritt 3: Den Recorder einstellen
Öffne die configuration.yaml und ergänze einen Block für den Recorder. Gibt es dort schon einen recorder:-Abschnitt, erweiterst Du diesen:
recorder:
purge_keep_days: 7
commit_interval: 30
exclude:
domains:
- media_player
- update
entity_globs:
- sensor.*_signal_strength
- sensor.*_rssi
- sensor.*_uptime
- sensor.*_voltage
entities:
- sensor.date
- sensor.time
- sun.sunWas die Zeilen bewirken:
purge_keep_days: 7behält Kurzzeitdaten eine Woche statt zehn Tage. Für die meisten reicht das, denn ältere Werte stehen ja in den Langzeitstatistiken.commit_interval: 30schreibt die gesammelten Änderungen nur alle 30 Sekunden statt alle 5 Sekunden auf den Datenträger. Die Doku empfiehlt das ausdrücklich für Raspberry Pis mit SD-Karte, weil es die Karte schont.excludenimmt ganze Bereiche (domains), Muster (entity_globs) und einzelne Entitäten (entities) von der Aufzeichnung aus. Das Sternchen in einem Muster steht für beliebige Zeichen.
Passe die Liste an das an, was Deine Abfrage gezeigt hat. Ausgeschlossene Entitäten funktionieren weiter ganz normal in Automationen und Dashboards. Nur ihr Verlauf wird nicht mehr gespeichert.
Prüfe die Konfiguration unter Entwicklerwerkzeuge > YAML mit Konfiguration prüfen und starte Home Assistant danach neu.
Schritt 4: Altlasten sofort entfernen
Die neue Konfiguration wirkt nur auf neue Daten. Was schon in der Datenbank liegt, räumst Du einmalig mit einer Aktion auf. Öffne Entwicklerwerkzeuge > Aktionen, wechsle in den YAML-Modus und führe aus:
action: recorder.purge
data:
keep_days: 7
repack: true
apply_filter: trueapply_filter: true löscht dabei auch alle Altdaten der Entitäten, die Du gerade ausgeschlossen hast. repack: true schreibt die Datenbank danach neu, damit sie tatsächlich kleiner wird. Das dauert bei großen Datenbanken einige Minuten, und Home Assistant kann in dieser Zeit träge reagieren. Wichtig laut Doku: Auf dem Datenträger muss mindestens so viel Platz frei sein, wie die Datenbank groß ist, weil beim Umpacken eine Kopie entsteht.
Willst Du nur einzelne Entitäten loswerden, ohne den Rest anzufassen, gibt es die Aktion recorder.purge_entities:
action: recorder.purge_entities
target:
entity_id: sensor.waschmaschine_leistung
data:
keep_days: 0Prüfen, ob es gewirkt hat
Schau Dir nach dem Umpacken erneut die Größe der Datei home-assistant_v2.db an. Eine Verkleinerung auf ein Viertel oder weniger ist bei typischen Installationen keine Seltenheit. Öffne außerdem das Energie-Dashboard und ein Statistik-Diagramm für einen Temperatursensor: Die Werte der letzten Monate müssen weiterhin da sein.
Das nächste Backup ist entsprechend kleiner. Wie Du Backups automatisch auf ein NAS oder einen USB-Stick legst, steht in Home Assistant Backup: Schlüssel, USB-Laufwerk und NAS.
Häufige Fragen
Kann ich den Verlauf einzelner Sensoren länger behalten? Nicht pro Entität über den Recorder. Wenn Du einen Wert über Jahre im Detail brauchst, sorge dafür, dass er eine state_class hat. Dann landet er in den Langzeitstatistiken.
Hilft eine externe Datenbank wie MariaDB? Bei sehr großen Installationen kann MariaDB schneller sein, sie löst aber nicht das eigentliche Problem. Eine zu große SQLite-Datenbank wird als zu große MariaDB-Datenbank nicht schneller. Räum zuerst auf.
Die Datenbank wird nach dem Purge nicht kleiner. Dann fehlte das Umpacken. Führe recorder.purge noch einmal mit repack: true aus.
Home Assistant meldet eine beschädigte Datenbank. Das passiert vor allem nach Stromausfällen auf SD-Karten. Home Assistant benennt die defekte Datei dann um und beginnt mit einer neuen. Die Langzeitstatistiken sind in diesem Fall weg, die Konfiguration bleibt. Dagegen helfen eine SSD statt SD-Karte und regelmäßige Backups. Ob für Dich ein Umstieg auf andere Hardware sinnvoll ist, klärt der Vergleich Raspberry Pi 5 oder Mini-PC für Home Assistant?
Fazit
Eine träge Home-Assistant-Installation braucht selten neue Hardware, sondern meistens eine kurze Ausschlussliste. Finde mit der Abfrage die zehn gesprächigsten Entitäten, schließ sie aus, räum einmal mit recorder.purge auf, und die Datenbank bleibt auf Dauer schlank. Die Kurven, die Dir wirklich wichtig sind, bleiben dabei in den Langzeitstatistiken erhalten.
Weiterlesen.
-
Raspberry Pi & LinuxHome Assistant Backup: Schlüssel, USB-Laufwerk und NAS
Home Assistant richtig sichern: Notfallschlüssel, USB-Laufwerk, NAS und Google Drive, plus fertige Automationen, die fehlende Backups melden.
Nathan Base -
Raspberry Pi & LinuxRaspberry Pi 5 oder Mini-PC für Home Assistant?
Raspberry Pi 5, Home Assistant Green oder Mini-PC mit Intel N150: Stromverbrauch, Stromkosten pro Jahr im 24/7-Betrieb und Gesamtkosten über fünf Jahre.
Nathan Base -
Raspberry Pi & LinuxHome Assistant: Melden, wenn ein Sensor keine Daten mehr schickt
Leere Batterie oder Funkloch: Ein Template-Sensor in Home Assistant erkennt Sensoren, die seit Stunden schweigen, und eine Automation meldet sie.
Nathan Base -
Raspberry Pi & LinuxThemes in Home Assistant installieren und aktivieren
So gibst Du dem Home-Assistant-Dashboard ein neues Design: Theme über HACS oder per YAML-Datei installieren, aktivieren und für alle Geräte festlegen.
Nathan Base -
Raspberry Pi & LinuxZigbee in Home Assistant: ZHA oder Zigbee2MQTT?
ZHA oder Zigbee2MQTT für Home Assistant: konkrete Vor- und Nachteile aus der Community, bewertet, mit klarer Empfehlung und Einrichtung von ZHA.
Nathan Base -
Raspberry Pi & LinuxAnleitung: USB-IR-Sender für Raspberry Pi selbst bauen
Mit einem selbstgelöteten USB-IR-Sender für rund 15 Euro steuert der Raspberry Pi einen alten Kenwood-Receiver per Kommandozeile. Bauteile, Code und Test.
Nathan Base