Temperatur Min/Max/Avg aus DBLOG Plotten

Begonnen von Nighthawk, 13 Januar 2018, 12:32:30

Vorheriges Thema - Nächstes Thema

Nighthawk

Hallo Zusammen,

ich bin schon seit längerem auf der Suche nach einer Möglichkeit die Temperatur Max/Min/Avg Werte zu plotten, leider bisher ohne Erfolg.
Das Ziel ist es eine Übersich wie auf dem angehängten Bild zu erzeugen.

Vielen Dank schon mal im Voraus
Alex

rudolfkoenig

Mir ist unklar, was den Erfolg verhindert, bzw. was geht, und was nicht.

Ich wuerde es so machen:
- eine average Instanz definieren oder anpassen, damit der Sensor erfasst wird
- wenn noch kein FileLog fuer den Sensor angelegt wurde, eins anlegen, sonst so modifizieren, dass min,max und avg auch protokolliert wird, z.Bsp. indem alles protokolliert wird.
- aus der Detailansicht des FileLogs eine SVG Instanz anlegen, die min,max und avg anzeigt. Allerdings kriegt man mit dem SVG Modul keine Anzeige hin, die _exakt_ so ausschaut, wie im Anhang.


Nighthawk

Hallo Rudi,

der Sensor wird aktuell in ein Dblog aufgezeichnet. Mir fehlt nur das Wissen wie ich die Werte Plotter kann.
Min und Max wird durch das Statistik Modul gebildet, leider musste ich feststellen dass die Daten nicht im Dblog landen, dem muss ich noch nachgehen.
Gibt es keine Möglichkeit die SQL Abfrage für min, max und avg für das Plotter zu nutzen?
Folgendermaßen ist die angehängte Tabelle entstanden:
$Tabelle_TempA_Month = "SELECT DATE_FORMAT(timestamp, '%d. %b'), ROUND(avg(value),1) FROM history WHERE Device='Heizung' AND Reading='Aussentemperatur' AND DATE(timestamp) >= DATE_SUB(NOW(),INTERVAL 1 MONTH) GROUP BY day(timestamp) ORDER BY timestamp";
$Tabelle_TempA_daymax_Month = "SELECT DATE_FORMAT(timestamp, '%d. %b'), ROUND(max(value),1) FROM history WHERE Device='Heizung' AND Reading='Aussentemperatur' AND DATE(timestamp) >= DATE_SUB(NOW(),INTERVAL 1 MONTH) GROUP BY day(timestamp) ORDER BY timestamp";
$Tabelle_TempA_daymin_Month = "SELECT DATE_FORMAT(timestamp, '%d. %b'), ROUND(min(value),1) FROM history WHERE Device='Heizung' AND Reading='Aussentemperatur' AND DATE(timestamp) >= DATE_SUB(NOW(),INTERVAL 1 MONTH) GROUP BY day(timestamp) ORDER BY timestamp";

rudolfkoenig

ZitatGibt es keine Möglichkeit die SQL Abfrage für min, max und avg für das Plotter zu nutzen?
Vermutlich, Details muss aber jemand von den DbLog Jungs (im passenden Forumsbereich) beantworten.

Nighthawk

Kann man den Thread in Automatisierung verschieben, oder muss ich dort einen neuen Thread starten?

rudolfkoenig

Verschieben kannst du es selber (unten links), allerdings kriegen die Beobachter des Zielbereichs dann keine Benachrichtigung via Email.

Nighthawk


DS_Starter

Hallo Nighthawk,

wenn ich dich richtig verstanden habe sollen Auswertungen geplottet werden, die es so in der Datenbank als fertiger, einfach zu selektierender/ zu plottender Wert nicht gibt, richtig?

Um diverse Auswertungen (min,max,average,sum,diff) über verschiedene Perioden wie Stunde,Tag,Woche,Monat (Aggregation) anzufertigen, kannst du DbRep verwenden.  Damit kann man zunächst einmal Werte erstellen, die sich aus den in der Datenbank gespeicherten Quellen ergeben.

Jetzt kommt das "Aber". Ich habe noch auf meiner ToDo-Liste stehen, dass man diese enstehenden Readings nicht mit dem Datum/Zeit des Events, also des Berechnungszeitpunktes, sondern mit dem Zeitpunkt der Speicherung des Ursprungswertes, zum Beispiel dem 01.01.2018 xx:xx:xx, wiederum in der DB loggen kann. Dann wäre eine ähnliche Ausgabe, wie du sie auf deinem Bild zeigst, eigentlich problemlos möglich.

Ich hatte dieses Anliegen, was ich auch für mich persönlich gerne umsetzen würde, wegen anderer Dinge wieder hinten angestellt.

Zur Verdeutlichung habe ich dir einen Screeshot angehängt, der das Berechnungsergebnis der maximalen täglichen Leistung eines Wechselrichters im Monat Januar zeigt.

Wenn es das ist was du brauchst/möchtest würde ich mich mal verstärkt mit darum kümmern ?

Grüße,
Heiko



ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Nighthawk

Hallo Heiko,

im Grunde ist es ja dann ähnlich dem Statistic Ansatz, nur ist es beim Plotten  wenig ansehnlich, da der Wert ja stetig wächst.
Was ich gern hätte, ist ein Wert pro Tag den ich aus der DB bekomme, so wie mit der oben stehenden SQL ANweisung.

DS_Starter

Hallo Alex,

ZitatWas ich gern hätte, ist ein Wert pro Tag den ich aus der DB bekomme, so wie mit der oben stehenden SQL ANweisung.
Genauso habe ich es auch verstanden und will ich das auch umsetzen. Man bekommt ja auch für jeden Tag genau einen Wert, in dem Screenshot-Beispiel den MAX-Wert, den man dann mit einem Balken im SVG abbilden kann. (So ist der Plan)
Ich denke das ist hinzubekommen. Ich nehme mir die Task jetzt vor und melde ich mich wieder wenn ich was testbares hinbekommen habe.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Nighthawk


DS_Starter

Hallo Alex,

habe jetzt die Funktionen im DbRep soweit fertig gestellt dass es schon funktioniert die berechneten Werte in die DB zurückzuschreiben.
Das angehängte SVG zeigt das Ergebnis des Beispiel-DbRep aus #7. Zusätzlich habe ich noch "averageValue" laufen lassen und die Werte mit im SVG eingefügt um zu sehen wie es sich im Plot darstellt..
Das ist jetzt mal für einen Monat mit einer Aggregation=day (also täglicher MAX/AVG-Wert) gemacht. Wenn du DbRep kennst, weißt du dass die Zeiträume flexibel ausgewählt werden können über welche eine Aggregation (hour,day,week,month) ausgeführt werden kann.

Dier Werte können ganz normal im SVG-Editor ausgewählt werden. Die Berechnung kann man per AT und den DbRep-Device(s) einplanen und hat sie immer zur Verfügung.

Jetzt muss ich noch die Feinheiten ausprogrammieren, die Commandref updaten und vor allem im Wiki eine Beschreibung erstellen, die die Vorgehensweise darlegt. Ist vielleicht doch nicht ganz so einfach für jemanden zu überschauen der nicht so tief drinsteckt und täglich damit umgeht.

Grüße,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

Nighthawk

Hallo Heiko,

danke für deine Mühe, da muss ich mich jetzt mal in DBrep einarbeiten.

DS_Starter

Hallo Alex,

Zitatda muss ich mich jetzt mal in DBrep einarbeiten.
Ja, schon für die Tests wäre es gut wenn ich auf dich zählen könnte.

Ein bisschen brauche ich noch, vor allem wegen der Commandref.
Wenn ich fertig bin, erstelle ich wenigstens erstmal ein kleines Beispiel. Es wäre gut wenn du dann bereits etwas mit dem Handling von DbRep vertraut wärst.

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter

DS_Starter

Hallo Alex,

hier findest du die Beschreibung und DbRep-Version zum Downlowd und Test.
Wiki-Beispiel ist auch erstellt. Der Link ist in dem Betrag:

https://forum.fhem.de/index.php/topic,53584.msg751574.html#msg751574

LG,
Heiko
ESXi@NUC+Debian+MariaDB, PV: SMA, Victron MPII+Pylontech+CerboGX
Maintainer: SSCam, SSChatBot, SSCal, SSFile, DbLog/DbRep, Log2Syslog, SolarForecast,Watches, Dashboard, PylonLowVoltage
Kaffeekasse: https://www.paypal.me/HMaaz
Contrib: https://svn.fhem.de/trac/browser/trunk/fhem/contrib/DS_Starter