Hallo zusammen,
wie Ihr bereits wisst, lege ich Wert auf eine kleine Home Assistant Datenbank und in meiner recorder.yaml sind nur die Entitäten aufgenommen, von denen ich auch die Statistiken/Historie benötige.
Leider sind dort auch Entitäten mit enthalten, die ich nur kurz für Automationen benötige und dort z.B. Abfrage, wie der Wert gestern war und diesen Wert benötige ich dann Übermorgen nicht mehr und daher möchte ich solche Entitäten in der Datenbank auch entsprechend entfernen.
.
Mein Smarthome-Kumpel ChatGPT hat mir dafür eine ganz einfache Automation erstellt:
Bitte beachten!
Mindestens eine Entität muss jeweils! in der entsprechenden Kategorie angegeben werden, weil recorder.purge_entities gezielt nur die Recorder-Daten der genannten Entitäten löscht; ohne Entitäten ist das Ziel der Bereinigung nicht eindeutig und es besteht das Risiko einer fehlerhaften bzw. unerwünschten Datenbankbereinigung.
Automation:
alias: "System: Datenbank gezielte Aufbewahrung"
description: >-
Löscht täglich um 06:00 Uhr alte Recorder-Daten ausgewählter Entitäten.
Die Aufbewahrungsdauer wird je Kategorie festgelegt: 1 Tag, 7 Tage und
1 Monat.
Für recorder.purge_entities kann kein repack angegeben werden. Die Aktion
löscht gezielt die Daten der angegebenen Entitäten, packt die Datenbank
danach aber nicht neu.
repack: true ist nur bei recorder.purge verfügbar. Dabei wird die gesamte
Datenbank neu geschrieben, um freigewordenen Speicherplatz physisch
zurückzugewinnen. Das ist eine deutlich schwerere Operation und kann
während der Ausführung zu einer höheren System- und Datenbanklast führen.
Deshalb wird die gezielte Entitäten-Bereinigung hier bewusst ohne repack
verwendet.
Mindestens eine Entität, Domain oder ein Entity-Pattern muss angegeben
werden, damit eindeutig festgelegt ist, welche Recorder-Daten bereinigt
werden sollen. Ohne Auswahl besteht das Risiko einer fehlerhaften bzw.
unerwünschten Datenbankbereinigung.
triggers:
- trigger: time
at: "06:00:00"
conditions: []
actions:
# Kategorie 1: Nur 1 Tag Historie behalten
- action: recorder.purge_entities
data:
keep_days: 1
entity_id:
- sensor_1_tag
# Kategorie 2: 7 Tage Historie behalten
- action: recorder.purge_entities
data:
keep_days: 7
entity_id:
- sensor.sensor_7_tage
# Kategorie 3: 1 Monat Historie behalten
- action: recorder.purge_entities
data:
keep_days: 30
entity_id:
- sensor.sensor_30_tage
mode: single
Du kannst hier auch ganz einfach die Anzahl Tage in den Kategorien verändern oder eine Kategorie entfernen/hinzufügen.
VG Micha