Statistik bereinigen state_class: measurement

Hallo,

Ich habe einen neuen Stromzähler erhalten den alten und auch neuen überwache ich mit einem tasmota Lesekopf. Beim Abnehmen, oder aufsetzen ist auf jedenfall irgendwie ein Wert von 10mwh erkannt worden, der mir jetzt meine Statistik versaut. Der Sensor ist als state_class: measurement konfiguriert und damit kann ich in den Entwicklertools unter Statistik den Wert nicht korrigieren. Welchen Alternativen Weg gibt es damit ich die Fehkerkennung bereinige?

Also Milliwattstunden (mWh) sind doch nicht viel. Bei Megawattstunden (MWh) könnte ich das nachvollziehen.

Aber um deine Frage zu beantworten: Du kannst via SQL-Befehl den Eintrag aus der Datenbank entfernen.

1 „Gefällt mir“

Yepp, geht meines Wissens nur über SQL. Zumindest habe ich das so gemacht

Hast du eine Anleitung wie das geht?

Vielleicht hilft Dir das? Das hatte ich mir mal zur “Seite” gelegt… :wink:

Anleitung: Home Assistant Sensor-Daten in der SQLite-Datenbank verwalten


Anleitung für Anfänger, um mit SQL in der Home Assistant Datenbank für einen Sensor

  1. die interne ID (metadata_id) zu ermitteln,

  2. die gespeicherten Daten des Sensors auszulesen,

  3. und die Daten ab gestern zu löschen.

0. Backup der Datenbank erstellen (wichtig!)

Bevor du Änderungen an der Datenbank vornimmst, solltest du ein Backup erstellen, um Datenverlust zu vermeiden.

So erstellst du ein Backup der SQLite-Datenbank:

  • Verbinde dich mit dem Dateisystem deines Home Assistant Servers (per SSH, Samba oder direkt).

  • Die Datenbank heißt home-assistant_v2.db und liegt im Konfigurationsordner (gewöhnlich /config).

  • Kopiere die Datei an einen sicheren Ort oder unter einem neuen Namen:

cp /config/home-assistant_v2.db /config/home-assistant_v2_backup.db
  • Alternativ lade die Datei herunter und sichere sie lokal.

  • Es empfiehlt sich, Home Assistant vorher zu stoppen, damit die Datei nicht während des Kopierens verändert wird.


1. Sensor-ID (metadata_id) in der Datenbank ermitteln

Die Sensor-Daten sind in den Tabellen statistics_meta (Metadaten, IDs) und statistics (Datenpunkte) gespeichert.

1.1 Verbindung zur Datenbank herstellen

  • Öffne die Datenbank mit einem SQLite-Tool oder dem Add-on SQLite Web (Weboberfläche).

  • Verbinde dich mit der Datenbankdatei home-assistant_v2.db.

1.2 Sensor-ID abfragen

Führe folgenden SQL-Befehl aus, um die id (metadata_id) des gewünschten Sensors zu finden. Ersetze dabei sensor.DEIN_SENSOR durch den genauen Entitätsnamen deines Sensors (z.B. sensor.temperatur_wohnzimmer):

SELECT id, statistic_id FROM statistics_meta
WHERE statistic_id = 'sensor.DEIN_SENSOR';
  • Ergebnis: Die Spalte id ist die interne ID, die später benötigt wird.

2. Inhalte (Datenpunkte) des Sensors anzeigen

Jetzt listest du alle Datenzeilen auf, die zu diesem Sensor gehören.

2.1 Datenpunkte abrufen

Benutze die soeben ermittelte id (im Beispiel als 123 angenommen):

SELECT * FROM statistics
WHERE metadata_id = 123
ORDER BY start_ts DESC
LIMIT 100;
  • start_ts ist ein Unix-Zeitstempel der Datenpunkte.

  • Mit LIMIT 100 werden die letzten 100 Einträge angezeigt.

  • Das zeigt, welche Daten bisher für den Sensor in der Statistik gespeichert sind.


3. Sensor-Daten ab gestern löschen

Um alle Daten für den Sensor zu löschen, die älter als heute sind (also ab gestern und früher), führt man folgenden Befehl aus.

3.1 Daten ab gestern löschen

Ersetze 123 wieder durch die tatsächliche metadata_id deines Sensors:

DELETE FROM statistics
WHERE metadata_id = 123
  AND start_ts < strftime('%s', 'now', 'start of day');
  • strftime('%s', 'now', 'start of day') gibt den Unix-Zeitstempel von heute 00:00 Uhr lokal zurück.

  • Erweitert man den String “strftime(‘%s’, ‘now’, ‘-7 days’, ‘start of day’);” dann werden alle Daten ab letzter Woche rückwärts gelöscht

  • Dadurch werden alle Statistikdaten gelöscht, die vor heute liegen.

vielen Dank. Das habe ich durchgeführt. Danach waren im Verlauf vom Sensor immer noch die falschen Werte. Diese habe ich dann in der states Tabelle korrigiert. Jetzt sind die Werte im Verlauf richtig.

Allerdings im Energiedashboard immer noch nicht :frowning:

Noch jemand eine Idee?

Nachtrag:

@Karlchen In welchem Tool dokumentierst du bei dir?

mist - ich Dummbatz. Ich habe für den measurement Sensor einen Template Sensor gebaut vom Typ total_increasing, diesen Verwende ich im Dashboard. Da konnte ich jetzt mit Boardmitteln auch den Wert korrigieren.

Funktioniert nun. Besten Dank.

@Karlchen die Frage der Doku würd mich trotzdem interessieren. Danke :wink:

:crayon:by HarryP: Zusammenführung Doppelpost (bei Änderungen oder hinzufügen von Inhalten bitte die „Bearbeitungsfunktion“ anstatt „Antworten“ zu nutzen)

Ich nutze Typora und schreibe in Markdown. Typora