# Datenaufbewahrung (recorder) — Ergänzung zur bestehenden configuration.yaml.
#
# WOFÜR DAS DA IST
# ----------------
# Home Assistant löscht Sensor-Verlaufsdaten standardmäßig nach 10 Tagen
# (recorder.purge_keep_days, Standardwert). Das ist die Obergrenze dafür, wie
# weit ein späterer Import "Daten aus Home Assistant importieren" überhaupt
# zurückreichen KANN — was der recorder gelöscht hat, ist unwiederbringlich
# weg, auch für die App.
#
# Die App selbst speichert dagegen bereits unbegrenzt: fahrten.jsonl,
# tankvorgaenge.jsonl, batteriespannung.jsonl und fahrzeugprofil.json unter
# /config/audi_dashboard/ werden nirgends automatisch gekürzt oder gelöscht
# (siehe profil.py — es gibt keine Purge-Logik). Betroffen ist also nur der
# ROHE Sensor-Verlauf in Home Assistants eigener Datenbank, aus dem die App
# ihre Datensätze erst ableitet.
#
# Dieser Block hebt die Aufbewahrung auf ein Jahr an. Das ist die
# Übergangslösung, bis die App die Daten selbst dauerhaft übernimmt: fährt
# der Import einmal über einen Zeitraum, liegen die daraus erzeugten Fahrten/
# Tankvorgänge/Spannungswerte dauerhaft in den .jsonl-Beständen und sind vom
# recorder unabhängig.
#
# EINBAU
# ------
# Diesen Block in die bestehende configuration.yaml übernehmen (nicht die
# Datei ersetzen). Existiert dort schon ein `recorder:`-Block, die Werte dort
# zusammenführen statt einen zweiten anzulegen. Danach Home Assistant neu
# starten (Entwicklerwerkzeuge -> YAML -> Neu starten).
#
# PLATZBEDARF — an der Testinstanz gemessen, nicht geschätzt
# ---------------------------------------------------------
# Stand 2026-08-23: 90.858 Zustandsänderungen in 17 Tagen = rund 5.300 pro
# Tag, Datenbank 64,7 MB. Hochgerechnet auf 365 Tage sind das grob 1,9 Mio.
# Zeilen und in der Größenordnung 1–1,5 GB.
#
# ACHTUNG bei HA OS auf kleinem Datenträger (Raspberry Pi mit SD-Karte,
# 32-GB-eMMC): das ist der einzige Punkt dieser ganzen App, der einer sonst
# gesunden Installation gefährlich werden kann. Läuft der Datenträger voll,
# startet Home Assistant nicht mehr sauber - unabhängig von dieser App.
#
# Vor dem Einbau deshalb einmal nachsehen, wie viel Platz frei ist:
# Einstellungen -> System -> Speicher. Faustregel: mindestens 5 GB frei,
# sonst besser mit einem kürzeren Zeitraum anfangen (z. B.
# purge_keep_days: 90) und die auskommentierte exclude:-Liste unten gleich
# mit aktivieren. 90 Tage reichen für den Zweck "Vergangenheit nachtragen"
# in aller Regel aus - der Import holt die Daten ja dauerhaft in die
# .jsonl-Bestände der App, die danach vom recorder unabhängig sind.
#
# Nach ein paar Wochen noch einmal unter Einstellungen -> System -> Speicher
# nachsehen und bei Bedarf nachjustieren.
#
# 96 % dieser Zeilen stammen aus der EU-Data-Act-Integration
# (`cupra_eu_data_act`, ~1.737 Zustände je Entität in 17 Tagen, also etwa
# alle 14 Minuten ein Update über rund 50 Entitäten), 1 % vom FMM003 über
# flespi, 2 % alles Übrige. Wer den Platzbedarf drücken will, kürzt also bei
# der EU-Data-Act-Integration — die auskommentierte `exclude`-Liste unten ist
# ein Vorschlag dafür, welche Entitäten historisch nichts hergeben.

recorder:
  # 365 Tage statt der 10 Tage Standardaufbewahrung.
  purge_keep_days: 365

  # Bewusst KEIN `include:`-Block. Ein `include` würde bedeuten, dass Home
  # Assistant *nur noch* die dort genannten Entitäten aufzeichnet und für
  # alles andere gar keinen Verlauf mehr führt — auch nicht für die 10 Tage,
  # die es vorher hatte. Da auf dieser Instanz ohnehin 97 % der Aufzeichnung
  # auf Fahrzeugdaten entfällt, spart das kaum Platz, kostet aber den Verlauf
  # jeder anderen Integration. Deshalb: global ein Jahr aufbewahren.

  # Standardmäßig 1 Sekunde. 30 Sekunden bündelt die Schreibvorgänge, was vor
  # allem SD-Karten schont; der Preis ist, dass die letzten bis zu 30
  # Sekunden bei einem harten Stromausfall fehlen können. Für Fahrzeugdaten,
  # die ohnehin nur alle paar Minuten aktualisiert werden, ist das
  # unerheblich.
  commit_interval: 30

  # Nächtliches Aufräumen (Standard 04:12) mit Neuaufbau der Datenbankdatei.
  # repack gibt den durch gelöschte Zeilen frei gewordenen Platz auch
  # tatsächlich ans Dateisystem zurück, statt die Datei nur intern als "leer"
  # zu markieren — bei einem Jahr Aufbewahrung sonst der übliche Grund, warum
  # die Datei nur noch wächst.
  auto_purge: true
  auto_repack: true

  # OPTIONAL — nur einkommentieren, wenn die Datenbank zu groß wird.
  # Diese Entitäten liefern über die Zeit keinen Erkenntniswert: reine
  # Diagnose-/Netzwerkwerte des Trackers und abgeleitete Momentanwerte der
  # EU-Data-Act-Integration, die sich jederzeit neu berechnen lassen.
  # exclude:
  #   entity_globs:
  #     - sensor.*_tire_pressure_diff_*
  #     - sensor.*fmm003*_mobile_network_*
  #     - sensor.*fmm003*_lte_*
  #     - sensor.*fmm003*_network_*
  #     - sensor.*fmm003*_id_of_*
  #     - sensor.*fmm003*_*dilution_of_precision
  #     - sensor.*fmm003*_satellites
  #   entities:
  #     - sensor.audi_rs_4_avant_ei_t1302_echo
  #     - sensor.audi_rs_4_avant_ei_t1302_trueness
  #     - sensor.audi_rs_4_avant_uncurated_fields
  #     - sensor.audi_rs_4_avant_minutes_since_last_snapshot
