Was passiert mit "LEICHEN" in der MariaDB?

Im Zuge der Umstellung auf Z2M, habe ich alle meine Sensoren umbenannt. Jetzt sind natürlich die alten vom “Recorder” in der MariaDB gespeicherte Daten obsolete.

Hat jemand eine Ahnung was mit denen passiert? Ist HA “schlau” genug zu merken, dass die nicht mehr benötigt werden und “purged” die irgendwann? Muss man per SQL selber Hand anlegen und wenn ja wie?

Ich habe das auch schon direkt per SQL versucht nicht mehr benutzte Daten zu löschen. Das ist aber nicht ganz so einfach, speziell wenn man bestimmte Zeiträume entfernen möchte, weil in jedem Datensatz eine Referenz zum Vorgänger steht.
Über die ID Erkennung in der Tabelle tates_meta und dann dem Löschen dieser ID in der Tabelle states könnte es funktionieren.

Mit SQL kenne ich mich noch weniger aus als mit HA… :crazy_face:

Also bleibt wohl nur die Hoffnung, dass HA sich kümmert.

Warum da am 03.02 auf einmal so ein Anstieg war, kann ich nicht nachvollziehen. Scheint aber wieder weniger zu werden…

Keine Ahnung was genau eigentlich Dein Problem ist- also ob und wieso Du Daten von alten Sensoren löschen willst

Aber denk dran dass eine “Homeassistent das sich kümmert” nicht einfach Daten wegwerfen kann.

Bei der aktuellen Datenbank löst sich das ja dadurch, dass regelmässig der Datenbestand gereinigt wird, damit die Datenbank mit der Du arbeitest nicht zu gross wird.

Setzt Du Maria DB allerdings wie ich dazu ein, eine Auswahl an Sensordaten langfristig zu speichern löst sich das gar nicht - was ja auch grob unsinnig wäre.

Ohne dass Du genau beschreibst, was Du mit Maria DB machst und wie Du sie konfiguriert hast und wieso Du Maria DB ausgewählt hast ist das ganze “stochern im Dunkeln”

Weil ich die “Leichen” nicht die nächsten X Jahre in meiner Datenbank mitschleifen möchte!!! Ich denke das “wieso” sollte doch ziemlich klar sein!!!

Dann hast Du den Text nicht verstanden und ich finde ich habe es sehr gut beschrieben.

Sensoren umbenannt die bisher gespeichert wurden. Werden also nicht mehr gespeichert, sind dann aber wohl als “Leiche” in der Datenbank und blähen diese auf. Werden ja nicht mehr vom HA recorder “betreut” und gepurged, oder doch?

Klare Frage: Was passiert mit denen in der Datenbank? Bleiben die einfach drin?

Für Deine sogenannte Leichen kannst Du den SERVICE PURGE_ENTITIES verwenden.
Siehe Recorder Dokumentation.

Gruß
Osorkon

Ich versuchs nochmal:

In meiner Datenbank speichere ich Wetter- und Bewässerungsdaten.

Die Sensoren hab ich im Laufe der Jahre mehrfach getauscht, aber wenn ich auf Kulturdaten in der Fruchtfolge zugreifen möchte, Werte ich auch die alten Daten aus.

Die Frage wie Du “Leichen” von nützlich unterscheiden kannst, ist also bei dem von Dir geforderten automatischen Aufräumen sehr wichtig.

Die naheliegendste Antwort darauf ist, davon auszugehen, dass kein Nutzer Daten jahrelang speichert, die er gar nicht braucht.

Also ist doch die Frage: Warum speicherst Du Daten, wenn Du sie nicht brauchst berechtigt.

In Auswertungen kannst Du ja alte und neue Sensorennamen aufaddieren und so funktioniert alles weiter.

Und die Datenmenge wird durch alte Sensoren die Du umbenannt hast, ja auch nicht grösser, Du hast ja im wesentlichen die selben Daten nur mit anderer Bezeichnung in der Datenbank.

Daher glaube ich, dass die Frage “wie verschlanke ich meine Datenbank so, dass nur die wesentlichen Daten aufgehoben werden” Dir interessante Infos liefern kann.

Wenn Du zB von einer Ölheizung auf Wärmepumpe wechselst verschwinden ja Sensoren. Was nicht bedeutet, dass deren gespeicherte Werte uninteressant werden - denn es ermöglicht zB den Primärenergieverbrauch direkt zu vergleichen.

Und daher glaube ich nicht, dass Homeassistent jemals “automatisch Aufräumen” wird.

Und wenn Du Daten nicht jahrelang mit schleppen möchtest, macht es doch Sinn, das Speichern zu unterdrücken. Du kannst ja für jeden Wert festlegen, ob und wie lange er gespeichert wird.

Ich kriege alle 10 sec Wetterdaten. Langfristig speichern tue ich nur jeden Stunde = 35 mal weniger Daten.

Wenn Deine Datenbank mit Datensätzen wie “Sensor nicht verfügbar” vollgemüllt wird, lässt sich das auch abstellen. Bei mir musste ich in der Datenkonfiguration das neu aufzeichnen in HA gelöschter Sensoren unterdrücken indem ich den Sensor in HA und in meiner Datenbankkonfiguration gelöscht hab.

Daher hab ich gefragt, was eigentlich das Problem ist, dass Du lösen möchtest.

Tut mir leid, wenn Dir das unangenehm aufgestoßen sein sollte.

Danke Osorkon.

Und nun zu skinfaxi.

Ich bin Bj. 1956 und habe keinen Bock darauf mich in diesem (oder einem anderen Forum) von einem “Oberlehrer” anmachen zu lassen.

Die Frage war eindeutig: Was passiert mit den Leichen?
Die Frage war nicht, wie geht Ihr mit alten Daten um?

Entweder verstehst Du kein deutsch oder ich kann mich nicht ausdrücken. Wie es zu den Daten kam, habe ich erklärt und nein, ich brauche sie nicht mehr!!! Deshalb wollte ich auch wissen, was mit denen passiert und nicht was Du lieber skinfaxi damit machen würdest.

Auch das habe ich ziemlich klar formuiert!!!

Gerne lerne ich noch dazu, aber lieber skinfaxi, bitte nicht von Dir.

Schade dass Du das so empfindest und Entschuldigung wenn ich Dich irgendwo angemacht haben sollte.

Es steht Dir ja frei, meine Beiträge ganz einfach zu ignorieren.

Kommunikation hat immer einen Absender und einen Empfänger und das schöne am Internet ist ja gerade, dass man nicht auf alles reagieren muss.

Ich wünsch Dir, dass Du eine Lösung gefunden hast und hoffe, dass ich auch so fit bleibe, dass ich mich noch mit so komplizierten neuen Dingen beschäftigen kann, wenn ich Deinen Lebensabschnitt erreicht habe.

Alles gut… Persönlich wäre das sicher anders gelaufen!!

1 „Gefällt mir“

Hi.

Ich hoffe ich irre mich jetzt nicht. Ich habe es immer so verstanden das die MariaDB (in der Standardeinstellung von HA) ohnehin nur eine begrenzte Zeit archiviert (30 Tage?) .
Für Langzeitdaten wird dann eine andere DB genommen.
(Ich habe deswegen noch die InfluxDB).
Hatte mich nach dem Einrichten dieser beiden Datenbanken nur nicht weiter drum gekümmert, da noch andere Baustellen da sind und alles im “Aufbau” ist.
Jetzt wüsste ich allerdings auch gerne wieder was Sache ist.

Lag ich da jetzt falsch und hab noch immer alles von Stunde 0 in der MariaDB?
Wenn nein, wo sind denn dann die Einstellungen dazu?

:wave:

Edit:

Ach stimmt ja, in meiner config.yaml stehts sogar drin :innocent:

# Pfad zur Maria DB.
# Hier werden alle Ereignisse 30 Tage gespeichert
recorder:
  db_url: !secret maria_db_url
  purge_keep_days: 30

@RobertoCravallo
hoffe das hilft dir weiter.

1 „Gefällt mir“

Hi Edding,

so habe ich es auch und das klappt dann sicher auch mit den aufgelisteten Entitäten.

Aber was passiert wenn ich hier vorher z. B. noch - sensor.ist_jetzt geloescht drin hatte und die Entität gelöscht habe? Damit hätte ich die “Leiche” sensor.ist_jetzt geloescht in der Datenbank. Offiziell ist HA dafür jetzt ja nicht mehr “zuständig”.

Was passiert mit der? Die Antwort scheint hier niemand zu kennen.

Moin,

ich bin sicherlich kein Kenner der Materie und der Interna von HA, aber warum schaust Du nicht in die Datenbank, es gibt doch Datenbank Clients, z.B. dBeaver oder phpadmin usw., dann schaust Du wie die HA Datenbank organisiert ist, also welche Tabellen und Spalten es gibt und suchst die von Dir in HA gelöschten Entitäten.
Wenn sie dann doch noch in der Datenbank stehen, obwohl der Purge über die letzten Tage gelaufen ist, dann kann man ja zusammen ein SQL bauen, damit Du die Daten aus der Datenbank löschen kannst.
Du kannst natürlich auch per SQL die alten Daten so umbenennen, dass sie mit den neuen übereinstimmen.
Das ist natürlich nur Theorie, da ich influxDB V2 nutze und keine MariaDB.

VG
Bernd

Muss ich mich wohl mal mit SQL beschäftigen… :woozy_face:

Moin,
na, wenn Du erst einmal sicher bist, dass noch Altlasten in der Datenbank stehen, kann man das ja zusammen versuchen, zu bereinigen.

VG
Bernd

Ich steht wohl auf dem Schlauch. Es ist doch bei dir nichts älter als 21 Tage? Wird doch dann eh gelöscht.
Von daher löst sich das doch von alleine, oder etwa nicht?

Und wenn ich den Sensor erst gestern gelöscht habe? Dann dürfte HA den wohl beim aufräumen nicht beachten, oder doch?

Vielleicht funktioniert “purge” ja auch ganz anders als von mir gedacht. Der geht durch die Datenbank und schmeißt “automatisch” alles raus, was älter als die Voreinstellung ist. Wie die Entität dann benannt war, ist vielleicht komplett Wurst…

Allein, ich weiß es nicht. :thinking:

So hätte ich es auch gesehen, oder anders ausgedrückt, wenn “purge” auf 30 steht, dann gibt es keine Leichen die älter als 30 Tage sind. :rofl:

Schauen wir mal ob es so kommt…

Stand heute:

Du kannst ja auch mal in den Verlauf reinsehen wie lange hier die Daten liegen. Bei dir sollte dann nichts älter als 21 Tage sein.

Beispiel.