NEWS
Mittelwert immer zur selben Uhrzeit (Grafana, bzw. DBInflux)
-
Hallo zusammen,
ich tracke meine Solarleistung meinen Haushaltsverbrauch mittels Shellys rund um die Uhr und lasse das Ganze in Grafana anzeigen.
Kennt jemand eine Möglichkeit einen "durchschnittlichen Tag" zu ermitteln? Ich möchte als den Mittelwert aus allen 0:00Uhr, 00:01Uhr, 0:02Uhr, ... 23:59Uhr ermitteln und somit meinen Durchschnittstag errechnen oder anzeigen lassen.
Ich bin mir nicht sicher, ob man damit direkt irgendwie an die Datenbank DBInflus ran muss oder ob es auch direkt in Grafana geht. (oder ob es nicht geht)
Besten Dank für jeden Hinweis, den ihr mir geben könnt.
Grüße
Creator -
@creatorhs sagte in Mittelwert immer zur selben Uhrzeit (Grafana, bzw. DBInflux):
Hallo zusammen,
ich tracke meine Solarleistung meinen Haushaltsverbrauch mittels Shellys rund um die Uhr und lasse das Ganze in Grafana anzeigen.
Kennt jemand eine Möglichkeit einen "durchschnittlichen Tag" zu ermitteln? Ich möchte als den Mittelwert aus allen 0:00Uhr, 00:01Uhr, 0:02Uhr, ... 23:59Uhr ermitteln und somit meinen Durchschnittstag errechnen oder anzeigen lassen.
Möchtest Du einen "durchnittlichen Tag", sprich aus allen Tageswerten einen Durchschnitt und diesen Wert anzeigen, oder möchtest du einen "Tagesdurchschnitt", der Dir für alle angezeigten Tage den jeweiligen Durchschnitt anzeigt ?
Wie du aus den dir zur Verfügung stehenden Tagen einen "durchschnittlichen Tag" heraus findest kann ich nicht sagen, das 2. sollte mit Grafana Bordmitteln recht problemlos gehen:
- Anzeige als Tabelle oder Balkendiagramm
- Zeitschiene auf n Tage, beginn immer 0 Uhr
- Zusammenfassen über 24 h
- Als Durchschnitt anzeigen.
die entsprechenden Grafana Einstellungen kann ich erst heute Abend zeigen, wenn das noch nötig ist.
A.
-
@creatorhs Es wird bestimmt auch noch andere Wege geben das zu realisiere, aber der einzige, der mir einfällt geht in JavaScript über getHistory oder auch sendTo beim SQL-Adapter.
Damit kannst Du Dir alle aufgezeichneten Daten holen (ich würde das Tageweise machen um nicht irgendwann Probleme mit dem Hauptspeicher zu bekommen) und dementsprechend verarbeiten.
Beim ersten Durchlauf würde ich dann zwei Arrays anlegen (z.B. über einen JSON-Datenpunkt, damit das erhalten bleibt), eines mit den ermittelten Durchschnittswerten, eines mit der Anzahl der Werte, die mitgespielt haben. Dazu evtl. noch einen Datenpunkt, der die letzte Ausführungszeit enthält. Damit kannst Du bei allen zukünftigen Läufen einfach nur ab dem letzten Zeitpunkt weiterarbeiten.
Um das ganze schön visualisieren zu können, könnte man über sendTo beim SQL-Adapter auch die Historie eines weiteren Datenpunktes dann mit genau diesen berechneten Werten füttern.Das ist auf diesem Wege leider nicht einfach und erfordert etwas Programmierarbeit und -kenntnisse.