Home Assistant: Logging einrichten und aufräumen

Von Home Assistant werden die Protokolle der Anwendung in einer eigenen Datei gespeichert. Je nach Anzahl der eingebundenen Geräte können da schon einige MB pro Tag zusammenkommen. Zusätzlich wird der Verlauf der unterschiedlichen Zustände in von der der Recorder-Komponente in der Home Assistant Datenbank aufgezeichnet. Insgesamt können sich da einige Daten ansammeln. Damit das Dateisystem nicht voll geschrieben wird, kann die Home Assistant Installation aber etwas angepasst werden.

1| Logrotate aktivieren

Wird Home Assistant in einem Python Virtual Environment ausgeführt und per systemctl gestartet, so kann zusätzlich auch noch ein Log-Rotating aktiviert werden. Dazu muss beim Start der Parameter --log-rotate-days <LOG_ROTATE_DAYS> mit angegeben werden. Sollen die Logs der letzten 5 Tage aufgehoben werden, so sollte das Start-Up-Script ungefähr folgende Zeile enthalten:

ExecStart=/srv/homeassistant/bin/hass -c "/home/%i/.homeassistant" --log-rotate-days 4

2| Recorder-Datenbank manuell bereinigen

In den Developer Tools von Home Assistant kann ein Purge der Recorder-Datenbank angestoßen werden .Wird dabei der Parameter repack auf true gesetzt, so wird die Datenbank dabei zusätzlich bereinigt und neu geschrieben.

Recorder Log löschen

Damit habe ich beispielsweise meine Datenbank von 1,7 GB auf 1,3 GB reduzieren können. Wenn das immer noch zu viel ist, so kann der Wert für die keep_days natürlich noch verringert werden, so dass die Historie zusätzlich verkürzt wird. Dadurch konnte ich meine Recorder-DB beispielsweise auf xxx MB minimiert werden.

Hinweis: Wird der Service ausgeführt, so ist etwas Geduld angesagt. Je nach Größe der Datenbank kann es auch einige Stunden dauern bis der Purge-Vorgang abgeschlossen ist.

3| Recorder-Konfiguration anpassen

Damit die Datenbank gar nicht erst so groß wird, kann in der configuration.yaml bestimmte Geräte von der Zustandsaufzeichnung ausgenommen werden. Welche Parameter dafür zur Verfügung stehen ist auf der Seite der Recorder-Integration ausführlich beschrieben. 

Ich habe bei mir die Parameter auto_purge und purge_keep_days entsprechend angepasst und zusätzlich einige Devices und Domänen aus der Protokollierung herausgenommen:

recorder:
  auto_purge: true
  purge_keep_days: 5
  exclude:
    domains:
      - updater
      - media_player
    entities:
      - sensor.terra_i2c_internal
      - sensor.terra_i2c_external 

Kommentare

PostadresseE-MailadresseFestnetzMobiltelefonSMS/SignalThreemaTwitter DirektnachrichtFAXWeb Page