Zum Inhalt

Home-Assistant-Datenbank mit Recorder klein halten

Veröffentlicht am 22. August 2026 · Geschätzte Lesezeit: 4 Minuten

Der Recorder speichert Zustandsänderungen für Verlauf, Aktivitäten, Diagramme und Statistiken. Sehr häufig meldende Sensoren können die Datenbank und damit auch Backups unnötig vergrößern. Mit einer gezielten Filterung optimierst du sie in etwa 20 Minuten, ohne eine zusätzliche Datenbank zu installieren.

Voraussetzungen

  • Eine laufende Home-Assistant-Installation mit Administratorzugang
  • Zugriff auf die Datei configuration.yaml
  • Ein aktuelles vollständiges Home-Assistant-Backup
  • Genügend freier Speicher für eine zeitweise Kopie der Datenbank

1. Backup und Datenbankgröße prüfen

Erstelle zuerst unter Einstellungen → System → Backups ein vollständiges Backup und lade es zusätzlich auf ein anderes Gerät herunter.

Bei Home Assistant OS zeigt dieser Befehl im Terminal-Add-on die Größe der empfohlenen SQLite-Datenbank an:

ls -lh /config/home-assistant_v2.db

Bei einer Docker-Installation führst du stattdessen diesen Befehl auf dem Docker-Host aus. Ersetze <container-name> durch den Namen deines Home-Assistant-Containers:

docker exec <container-name> ls -lh /config/home-assistant_v2.db

Freien Speicher nicht zu knapp planen

Für Reparatur, Migration oder Repack soll mindestens noch einmal die aktuelle Datenbankgröße frei sein. Bei beschädigtem SQLite-Speicher empfiehlt die offizielle Dokumentation sogar mindestens das 2,5-Fache der Datenbankgröße.

2. Unwichtige Vielschreiber auswählen

Öffne in Home Assistant Entwicklerwerkzeuge → Zustände und notiere nur Entitäten, deren alten Verlauf du wirklich nicht brauchst. Typische Kandidaten sind Diagnosewerte wie WLAN-Signalstärke, Linkqualität oder ständig wechselnde Zeitstempel.

Energie- und Verbrauchssensoren nicht blind ausschließen

Ausgeschlossene Entitäten erhalten künftig keinen Recorder-Verlauf. Prüfe bei Energie-, Leistungs-, Zähler-, Temperatur- und Sicherheitssensoren besonders sorgfältig, ob Diagramme, Statistiken oder Automationen ihre Historie benötigen.

3. Recorder konfigurieren

Öffne configuration.yaml und ergänze folgenden Block. Ersetze die Beispiel-Entitäten unter entities durch deine zuvor notierten vollständigen Entitäts-IDs:

recorder:
  purge_keep_days: 10
  auto_purge: true
  auto_repack: true
  commit_interval: 30
  exclude:
    entities:
      - sensor.beispielgeraet_rssi
      - sensor.beispielgeraet_linkquality

purge_keep_days: 10 behält zehn Tage normalen Verlauf. commit_interval: 30 reduziert Schreibzugriffe, während aktuelle Anzeigen weiterhin direkt aktualisiert werden. Die beiden Beispielnamen sind Platzhalter und müssen ersetzt oder entfernt werden.

Recorder nur einmal eintragen

Existiert in configuration.yaml bereits ein Abschnitt recorder:, ergänze diesen. Ein zweiter gleichnamiger Abschnitt ist ungültig und kann den Neustart verhindern.

4. Konfiguration prüfen und neu starten

Öffne Entwicklerwerkzeuge → YAML und starte die Konfigurationsprüfung. Behebe alle gemeldeten Fehler, bevor du Home Assistant neu startest. Führe den Neustart danach über Einstellungen → System → Neu starten aus.

Prüfe nach dem Start unter Einstellungen → System → Protokolle, ob Meldungen zum Recorder oder zur YAML-Konfiguration erscheinen.

5. Alte ausgeschlossene Daten bereinigen

Die Filter verhindern neue Einträge, entfernen alte Daten aber nicht sofort. Öffne Entwicklerwerkzeuge → Aktionen, wähle Recorder: Datenbank bereinigen und verwende diese Aktionsdaten:

action: recorder.purge
data:
  keep_days: 10
  repack: true
  apply_filter: true

apply_filter: true entfernt auch alte Daten der nun ausgeschlossenen Entitäten. repack: true versucht anschließend, Speicherplatz freizugeben.

Repack ist eine schwere Operation

Starte den Vorgang nur nach einem Backup, mit ausreichend freiem Speicher und möglichst ohne parallel laufende Wartung. Home Assistant kann währenddessen langsamer reagieren. Unterbrich den Server nicht und trenne ihn nicht vom Strom.

6. Ergebnis kontrollieren

Warte nach der Bereinigung einige Minuten und prüfe die Datenbankgröße erneut. Bei Home Assistant OS verwendest du:

ls -lh /config/home-assistant_v2.db

Bei Docker ersetzt du wieder <container-name> durch den tatsächlichen Namen:

docker exec <container-name> ls -lh /config/home-assistant_v2.db

Kontrolliere außerdem Verlauf, Aktivitäten und Energie-Dashboard. Die Größe muss nicht sofort stark sinken; entscheidend ist auch, dass sie in den folgenden Tagen langsamer wächst.

7. Rückweg und gezielte Korrektur

Wenn dir nach der Änderung ein Verlauf fehlt, entferne die betreffende Entität aus exclude, prüfe die YAML-Konfiguration und starte Home Assistant neu. Künftige Werte werden dann wieder aufgezeichnet; bereits gelöschte Historie kommt nur aus einem Backup zurück.

Für die vollständige Rückkehr entfernst du den selbst ergänzten recorder-Block und startest Home Assistant neu. Die empfohlene SQLite-Datenbank wird weiterhin automatisch mit den Standardwerten verwendet.

8. Typische Fehler beheben

  • Home Assistant startet nicht: Prüfe Einrückung und doppelte recorder:-Blöcke in configuration.yaml.
  • Datenbank wird trotz Purge nicht kleiner: Führe die Aktion mit repack: true aus und prüfe vorher den freien Speicher.
  • Ein Sensor fehlt im Verlauf: Entferne ihn aus exclude; die Aufzeichnung beginnt erst ab dem nächsten Zustandswechsel wieder.
  • Datenbank wächst weiter schnell: Suche nach weiteren häufig wechselnden Diagnoseentitäten, statt pauschal ganze wichtige Domänen auszuschließen.
  • Externe MariaDB im Einsatz: Nutze deren eigenes Backup-Verfahren. Ein Wechsel der Recorder-Datenbank wird von Home Assistant nicht als Datenmigration unterstützt.

9. Quellen und Videos

Fertig

Der Recorder behält nun zehn Tage normalen Verlauf, schreibt seltener auf den Datenträger und ignoriert nur die von dir ausgewählten Vielschreiber. Prüfe nach einigen Tagen erneut die Datenbankgröße sowie die für dich wichtigen Verlaufs- und Energieansichten.