Autor Thema: Neues Modul: ElectricityCalculator  (Gelesen 22487 mal)

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Neues Modul: ElectricityCalculator
« am: 26 August 2016, 21:05:35 »
Ein herzerfrischendes "Moin" vom "hintern-Deich" vorweg

Auf Basis meines Moduls GasCalculator habe ich jetzt das Schwestermodul ElectricityCalculator (73_ElectricityCalculator.pm) ins Leben gerufen.

Das ElectricityCalculator Modul berechnet den Verbrauch an elektrischer Energie (Stromverbrauch) und den verbundenen Kosten von einem oder mehreren Elektrizitätszählern.
Es ist kein eigenes Zählermodul sondern benötigt eine Regular Expression (regex or regexp) um das Reading mit den Zählimpulse von einem oder mehreren Electrizitätszählern zu finden.

Sobald das Modul in der fhem.cfg definiert wurde, reagiert das Modul auf jedes durch das regex definierte event wie beispielsweise ein myOWDEVICE:counter.* etc.

Das ElectricityCalculator Modul berechnet augenblickliche, historische und Mittelwerte von einem oder mehreren Elektrizitätszählern und erstellt die entsprechenden Readings.

Über eure Rückmeldungen wäre ich sehr dankbar!

Gruss
    Sailor
« Letzte Änderung: 26 August 2016, 21:09:18 von Sailor »
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172
Zustimmung Zustimmung x 1 Liste anzeigen

Offline boehm

  • New Member
  • *
  • Beiträge: 9
Antw:Neues Modul: ElectricityCalculator
« Antwort #1 am: 29 August 2016, 18:29:37 »
Hallo Sailor,

danke für das Modul.

Darauf habe ich schon lange gewartet. Bisher habe ich dein GasCalculator eingesetzt war aber nicht ganz glücklich damit.
Ich nutze eine MySQL Datenbank, die über SMLUSB angebunden habe.
Jetzt habe ich dein neues Modul aktiviert und nutze den selben regexp: Powermeter:Zaehlerstand-Bezug-Total:*

Ich bekomme aber keine Readings. Was mache ich falsch. Vielleicht hast Du einen Tip für mich.

Schon mal Danke.

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Antw:Neues Modul: ElectricityCalculator
« Antwort #2 am: 30 August 2016, 05:45:32 »
Hallo boehm

Jetzt habe ich dein neues Modul aktiviert und nutze den selben regexp: Powermeter:Zaehlerstand-Bezug-Total:*
Ich bekomme aber keine Readings. Was mache ich falsch. Vielleicht hast Du einen Tip für mich.

Versuchs mal mit einem Punkt "."

regexp: Powermeter:Zaehlerstand-Bezug-Total:.*

Was passiert jetzt?

Gruß
    Sailor
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172

Offline C0mmanda

  • Full Member
  • ***
  • Beiträge: 260
Antw:Neues Modul: ElectricityCalculator
« Antwort #3 am: 30 August 2016, 07:42:01 »
Moin moin,

Vielen Dank für dieses Klasse Modul! Darauf hab ich auch gewartet!
Läuft bei mir mit einem HM-ES-TX-WM reibungslos!

2 Dinge hätte ich jedoch anzumerken:

1.: Es wird kein _EnergyCostDay berechnet. "Nur" _EnergyCostDayLast. -> Habe ich über ein UserReading gelöst.

2.: Wie es aussieht berechnet das Modul das Reading "_EnergyCostYear" einfach mit "_EnergyYear * ElectricityPricePerKWh".
 Wäre es nicht richtiger in den Jahresenergiekosten auch den Basispreis (BasicPricePerAnnum) mit einfliessen zu lassen?
 Also _EnergyCostYear = _EnergyYear * (ElectricityPricePerKWh+BasicPricePerAnnum) ?

Oder habe ich was übersehen?
Vielen Dank.

Gruß
C0mmanda


Offline boehm

  • New Member
  • *
  • Beiträge: 9
Antw:Neues Modul: ElectricityCalculator
« Antwort #4 am: 30 August 2016, 07:49:52 »
Hallo Sailor,

dnake für Dein schnelles Feedback.

Ich habe deinen Hinweis eingebaut und danach fhem neu gestartet:
Danach habe ich im fhem Log diese Meldungen gesehen.

SMLUSB: Undefined

2016.08.30 07:35:48 1: PERL WARNING: Use of uninitialized value in string eq at /opt/fhem/FHEM/73_ElectricityCalculator.pm line 101, <$fh> line 1926.

Hilft Dir das?

Danke und Grüße

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Antw:Neues Modul: ElectricityCalculator
« Antwort #5 am: 30 August 2016, 08:05:55 »
Hallo C0mmanda

1.: Es wird kein _EnergyCostDay berechnet. "Nur" _EnergyCostDayLast. -> Habe ich über ein UserReading gelöst.
Da wäre ich vorsichtig... Ich hatte das Reading ebenfalls mit drin und habe festgestellt, dass das Log-File komplett zugefüllt wird.

Wenn man dann auch noch so unvorsichtig ist wie ich und einen Plot vom Mai bis Mai mit genau diesen Werten macht, dauert es EWIG.
Den anstelle 365 Tageswerten werden dann plötzlich 105120 Werte versucht anzuzeigen (300s Intervall). Wenn man dann noch die Werte für die finanzielle Reserve darüber legt...
Also ich habe mit diesen Plots die CPU - Temperatur meines RasPis mit diesen Plots um 3°C erhöht!  :o

2.: Wie es aussieht berechnet das Modul das Reading "_EnergyCostYear" einfach mit "_EnergyYear * ElectricityPricePerKWh".
 Wäre es nicht richtiger in den Jahresenergiekosten auch den Basispreis (BasicPricePerAnnum) mit einfliessen zu lassen?
 Also _EnergyCostYear = _EnergyYear * (ElectricityPricePerKWh+BasicPricePerAnnum) ?

Das wären ja nicht die verursachten Energiekosten sondern die abrechnungsfähigen Beträge auf monatlicher Basis. (Buchführung)
Den Basispreis habe ich (auf monatlicher Basis) in der finanziellen Reserve mit einfließen lassen, so dass auf Umwegen diese Werte dort richtig angezeigt werden.

Gruss
    Sailor
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Antw:Neues Modul: ElectricityCalculator
« Antwort #6 am: 30 August 2016, 08:14:58 »
Hallo boehm

SMLUSB: Undefined

2016.08.30 07:35:48 1: PERL WARNING: Use of uninitialized value in string eq at /opt/fhem/FHEM/73_ElectricityCalculator.pm line 101, <$fh> line 1926.

Das sollte nur auftauchen, wenn das Modul das erste Mal aufgerufen wird und ein bestimmtes Attribut nicht gesetzt wurde.
Ich habe das mit einer Fallabfrage gelöst und der FIX kommt mit dem nächsten Update.

DANKE!

Funktioniert der Rest?

Gruss
    Sailor
« Letzte Änderung: 30 August 2016, 09:07:15 von Sailor »
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172

Offline Franz Tenbrock

  • Hero Member
  • *****
  • Beiträge: 1303
  • trotz 1000 Beiträgen immer noch Anfänger :-(
Antw:Neues Modul: ElectricityCalculator
« Antwort #7 am: 30 August 2016, 08:44:01 »
Hallo Sailor,
kannst du nicht im ersten Post ein paar Snapshots posten, wie es aussieht. So bekommt man einfach schneller einen Überblick was das Modul kann.
Ich kann mir zwar was vorstellen, aber ob meine vorstellung richtig ist ??
Für die IT Kracks hier sicher alles easy, für andere ....

einfach nur als Bitte !

cubi3, Cul 868, ESA2000WZ, EM1000GZ,  FS20, dashboard, 1-Wire, Max Thermos, Max Wandthermo, Max Lan, Fritzbox callmonitor, , nanocul, HM Led16, HM Bewegungsmelder, HM Schalter, RPi, banana, ESP8266, DoorPi

Offline boehm

  • New Member
  • *
  • Beiträge: 9
Antw:Neues Modul: ElectricityCalculator
« Antwort #8 am: 30 August 2016, 09:59:20 »
Hallo Sailor,

jetzt läuft es fast:-)

Das ursächliche Problem war wohl der Punkt. Danach hatte ich beim rumspielen das Attribut
Reading Destination auf CounterDevice gestellt. Da habe ich dann die Readings im SMLUSB Device dann auch gefunden.
Nach dem Umstellen auf CalculatorDevice erscheinen die Readings an der richtigen Stelle.

Ein Problem habe ich noch. Meine Stromverbrauchswerte stehen bei mir in Wh in der Datenbank. Ich habe das Attribut ElectricityPricePerkWh um drei Stellen nach links verschoben und jetzt im Prinzip den Preis pro Wh. Gibt es da vielleicht noch eine elegantere Lösung so dass ich bei kWh bleiben kann.

Ein weitere Frage. Ich nutze Fernwärme und habe es inzwischen geschafft aus dem Energiezähler per WMBUS die Energiemenge, Wasserdurchfluss und Temperaturen auszulesen. Da kann man doch dieses Modul eigentlich auch zur Kostenberechnung einsetzen?

Danke und Grüße

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Antw:Neues Modul: ElectricityCalculator
« Antwort #9 am: 30 August 2016, 11:09:12 »
Hallo boehm


jetzt läuft es fast:-)

Das ursächliche Problem war wohl der Punkt. Danach hatte ich beim rumspielen das Attribut
Reading Destination auf CounterDevice gestellt. Da habe ich dann die Readings im SMLUSB Device dann auch gefunden.
Nach dem Umstellen auf CalculatorDevice erscheinen die Readings an der richtigen Stelle.

Na siehste!  ;)

Ein Problem habe ich noch. Meine Stromverbrauchswerte stehen bei mir in Wh in der Datenbank. Ich habe das Attribut ElectricityPricePerkWh um drei Stellen nach links verschoben und jetzt im Prinzip den Preis pro Wh. Gibt es da vielleicht noch eine elegantere Lösung so dass ich bei kWh bleiben kann.

Ich verstehe nicht ganz. Werden die Stromverbrauchswerte in Wh vom GasZähler an den GasCalculator geliefert?
Wenn ja, dann kannst du das mit dem Attribut "ElectricityKwhPerCounts" = 0,001 von Wh in kWh umwandeln.

Ein weitere Frage. Ich nutze Fernwärme und habe es inzwischen geschafft aus dem Energiezähler per WMBUS die Energiemenge, Wasserdurchfluss und Temperaturen auszulesen. Da kann man doch dieses Modul eigentlich auch zur Kostenberechnung einsetzen?

Hmm, vielleicht kann ich auch ohne einen entsprechenden Fernwärmeanschluß zu haben, ein Modul schreiben...

Was sind den die Rahmenparameter:
  • Was steht auf der Rechnung?
  • Was liefert dir der Zähler?
  • Wie greifst du welche Werte ab?

Gruss
    Sailor
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172

Offline C0mmanda

  • Full Member
  • ***
  • Beiträge: 260
Antw:Neues Modul: ElectricityCalculator
« Antwort #10 am: 30 August 2016, 17:47:38 »
Hallo C0mmanda
Da wäre ich vorsichtig... Ich hatte das Reading ebenfalls mit drin und habe festgestellt, dass das Log-File komplett zugefüllt wird.

Wenn man dann auch noch so unvorsichtig ist wie ich und einen Plot vom Mai bis Mai mit genau diesen Werten macht, dauert es EWIG.
Den anstelle 365 Tageswerten werden dann plötzlich 105120 Werte versucht anzuzeigen (300s Intervall). Wenn man dann noch die Werte für die finanzielle Reserve darüber legt...
Also ich habe mit diesen Plots die CPU - Temperatur meines RasPis mit diesen Plots um 3°C erhöht!  :o

Danke für den Hinweis!
Aktuell logge ich noch gar nichts da ich noch am einrichten war.
Wenn ich dann loggen will werde ich daran denken und ein event-min-interval einbauen.
Darüber hinaus läuft mein FHEM auf einem Intel NUC, hat also etwas Reserven das ganze ;)

Zitat
Das wären ja nicht die verursachten Energiekosten sondern die abrechnungsfähigen Beträge auf monatlicher Basis. (Buchführung)
Den Basispreis habe ich (auf monatlicher Basis) in der finanziellen Reserve mit einfließen lassen, so dass auf Umwegen diese Werte dort richtig angezeigt werden.

Gruss
    Sailor

Okay, gut zu wissen. Danke.
Wie sich die finanzielle Reserve errechnet habe ich zwar noch nicht ganz nachvollzogen, aber da komme ich sicher noch hinter.

Eine Frage noch:
Bei uns wird zwar immer gegen Ende Nov/Anfang Dez. am Zähler abgelesen (müssen wir selbst machen), die Endabrechnung wird aber zum 31.12. hochgerechnet.
Heißt auf dem Papier wird bei mir der Zähler am 31.12. abgelesen.
Was müsste ich dann korrekterweise als "MonthOfAnnualReading" angeben? 12 oder 1?

Vielen Dank!

grtz
CmdA

Offline hermann258

  • New Member
  • *
  • Beiträge: 28
Antw:Neues Modul: ElectricityCalculator
« Antwort #11 am: 30 August 2016, 19:18:55 »
Super Modul
Ich will es mit dem ArduCounter nutzen.
Gibt es da noch etwas zu beachten?

Offline justme1968

  • Developer
  • Hero Member
  • ****
  • Beiträge: 16887
Antw:Neues Modul: ElectricityCalculator
« Antwort #12 am: 30 August 2016, 20:46:28 »
ich habe gerade etwas mit dem modul gespielt. schaut bis jetzt gut aus. danke...

könntest du noch unterstützung für stateFormat einbauen? dann kann man sich konfigurieren was man in der raum übersicht sieht statt nur active.

zu _EnergyCostDay: man könnte das reading ohne event erzeugen so das es nicht geloggt wird und per logProxy direkt aus dem reading in den plot holen.

gruss
  andre
FHEM5.4,DS1512+,2xCULv3,DS9490R,HMLAN,2xRasPi
CUL_HM:HM-LC-Bl1PBU-FM,HM-LC-Sw1PBU-FM,HM-SEC-MDIR,HM-SEC-RHS
HUEBridge,HUEDevice:LCT001,LLC001,LLC006,LWL001
OWDevice:DS1420,DS18B20,DS2406,DS2423
FS20:fs20as4,fs20bs,fs20di
AKCP:THS01,WS15
CUL_WS:S300TH

Offline peterK

  • New Member
  • *
  • Beiträge: 6
Antw:Neues Modul: ElectricityCalculator
« Antwort #13 am: 31 August 2016, 05:28:52 »
‚Hallo und natürlich auch von mir vielen Dank zu so einem tollen Modul.
Habe damit auch schon romprobiert.
Eine Frage wenn ich das Reading KwhperCounts auf 1 setze dann übernimmt der genau meine regex.
Ändere ich dies z.B aus 0.1 dann wird irgendwas gerechnet , bei 0.01 noch was anders und bei 0.001 wieder was anderes.
Würde diesen Faktor gerne benutzen um von 7 Stelligen Counter auf 4 Stellung.xxx zu kommen.
Was könnte ich falsch machen ?
Peter

Offline Sailor

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1043
  • und es werden immer mehr...
Antw:Neues Modul: ElectricityCalculator
« Antwort #14 am: 31 August 2016, 09:34:49 »
Hallo CmdA

Okay, gut zu wissen. Danke.
Wie sich die finanzielle Reserve errechnet habe ich zwar noch nicht ganz nachvollzogen, aber da komme ich sicher noch hinter.

Ganz einfach: Monatlicher zu zahlender Abschlag jeweils am 01. eines Monats aufsummiert minus die aktuellen Verbrauchskosten.


Bei uns wird zwar immer gegen Ende Nov/Anfang Dez. am Zähler abgelesen (müssen wir selbst machen), die Endabrechnung wird aber zum 31.12. hochgerechnet.
Heißt auf dem Papier wird bei mir der Zähler am 31.12. abgelesen.
Was müsste ich dann korrekterweise als "MonthOfAnnualReading" angeben? 12 oder 1?

1

Gruss
    Sailor
******************************
Raspberry Pi mit DbLog, HomeMatic HMLAN
13x HM-SEC-SC; 11x HM-TC-IT-WM-W-EU; 13x HM-CC-RT-DN; 03x HM-Sec-SD; 01x HM-WDS10-TH-O; km200 mit Buderus GB172

 

decade-submarginal