Statistische Auswertung und Berechnung von Stromverbrauch anhand von Zählerstand

Begonnen von Nakai, 27 November 2021, 23:01:14

Vorheriges Thema - Nächstes Thema

Nakai

Hallo zusammen,

wie es das Unterforum bereits suggeriert bin ich Anfänger in der Nutzung von Fhem, daher hoffe ich sehr das ihr mir helfen könnt.

Nun zum Sachverhalt:

Momentan erhalte ich meinen Zählerstand alle 15 Minuten per MQTT Nachricht an Fhem übersendet. Diesen Zählerstand speichere ich sodann per DBlogging in einer MariaDB.

Nun komme ich jedoch nicht weiter. Ich würde zum einen gerne aus den Zählerständen meinen Verbrauch ausrechnen und diesen dann in der Datenbank speichern.
Zum anderen würde ich sodann gerne diesen Verbrauch graphisch darstellen für einen wöchentlichen, monatlichen und jährlichen Vergleich.

Wie man aus dem DBlogging einen Graphen erstellt ist mir bereits bekannt, jedoch weiß ich jetzt nicht wie ich diese zeitlichen Vergleiche anlege.

Ich hoffe ihr könnt mir weiterhelfen.

Vielen Dank !

DS_Starter

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

Nakai

Hey DS_Starter,

vielen Dank für deine schnelle Antwort.

Ich bin mal deinen verlinkten Beitrag durchgegangen.

Hier habe ich jedoch zwei Fragen:
1. Mir ist jetzt nicht direkt aufgefallen wo dort der Verbrauch ausgerechnet wird + ob dieser auch in der DB im Anschluss gespeichert wird.
2. Bei den DBRep Devices erstellt du jeweils einen für einen Tag und einen für einen Monat. Diese beziehen sich jedoch nur auf den aktuellen Monat / Tag. Was ich mir jedoch vorgestellt hatte war dass ich auch die vergangenen Monate miteinander vergleichen kann. Ich bin mir nicht sicher ob ich hier komplett falsch denke mit dem "current_day" und "current_month".

Ich hoffe du kannst mir da noch ein wenig auf die Sprünge helfen.

DS_Starter

Hallo Nakai,

Zitat1. Mir ist jetzt nicht direkt aufgefallen wo dort der Verbrauch ausgerechnet wird + ob dieser auch in der DB im Anschluss gespeichert wird.
Der Wiki Beitrag sollte dir zunächst die Möglichkeiten und die prinzipielle Vorgehensweise der DB Auswertung mit dem Modul näherbringen.
Ein konkreterer Hinweis steht im DbRep-Wiki.

Der Verbrauch zum Beispiel ist mit dem Befehle diffValue zu ermitteln sofern der Zählerstand stetig steigend geloggt wird. Mit den time* - Attributen stellt man den Auswertungszeitraum ein und das attr aggregation ergibt die Bwertungsabschnitte.

Konkretes Beispiel:
Die Energiebezug wird mit device SMA_Energymeter und reading Bezug_Wirkleistung_Zaehler geloggt. Es soll der monatliche Bezug des aktuellen Jahres angezeigt werden.
Also stellt man die attr ein:

timestamp_begin = current_year_begin
device = SMA_Energymeter
reading = Bezug_Wirkleistung_Zaehler
aggregation = month

Nun können damit die unterschiedlichen Auswertungen vorgenommen werden. Im Beispiel zeigt ein:
set <DbRep> diffValue [display]

den monatlichen Bezug an. "display" ist optional. Ein
set <DbRep> diffValue writeToDB

zeigt die Ergebnisse an und speichert die berechneten Ergebnisse auch wieder mit anderem Readingnamen in der DB.Infos dazu in der Hilfe "help dbrep".

Zitat2. Bei den DBRep Devices erstellt du jeweils einen für einen Tag und einen für einen Monat. Diese beziehen sich jedoch nur auf den aktuellen Monat / Tag. Was ich mir jedoch vorgestellt hatte war dass ich auch die vergangenen Monate miteinander vergleichen kann. Ich bin mir nicht sicher ob ich hier komplett falsch denke mit dem "current_day" und "current_month".
Die Wikis sollen wie gesagt den Einstieg erleichtern. Das obige Beispiel mit der aggregation zeigt dir die monatlichen Einzelergebnisse an bzw. speichert sie. Willst du jetzt zum Beispiel die Differenz der einzelnen Monatsverbräuche zueinander ermitteln, kann man eigenen Code zur Auswertung integrieren. Dazu gibt es das attr userExitFn. Wieder eine Hilfe zum Wirkprinzip gibt es hier.
Man kann sich auch viele DbRep-Devices anlegen um zum Beipiel jeweils einen Monat separat auszuwerten. Die Ergebnisse kann man automatisch in einen Dummy übertragen lassen und dort über userReadings weitere Berechnungen vornehmen. Mit userReadings kannman natürlich auch direkt in einem DbRep arbeiten wenn man die Events zulässt.
Es gibt wirklich sehr viele Möglichkeiten. Die Lösung ist immer vom ganz speziellen Anwendungsfall, den Ausgangsdaten und dem Ziel abhängig was man erreichen will.

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