Der Martin: Verdichtung von Messdaten, "Trendkurve"

Beitrag lesen

problematische Seite

Hallo Tom,

ich logge seit Mai 2019 Temperaturdaten mit einem Raspi.

derzeit bin ich dabei, etwas Ähnliches zu realisieren. Das Herz meiner künftigen Wetterstation ist auch ein Raspi; ich will aber nicht nur Temperaturen erfassen, sondern auch Luftdruck, Luftfeuchte, Regenmenge und Wind.
Im Moment habe ich noch die Minimalfassung, der einzige Sensor ist ein BME280, der Luftdruck, Luftfeuchte und Temperatur in der Wohnung misst und I²C spricht. Ein zweiter BME280 wird das Außenwetter erfassen.

Alle fünf Minuten wird ein Datenset erstellt.

Okay, ich habe mich für ein 10min-Grobraster entschieden (ist aber noch konfigurierbar). Nur die Wind-Daten werde ich wohl in kürzeren Intervallen erfassen (z.B. 10s) und im 10min-Datensatz mit repräsentativen Werten abbilden, voraussichtlich Mittelwert und Maximum (Bö). Speichern möchte ich direkt in eine mySQL-Datenbank, die ohnehin auf meinem Home-Server läuft (das ist aber noch lange nicht realisiert).

Nun möchte ich aber in Zukunft auch mehrere komprimierte Sichten (Eine Woche, ein Monat, ein Quartal, ... ) mit der gleichen Viewportbreite anzeigen können. Wie komprimiere/konsolidiere ich die Daten am besten für die Sicht?

Diese Aufgabenstellung kommt auf mich auch noch zu. Ich denke mir das so: Wenn die gemessenen Werte (graphisch oder tabellarisch) in einem komprimierten Format angezeigt werden sollen, z.B. nur 1 Datensatz je Stunde für eine Monats-Ansicht oder 1 Datensatz je Tag für eine Jahres-Ansicht, dann werden aus jeder Messreihe drei: Mittelwert, Minimum und Maximum im Intervall.

Ich möchte dabei Spitzenwerte (plötzliche Extremwerte) nichg verlieren, ohne allerdings die Umgebung dieser Werte zu verzerren.

Das wäre mit der Min/Max-Lösung gewährleistet.

Außerdem kann der Datenbestand Lücken enthalten (Ausfall der Messeinrichtung), die auch erkannt und bei der Anzeige gekennzeichnet werden sollen.

Das ist IMO ein bisschen kniffliger. Du könntest für die Messzyklen, in denen kein gültiger Messwert verfügbar ist, einen eindeutigen Fehlerwert speichern (z.B. eine Temperatur von -300°C). Diesen Wert könntest du bei der Auswertung entsprechend als Sonderfall abfragen und visualisieren.

Schönes Wochenende,
 Martin

--
Ich stamme aus Ironien, einem Land am sarkastischen Ozean.