FHEM Forum

FHEM => Anfängerfragen => Thema gestartet von: Nakai am 27 November 2021, 23:01:14

Titel: Statistische Auswertung und Berechnung von Stromverbrauch anhand von Zählerstand
Beitrag von: Nakai am 27 November 2021, 23:01:14
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 !
Titel: Antw:Statistische Auswertung und Berechnung von Stromverbrauch anhand von Zählerstand
Beitrag von: DS_Starter am 27 November 2021, 23:08:47
Guten Abend,

das was du möchtest kannst du mit DbRep (Datebankauswertungen) erledigen.
Ich habe als Vorlage vor längerer Zeit diesen Wiki Beitrag geschrieben: https://wiki.fhem.de/wiki/Datenbankgest%C3%BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_%C3%9Cberschusseinspeisung

Allgemein gibt es hier noch mehr Anregungen: https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#datenbankgest.C3.BCtzte_Erstellung_der_Energiebilanz_einer_SMA_PV-Anlage_mit_.C3.9Cberschu.C3.9Feinspeisung

VG
Titel: Antw:Statistische Auswertung und Berechnung von Stromverbrauch anhand von Zählerstand
Beitrag von: Nakai am 27 November 2021, 23:37:33
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.
Titel: Antw:Statistische Auswertung und Berechnung von Stromverbrauch anhand von Zählerstand
Beitrag von: DS_Starter am 28 November 2021, 09:32:41
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 (https://wiki.fhem.de/wiki/DbRep_-_Reporting_und_Management_von_DbLog-Datenbankinhalten#Speichern_von_Berechnungswerten_in_der_Datenbank_und_Erstellen_eines_Plots_.28ab_Version_7.5.1.29).

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 (https://wiki.fhem.de/wiki/Summe_aller_Einschaltzeiten_eines_Ger%C3%A4tes).
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