weewx sqlite und falsche Daten aus dB löschen

Wie löscht man aus der weewx sqlite Datenbank falsche bzw. nicht gewollte Daten per Commandline raus ?

Ich habe mich eben mit der Thematik befasst, da aus irgendeinem Grund – womöglich eine Übermittlungsstörung – zB. ein Innentemperaturwert von 4°C und eine Regenrate von über 2000mm/h übermittelt wurden.

Wie also nun diese falschen Daten wieder aus der dB entfernen ?

  1. Backup der dB anlegen:
    sudo /etc/init.d/weewx stop
    sudo cp /home/weewx/archive/weewx.sdb /home/weewx/archive/backup_weewx.sdb
    sudo /etc/init.d/weewx start
  2. sqlite3 installieren
    sudo apt-get install sqlite3
  3. Daten finden, welche korrigiert werden müssen:
    Um zB den Wert der Innentemperatur zu korrigieren, schauen wir mal, welcher da so aus der Reihe tanzte:
    echo „SELECT intemp FROM archive WHERE (intemp < 60);“ | sqlite3 /home/weewx/archive/weewx.sdb
    42.8

!! Die Ausgabe sowie Abfrage erfolgt in Farenheit – einen Umrechner gibt es hier: http://www.celsius-fahrenheit.de

Um diesen Datensatz zu korrigieren, ist folgender Command nötig:
echo „UPDATE archive SET inTemp=75.2 WHERE (inTemp < 60);“ | sudo sqlite3 /home/weewx/archive/weewx.sdb
Diese Prozedur ist bei allen Falschdaten anzuwenden.

Natürlich kann man die SQL-Abfragen noch etwas einschränken, falls erforderlich:
echo „SELECT inTemp FROM archive WHERE (inTemp < 70 AND dateTime > 1426470000);“ | sqlite3 /home/weewx/archive/weewx.sdb
Ebenso das Update des Datensatzes:
echo „UPDATE archive SET inTemp=75 WHERE (intemp < 70 AND dateTime > 1426470000);“ | sudo sqlite3 /home/weewx/archive/weewx.sdb

Umrechnung bezüglich Unix-Timestamp gibt es hier: https://www.aritso.net/mehr-informationen/tools/timestampconverter.htm

Um zB falsche Regenwerte zu entfernen:
echo „SELECT dateTime, rainrate FROM archive WHERE (rainrate > 20);“ | sqlite3 /home/weewx/archive/weewx.sdb
1431008100|41.71653539052
1431008400|41.71653539052
1431008700|27.81102359368

echo „UPDATE archive SET rainrate=0.014173228 WHERE (rainrate > 20);“ | sudo sqlite3 /home/weewx/archive/weewx.sdb

Eine komplette Auflistung der Spaltennamen der weewx-Datenbank … ja, daran werke ich noch. Dachte das wäre einfach … jedoch stehe ich da wohl aktuell auf der Leitung.
Folgende habe ich bis dato ermittelt:
dateTime
barometer
pressure
altimeter
inTemp
outTemp
inHumidity
outHumidity
windSpeed
windDir
windGust
windGustDir
rainRate
rain
Um die summeries zu löschen, ist folgender Befehl nötig:
sudo /home/weewx/bin/wee_config_database /home/weewx/weewx.conf –drop-daily

Danach ein Restart von weewx und die sumeries werden neu berechnet.

Schreibe einen Kommentar