Hallo zusammen,
Ich habe mal eine Frage zum Berechnen per SQL bei SQLite.
Ich habe einen Gaszähler, der jede 0,01kWh einen Impuls generiert. Dieser wird von einem Raspberry Pi genommen und die Uhrzeit in eine SQLite Datenbank geschrieben.
Das möchte ich nun mit Grafana auswerten. Ich habe zwischendurch die Impulse pro minute gruppiert und habe so den Verbrauch pro minute bekommen. es stellt sich allerdings raus, das es sehr ungenau ist, da wenn ich 3,1 Impulse pro minute habe zählt er immer 3(1,8kWh/h) und dann beim 10. mal plötzlich 4(240kWh/h), obwohl es immer 3,1 sind.
Bei 3,2 impulsen pro minute ist es auch 3 und beim 5. mal 4
Wenn ich jedoch das Intervall nehme ist es sehr genau, wenn es 19,1s pro Interval ist, sind es 1,88kWh/h und wenn es 19,2s pro Intervall ist, sind es 1,875kWh/h
Also müsste ich nur zu einem Eintrag den vorherigen Eintrag raus filtern und 3600 durch die Zeitdifferenz in Sekunden teilen und am ende mit 0,01 multiplizieren.
Das überfordert meine Fähigkeiten bei weitem.
bis jetzt habe ich folgendes:
da kommt dann das raus:
11/10/2022 16:18 1
11/10/2022 16:20 1
11/10/2022 16:21 1
11/10/2022 16:23 1
11/10/2022 16:24 1
11/10/2022 16:26 1
11/10/2022 16:27 1
der Wert 1 müsste dann natürlich mit der Berechnung gefüllt werden, statt statisch mit 1.
36 / (Zeitwert dieser Spalte - Zeitwert der Spalte darüber)
Vielen Dank schon mal.
Ich habe mal eine Frage zum Berechnen per SQL bei SQLite.
Ich habe einen Gaszähler, der jede 0,01kWh einen Impuls generiert. Dieser wird von einem Raspberry Pi genommen und die Uhrzeit in eine SQLite Datenbank geschrieben.
Das möchte ich nun mit Grafana auswerten. Ich habe zwischendurch die Impulse pro minute gruppiert und habe so den Verbrauch pro minute bekommen. es stellt sich allerdings raus, das es sehr ungenau ist, da wenn ich 3,1 Impulse pro minute habe zählt er immer 3(1,8kWh/h) und dann beim 10. mal plötzlich 4(240kWh/h), obwohl es immer 3,1 sind.
Bei 3,2 impulsen pro minute ist es auch 3 und beim 5. mal 4
Wenn ich jedoch das Intervall nehme ist es sehr genau, wenn es 19,1s pro Interval ist, sind es 1,88kWh/h und wenn es 19,2s pro Intervall ist, sind es 1,875kWh/h
Also müsste ich nur zu einem Eintrag den vorherigen Eintrag raus filtern und 3600 durch die Zeitdifferenz in Sekunden teilen und am ende mit 0,01 multiplizieren.
Das überfordert meine Fähigkeiten bei weitem.
bis jetzt habe ich folgendes:
SQL:
SELECT STRFTIME('%d/%m/%Y', d.time) as Datum,
STRFTIME('%H:%M', d.time) as Uhrzeit,
COUNT(CASE WHEN d.time like '%' THEN 1 END) As Verbrauch
FROM
Data d
GROUP BY
d.time
da kommt dann das raus:
11/10/2022 16:18 1
11/10/2022 16:20 1
11/10/2022 16:21 1
11/10/2022 16:23 1
11/10/2022 16:24 1
11/10/2022 16:26 1
11/10/2022 16:27 1
der Wert 1 müsste dann natürlich mit der Berechnung gefüllt werden, statt statisch mit 1.
36 / (Zeitwert dieser Spalte - Zeitwert der Spalte darüber)
Vielen Dank schon mal.