Hier erkläre ich dir, wie du Ausreißer oder generell gesprochen falsche Statistiken deiner Home Assistant Entitäten korrigieren kannst.
Das ist vor allem für das Energiedashboard wichtig, kann aber auch für andere Entitäten relevant sein solltest du dich beispielsweise für Auswertungen auf die Home Assistant Statistiken verlassen.
Lass uns gemeinsam eintauchen und herausfinden, welche 3 Möglichkeiten es dafür gibt!
Inhaltsverzeichnis
- Voraussetzungen
- SQL-Kommandos für Möglichkeit 3
- Links zu SQL-Skripten
- Hinweis zu geänderten Einheiten
- Mehr Skripte zum modifizieren/korrigieren der Statistiken
- Fazit
Voraussetzungen
Home Assistant muss schon installiert sein, auf welcher Hardware spielt keine Rolle.
Außerdem sollte deine Datenbank auf SQLite laufen (nur für Maria-DB nutzer relevant, SQLite ist der Systemstandard)
SQL-Kommandos für Möglichkeit 3
Zuerst musst du mit dem Kommando SELECT * FROM "statistics_meta" where statistic_id LIKE "%strom%"
herausfinden, welche ID (ganz linke spalte) deine Entität in der Meta-Tabelle hat. Hier wird nach dem Platzhalter Strom innerhalb des Entitäts-Namens gesucht.
Anschließend kopierst du dir die ID in ein Textdokument (Hier im Beispiel 18)
Danach suchen wir uns mit dem SQL-Query SELECT * FROM "statistics" where metadata_id = 18 Order BY state DESC
den größten Statistischen Wert der Entität aus der Statistiktabelle raus.
ASC
anstatt DESC
gibt uns den kleinsten statistischen wert ganz oben aus 😉
Links zu SQL-Skripten
Für erweiterte Datenbereinigung oder hinzufügen von Statistischen Einträgen relevant. Nicht zu empfehlen, wenn man keinen Plan von SQL hat, weil man schnell mehr kaputt machen kann als vorher war 😉
- https://community.home-assistant.io/t/fix-bad-data-in-energy-tab/347792/53
- https://community.home-assistant.io/t/recalculate-statistics-table-sum-to-fix-wrong-energy-data/371334
Hinweis zu geänderten Einheiten
Ganz nebenbei bemerkt habe ich im Video vergessen, eine Möglichkeit zu erwähnen. Mit dem Statistik-Tool kann man Einheiten korrigieren, wenn sich die Einheit eines Sensors mal geändert haben sollte.
Beispiel: Man legt einen Template-Sensor an, vergisst die Einheit zu setzen und ergänzt diese danach erst (nach dem initialen Anlegen des Sensors). Somit weiß Home Assistant nicht mehr, welches die “richtige” der beiden Einheiten (keine / die neue Einheit) ist.
Beheben kann man das Problem aber einfacher, als es zu erklären 😉:
Mehr Skripte zum modifizieren/korrigieren der Statistiken
kWh anstatt Wh – Beispiel
Du hast einen Sensor angelegt, der eigentlich Wh angibt jedoch hast du versehentlich diesen Sensor mit kWh erstellt. Nun musst du alle bisherigen werte durch 1000 teilen, damit das irgendwie noch Sinn macht
- Meta-ID suchen:
SELECT * FROM "statistics_meta" where statistic_id LIKE "%solar%"
- Daten anzeigen, das müssen wir in 2 Tabellen (jeweils) machen:
SELECT * FROM statistics WHERE metadata_id = 779 SELECT * FROM statistics_short_term WHERE metadata_id = 779
- Die Ziele finden, bis zu welcher das Problem bestand (falls du das Template oder die Einheit inzwischen angepasst hast, und über das Statistik-Tool wurde dir nicht angeboten die bisherigen Werte zu ändern) und dann alle werte kleiner als der Timestamp anzeigen:
SELECT * FROM statistics WHERE metadata_id = 779 AND created_ts < 1720942810.3191178 SELECT * FROM statistics_short_term WHERE metadata_id = 779 AND created_ts < 1720942810.3191178
- Werte verändern, in diesem Beispiel werden diese durch 1000 geteilt (Wattstunden in Kilowattstunden umrechnen). Sind hier natürlich auch wieder 2 Statements für jeweils eine der Tabellen:
UPDATE "statistics" SET state = state / 1000, sum = sum / 1000 WHERE metadata_id = 779 AND created_ts < 1720942810.3191178 UPDATE "statistics_short_term" SET state = state / 1000, sum = sum / 1000 WHERE metadata_id = 779 AND created_ts < 1720942810.3191178
Fazit
Insgesamt eine tolle Möglichkeit, Home Assistant Statistiken zu korrigieren oder leere Zwischenräume aufzufüllen, sollte es doch mal zu Falschmeldungen von Sensoren kommen.
Wenn du Fragen oder Anmerkungen hast, zögere nicht, sie mir unten in den Kommentaren mitzuteilen und ich werde mein Bestes tun, um dir zu helfen. Vielen Dank fürs Zuschauen!
Danke gleich mal mein Ausreißer gefixt
Immer überlegt ob das geht und dann machst du ein Video dazu, top! Leider sehe ich den Fehler im Energiedashboard kann aber den Sensor nicht finden der den Fehler beinhaltet. Hat jemand einen Rat?
Ich denke ein wichtiger Punkt ist auch das Vermeiden falscher Werte in dem man SML Stromzähler mit Home Assistant auslesen (lokal) - PowerFox Alternative und anderswo Sensoren so gestaltet das nicht verfügbare Messfühler oder welche die 0 Werte liefern abfängt. Damit vermeidet man das Ausreißer entstehen. Eventuell wäre ein Verweis auf Fehlersuche und Lösen des eigentlichen Problems hier gut.
Hallo!
Ich würde gerne falsche Statistikdaten korrigieren, habe aber das Problem, dass bei mir im Statistik-Bereich der Entwicklungswerkzeuge nur bei einem meiner Sensoren die Schaltfläche für “Adjust a statistic” vorhanden ist. Diesen möchte ich aber nicht ändern. Bei allen anderen Sensoren in meinem Home-Assistant fehlt diese Schaltfläche.
Hier ein Screenshot:
Kann mir jemand erklären woran das liegt und wie ich das ändern kann, damit ich die Statistik eines Luftfeuchtigkeitssensors (nicht im Screenshot) ändern kann?
Home-Assistant läuft bei mir auf einem Raspberry Pi 4 und alle Updates sind durchgeführt.
Hallo Simon,
Danke für Deine hilfreichen Anleitungen. Homeassistant hat es mittlerweile vereinfacht Ausreisser zu finden und zu korrigieren. Dennoch funktioniert das bei mir nicht. Wenn ich in der Statistik alle wesentlichen Ausreisser gefunden und eleminiert habe, dann sind sie dort dauerhaft verschwunden. Aber in meiner anzeigenden Übersicht sind die falschen Werte immer noch vorhanden. Was muss ich noch machen das die falschen Werte verschwinden. Ich habe die SQL Datenbank.
Jede fehlende notwendige Information zur Lösung reiche ich dann nach.
Vielen Dank vorab!