Hallo
erstmal zu meinem Projekt.
Ich möchte mir meine Verbrauchswerte von meiner Photovoltaikanlage per Diagram anzeigen lassen.
Als Grundlage habe ich hier MySQL 5.1 Python 3.2 das ganze läuft auf einem QNAP NAS.
Derzeitig werden die Werte von der PV-Anlage minütlich per Python in die DB eingetragen
Tabelle: Produktion <---- Werte werden eingetragen von Python
Spalten
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel - TYP timestamp
sensorwert <---- aktuelle Stromerzeugung
kwTag <---- gesamte Stromerzeugung am Tag
Gleichzeitig werden auch Werte vom Stromzähler eingetragen
Tabelle: Verbrauch <---- Werte werden eingetragen von Arduino MEGA 2560
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel TYP datetime
sensorwert <---- aktueller Stromverbrauch
Da die Datenflut doch recht groß ist möchte ich eine extra Tabelle nutzten in der die Durchschnittswerte gespeichert werden, ein 5 Minuten durchschnitt.
Erst wollte ich dies per Pyhton machen und einem Skript welches im 5 Minuten Takt durchläuft.
Aber im Pyhton Forum hat man mir erzählt das könne MySQL auch gleich so, das ich mir den Schritt sparen könnte und nun bin ich hier.
Die extra Tabelle:
Tabelle: VerbrauchWoche
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel TYP datetime
Produktion <---- 5minuten Durchschnittswerte
Verbrauch <---- 5minuten Durchschnittswerte
Differenz <---- Differenz zwischen Verbrauch und Produktion
Jetzt ist die Idee
in Tabelle VerbrauchWoche den letzten Zeitstempel zu prüfen (Bsp: 2016-03-14 00:00:00)
diesen in der Tabelle Produktion zu suchen nur ohne Sekunden anschließend aus den Werten der nächsten 5Minuten einen Durchschnitt zu berechen , das gleiche nur mit der Tabelle Verbrauch. Die erechneten Werte eintragen, die Differenz berechnen und einen Zeitstempel zu erstellen Bsp: 2016-03-14 00:05:00.
So und dies soll nun in einer Schleife laufen bis maximal 6Minuten vor datetime(NOW).
Bin hier da mit einem reinem SQL Code auf dem Holzweg oder doch lieber über zwischen Schritte per Python oder PHP oder oder oder?
Vielleicht könnt ihr mir ja schon ein paar Tipps geben zum Code oder zu den Tabellen.
Grüße der Arne
erstmal zu meinem Projekt.
Ich möchte mir meine Verbrauchswerte von meiner Photovoltaikanlage per Diagram anzeigen lassen.
Als Grundlage habe ich hier MySQL 5.1 Python 3.2 das ganze läuft auf einem QNAP NAS.
Derzeitig werden die Werte von der PV-Anlage minütlich per Python in die DB eingetragen
Tabelle: Produktion <---- Werte werden eingetragen von Python
Spalten
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel - TYP timestamp
sensorwert <---- aktuelle Stromerzeugung
kwTag <---- gesamte Stromerzeugung am Tag
Gleichzeitig werden auch Werte vom Stromzähler eingetragen
Tabelle: Verbrauch <---- Werte werden eingetragen von Arduino MEGA 2560
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel TYP datetime
sensorwert <---- aktueller Stromverbrauch
Da die Datenflut doch recht groß ist möchte ich eine extra Tabelle nutzten in der die Durchschnittswerte gespeichert werden, ein 5 Minuten durchschnitt.
Erst wollte ich dies per Pyhton machen und einem Skript welches im 5 Minuten Takt durchläuft.
Aber im Pyhton Forum hat man mir erzählt das könne MySQL auch gleich so, das ich mir den Schritt sparen könnte und nun bin ich hier.
Die extra Tabelle:
Tabelle: VerbrauchWoche
ID <---- ID mit Auto_Increment
datumzeit <---- Zeitstempel TYP datetime
Produktion <---- 5minuten Durchschnittswerte
Verbrauch <---- 5minuten Durchschnittswerte
Differenz <---- Differenz zwischen Verbrauch und Produktion
Jetzt ist die Idee
in Tabelle VerbrauchWoche den letzten Zeitstempel zu prüfen (Bsp: 2016-03-14 00:00:00)
diesen in der Tabelle Produktion zu suchen nur ohne Sekunden anschließend aus den Werten der nächsten 5Minuten einen Durchschnitt zu berechen , das gleiche nur mit der Tabelle Verbrauch. Die erechneten Werte eintragen, die Differenz berechnen und einen Zeitstempel zu erstellen Bsp: 2016-03-14 00:05:00.
So und dies soll nun in einer Schleife laufen bis maximal 6Minuten vor datetime(NOW).
Bin hier da mit einem reinem SQL Code auf dem Holzweg oder doch lieber über zwischen Schritte per Python oder PHP oder oder oder?
Vielleicht könnt ihr mir ja schon ein paar Tipps geben zum Code oder zu den Tabellen.
Grüße der Arne