Daten von Sensoren anpassen (Löschen)

Ich habe manchmal Ausreißer in einigen Sensoren. Da diese die state_class: “measurement” haben, sind sie leider nicht über die DEVTools zu korrigieren.

Da bleibt nur noch ein Weg, der direkte Eingriff in die Datenbank.

Bitte, macht vorher ein Backup eurer Home Assistant Instanz, bevor ihr in die Datenbank eingreift.

Es gibt zwei Tabellen in der Datenbank, in der die Werte der Entitäten gespeichert werden. Die “states” und die “statistics” enthalten die Werte und die dazugehörigen Statistiken.

Um auf die Datenbank nativ zugreifen zu können, muss das AddOn “SQLite Web” installiert werden. Es muss nicht konfiguriert werden und zeigt die Tabellen der DB an und bietet die Möglichkeit die Daten per SQL-Query zu manipulieren.

Um jetzt in der “states” Tabelle die Werte einer Entität zu finden, muss zunächst in der “states_meta” die ID der betreffenden Entität gesucht werden.
Mit dem Query: “SELECT * FROM “states” where metadata_id = (SELECT metadata_id FROM “states_meta” where entity_id = ‘sensor.deye_pv1_power’)” werden alle Werte zu der Entität “sensor.deye_pv1_power” angezeigt werden.

Jetzt entweder über Filter “where CAST(state as decimal) > 6800” alle passenden Werte selektieren, oder sich die state_id des Datensatzes merken. Das CAST ist notwendig, da die state Werte als varchar(255) gespeichert werden.

select * FROM "states" where metadata_id= (SELECT metadata_id FROM "states_meta" where entity_id = 'sensor.deye_pv1_power') and CAST(state as decimal) > 6000

Mit “delete from” statt “select * from ” können dann die betreffenden Datensätze gelöscht werden.

Vorsicht, mit dem delete from, ohne die where clause ist schnell die ganze Tabelle gelöscht! Dann hilft nur noch das Backup einspielen.

Immer die falschen Werte in der “states” und “statistics” Tabelle löschen, dann sind die “Ausreißer” auch behoben. Wirksam wird die Datenkorrektur im Frontend erst nach einem Neustart, ich vermute die Daten werden irgendwo im Home Assistant gecached.

Schreibe einen Kommentar

Datenschutz
Ich, Guido Jeuken (Wohnort: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht mir aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl:
Ich, Guido Jeuken (Wohnort: Deutschland), würde gerne mit externen Diensten personenbezogene Daten verarbeiten. Dies ist für die Nutzung der Website nicht notwendig, ermöglicht mir aber eine noch engere Interaktion mit Ihnen. Falls gewünscht, treffen Sie bitte eine Auswahl: