Da ich gern von einigen Entities längere Recorderhistoriedaten hätte (z.B. meine Energiezähler) habe ich die Datenbank von SQLite auf MariaDB geändert. Das klappt auch erstmal. Ich habe bei der Installation aber nichts dazu gefunden oder gar eingestellt mit dem ich bestimme was dort nun abgelegt wird und wie lange?
Das habe ich bei SQLite auch nicht gemacht, aber ich denke wenn ich es so jetzt lasse wird mir auch MariaDB nicht unbedingt längere Historywerte bescheren, oder speichert die nun einfach alles bis zum Disk-Full?
BTW: Ob SQLite oder MariaDB, welche Daten und wie lange diese gespeichert werden, hängt von der recorder Konfiguration ab. Und nicht von der verwendetet Datenbank.
Das Thema Langzeitstatistik ist mit SQLite und MariaDB verfügbar.
Ja, schon gelesen aber beantwortet meine Fragen nicht vollständig.
Es ist ka so das auch die Speicherung in der MariaDB micht automatisch längere Historyspeicherung erwirkt, der Default bleibt bei 10 Tagen.
Wie gehe ich vor um einzelne Sensoren länger aufzuheben? In die Exclude-Liste, prinzipiell, klar, aber wie genau? Jeden Sensor einzeln aufnehmen? Oder bestimmte Klassen? Oder kann ich sowas wie ein Tag fü Aufbewahrungsrichtlinien einrichten (365 Tage, 10 Jahre, …)? Und was muss ich dann tun damit das auch geschieht? Ich brauche dann doch einen eigenen Purger?
Alle Sensoren die in die Langzeithistorie sollen brauchen eine state_class measurement, total oder total_increasing.
Alle Sensoren die keine oder keine solche state_class haben werden nach der recorder-Parametrierung mit purge_keep_days (die wenn nichts anderes angegeben ist per default auf 10 Tage steht) gelöscht.
Es kann nur eine gültige purge_keep_days Parametrierung zur Zeit geben.
Alle Sensoren die überhaupt nicht in die Historie gehen sollen kann man mit exclude in der recorder Parametrierung ausschließen. Wenn sie aber keine state_class wie oben haben werden sie eh nach purge_keep_days gelöscht.
Eigentlich muss man also nur auf die korrekte state_class achten und alles andere übernimmt HA automatisch für dich.
Wenn dir die Möglichkeiten der HA Historie nicht ausreichen musst du über weitere DB und Auswertung mit Grafana o.ä. nachdenken. Im Normalfall ist das aber IMHO nicht notwendig.
Ok, also gibt es praktisch nur die kurzzeit und endlosaufzeichnung, abhängig von der state_class. In der DB gibt es ja eine Tabelle für die states (aktueller/letzter Wert), eine für die short-term history (default 10 Tage) in dem bei jedem state change geschrieben wird und ene long-term history. Letztere müsste ich also selbst purgen wenn die z.b, nur 365 oder 400 Tage lang sein soll. Bzw. wenn ich verschiedene Aufbewahrungsrichtlinien möchte dann eben über SQL select.
Und es gibt bei den longterm daten nicht sowas wie bei RRD das ein integral gebildet wird? Es werden also wirklich alle statusänderungen gespeichert?