Neues Modul: ElectricityCalculator

Begonnen von Sailor, 26 August 2016, 21:05:35

Vorheriges Thema - Nächstes Thema

Sailor

Moin WHC

Zitat von: weckinghausencustoms am 24 Februar 2020, 12:27:01
Wenn man manuell in der .pm Datei die "sprintf('%.3f'..." Rundung durch .4f ersetzt ist das Problem gelöst. Aber nur bis zum nächsten Update...
Vielleicht lässt sich dieser Fehler von den Administratoren ja beheben?

Ist behoben!

Ihr habt ab morgen ein neues Attribut "DecimalPlace", mit dem Ihr die Nachkommastellen zwischen 3 und 7 Stellen frei wählen könnt.

Zum Zwecke der Abwärtskompatibilitaet ist der Standard Wert bei 3.

Gruß
    Sailor
******************************
Man wird immer besser...

ByteWriter

Hallo,
seid dem letzten Update von FHEM und auch EC (29.02.2020) funktioniert dieser bei mir nicht mehr.
Ich benutze den EC um die erzeugte Energie eines Solar Moduls, welche mit einem Sonoff Pow gemessen wird, zu berechnen.
Das hat bisher wunderbar funktioniert.
Hier meine konfig:

define PVRechner ElectricityCalculator PVSonoff_Pow:Energytotal:.*
setuuid PVRechner 5dc7db54-f33f-d5b5-c9c5-0b516576379b2195
attr PVRechner BasicPricePerAnnum 0
attr PVRechner Currency €;
attr PVRechner DecimalPlace 3
attr PVRechner ElectricityCounterOffset 0
attr PVRechner ElectricityKwhPerCounts 0.001
attr PVRechner ElectricityPricePerKWh 0.2567
attr PVRechner MonthOfAnnualReading 1
attr PVRechner MonthlyPayment 0
attr PVRechner ReadingDestination CalculatorDevice
attr PVRechner SiPrefixPower W
attr PVRechner room Garage
attr PVRechner stateFormat {sprintf("Heute erzeugt: %.2f kW/h<br>Gestern erzeugt: %.2f KW/h<br>bisher im Monat erzeugt: %.2f KW/h<br>bisher im Jahr erzeugt: %.2f KW/h", ReadingsVal($name,"PVSonoff_Pow_Energytotal_EnergyDay",undef), ReadingsVal($name,"PVSonoff_Pow_Energytotal_EnergyDayLast",undef), ReadingsVal($name,"PVSonoff_Pow_Energytotal_EnergyMonth",undef), ReadingsVal($name,"PVSonoff_Pow_Energytotal_EnergyYear",undef))}
attr PVRechner verbose 5


Es gibt auch keine "set" und "get" Button mehr im DeviceOverview.

Gruß Rainer

Karflyer

#527
ZitatHallo,
seid dem letzten Update von FHEM und auch EC (29.02.2020) funktioniert dieser bei mir nicht mehr.

Habe gerade das gleiche Verhalten bei mir festgestellt. Das letzte FHEM-Update hatte ich am 28.02.20 eingespielt. Seid dem funktioniert das Modul nicht mehr.

Stacktrace wirft beim Eintreffen des Zählerevents folgende Fehlermeldung:

2020.03.01 16:04:35 1: PERL WARNING: Use of uninitialized value $a[3] in numeric ge (>=) at ./FHEM/73_ElectricityCalculator.pm line 178.
2020.03.01 16:04:35 1: stacktrace:
2020.03.01 16:04:35 1:     main::__ANON__                      called by ./FHEM/73_ElectricityCalculator.pm (156)
2020.03.01 16:04:35 1:     main::ElectricityCalculator_Attr    called by fhem.pl (3764)
2020.03.01 16:04:35 1:     main::CallFn                        called by fhem.pl (2293)
2020.03.01 16:04:35 1:     main::CommandDeleteAttr             called by fhem.pl (1246)
2020.03.01 16:04:35 1:     main::AnalyzeCommand                called by ./FHEM/01_FHEMWEB.pm (2700)
2020.03.01 16:04:35 1:     main::FW_fC                         called by ./FHEM/01_FHEMWEB.pm (971)
2020.03.01 16:04:35 1:     main::FW_answerCall                 called by ./FHEM/01_FHEMWEB.pm (596)
2020.03.01 16:04:35 1:     main::FW_Read                       called by fhem.pl (3764)
2020.03.01 16:04:35 1:     main::CallFn                        called by fhem.pl (756)


Das gleiche gilt auch für das Modul 'GasCalculator'.

Gruß
Stefan

Sailor

#528
Hallo zusammen

die Probleme sind alles einer kleinen Unachtsamkeit meinerseits geschuldet.
Ich denke ich habe es jetzt gefixt und sollte mit dem Update ab morgen behoben sein.

Mit der Bitte um Rückmeldung.

Aber bitte daran denken:
a) Der Zaehler muss das Attribut "event-on-change-reading .*" gesetzt haben.
b) Der Calculator eine saubere, durch ":" getrennte Definition zwischen Zaehler-Device und dem Reading haben.


Gruß
    Sailor
******************************
Man wird immer besser...

Karflyer

ZitatHallo zusammen

die Probleme sind alles einer kleinen Unachtsamkeit meinerseits geschuldet.
Ich denke ich habe es jetzt gefixt und sollte mit dem Update ab morgen behoben sein.

Mit der Bitte um Rückmeldung.

Aber bitte daran denken:
a) Der Zaehler muss das Attribut "event-on-change-reading .*" gesetzt haben.
b) Der Calculator eine saubere, durch ":" getrennte Definition zwischen Zaehler-Device und dem Reading haben.


Gruß
    Sailor

Bei mir läuft nun das Modul ElectrityCalculator und das Modul GasCalculator wieder korrekt.
Danke Sailor für das schnelle fixen.

gruß
Stefan

ByteWriter

Der EC läuft bei mir auch wieder.
Die ersten Werte sind zwar etwas hoch, aber das kommt weil 3 Tage nix berechnet wurde.
Das gibt sich also.
Aber auch von mir ein großes DANKE für die schnelle Reaktion.

Gruß
Rainer

andy19850

kurze Frage an die User des Moduls...
ich habe immer mal wieder Abweichungen aufgrund des Sensors.
Ich behelfe mir derzeit damit alle paar Tage den Offset anzupassen. Das ist natürlich reichlich kompliziert am Handy.
Gibt es eine Möglichkeit irgendwo den aktuellen Zählerstand einzutragen und FHEM rechnet den Offset neu?
Vielleicht eine dummy/doif Konstruktion? Mir fehlt da gerade etwas die Idee

Sailor

Hi Andy

Zitat von: andy19850 am 02 März 2020, 21:05:20
Gibt es eine Möglichkeit irgendwo den aktuellen Zählerstand einzutragen und FHEM rechnet den Offset neu?

Hmmm, vielleicht eine Idee für einen neue Funktion (set - Befehl).

Lass mich mal drüber nachdenken...

Gruß
    Sailor
******************************
Man wird immer besser...

ByteWriter

Guten Abend,
also bei mir speichert der Sonoff Pow den Zählerstand. Per MQTT übertragen, mit 1000 multipliziert und
dann an den EC übergeben.
Du musst eigentlich "nur" eine Möglichkeit finden den Zählerstand zu speichern.
Aber im Moment habe ich keine Ahnung wie.

Gruß
Rainer

ByteWriter

Hallo,
nach etwas drüber nachdenken über Dein Problem mit dem Sensor und dem Zählerstand andy19850, habe ich noch einen anderen Gedanken.
Kann es sein, dass Dein Zähler nicht alle Impulse des Sensors zählt?
Wenn das der Fall ist, solltest Du eher da ansetzen, als händisch oder mit einem dummy zu arbeiten.
Nun kenne ich Deinen Sensor-Zähler-Aufbau nicht. Ich könnte mir aber vorstellen, dass einfach die Leitung vom Sensor zum Zähler zu lang ist und
dadurch Impulse verloren gehen.

Gruß
Rainer

andy19850

Zitat von: ByteWriter am 05 März 2020, 14:08:22
Hallo,
nach etwas drüber nachdenken über Dein Problem mit dem Sensor und dem Zählerstand andy19850, habe ich noch einen anderen Gedanken.
Kann es sein, dass Dein Zähler nicht alle Impulse des Sensors zählt?
Wenn das der Fall ist, solltest Du eher da ansetzen, als händisch oder mit einem dummy zu arbeiten.
Nun kenne ich Deinen Sensor-Zähler-Aufbau nicht. Ich könnte mir aber vorstellen, dass einfach die Leitung vom Sensor zum Zähler zu lang ist und
dadurch Impulse verloren gehen.

Gruß
Rainer

Danke für den Hinweis! Das Kabel ist kurz gehalten, der ESP ist direkt neben dem Zähler. Aber ja, du hast recht, manche Impulse werden wohl nicht gezählt. Ich schiebe es auf meinen TCRT5000 i.V.m. dem Ferraris Zähler, den ich schon stundenlang justiert habe und nun eine passable Fehlerquote habe (besser habe ich es bisher nicht hinbekommen).

Ein anderer Anwendungsfall der eine Korrektur benötigen würde, wäre der Ausfall (WLAN z.B.) des ESPs oder des Fritz Repeaters (z.B. weil die Kids ihn aus der Wand gezogen haben oder weil er neu startet).
Von daher würde mich eine Lösung nach wie vor brennend interessieren.

ByteWriter

ZitatIch schiebe es auf meinen TCRT5000 i.V.m. dem Ferraris Zähler, den ich schon stundenlang justiert habe und nun eine passable Fehlerquote

Ich habe da was gefunden, aber vielleicht kennst Du den Beitrag schon.https://nachbelichtet.com/2019/06/23/so-funktioniert-der-tcrt5000-mit-espeasy-als-pulse-counter/

ZitatEin anderer Anwendungsfall der eine Korrektur benötigen würde, wäre der Ausfall (WLAN z.B.) des ESPs oder des Fritz Repeaters (z.B. weil die Kids ihn aus der Wand gezogen haben oder weil er neu startet).

Also wenn der ESP ausfällt, weil kein Strom, und der Ferraris weiter läuft, ist klar, muss korrigiert werden.
Aber warum mußt Du eine Korrektur machen, wenn das WLAN ausfällt?
Äh, schickt der ESP etwa immer nur ein Ping per WLAN, wenn die rote Stelle der Zählerscheibe an der Lichtschranke vorbei kommt?
Das wäre ja nicht schön.
Der Sonoff Pow bei mir speichert den Zählerstand und der bleibt auch erhalten, wenn der keinen Strom hat.
Mittlerweile steht der bei 19,743 und diese Zahl wird per MQTT übertragen. Wenn das WLAN ausfällt macht das also gar nichts.

Gruß
Rainer

eurofinder

Hallo,

ich glaube ich stehe gerade auf dem Schlauch. Ich würde gerne neben den Tages- und Jahresproduktionswerten in kWh, die meine PV-Anlage automatisch ermittelt, auch z.B. Monats- und Quartalswerte ermitteln.
Ich habe gehofft, dass ich dazu dass ElectricityCalculator-Modul verwenden kann. Neben der PV-Anlage habe ich auch einen Smartmeter (Fronius).
Wenn ich das richtig verstanden habe, funktioniert der EC aber nur mit einem Reading das Zählimpulse liefert oder kann ich das irgendwie auch mit meiner Konstellation hinbekommen?

Danke und Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO

ByteWriter

Hallo,
ja mit dem EC kannst Du Tages-, Vortages-, Monats-, Vormonats-, Jahres- und Vorjahreswerte ermittel.
Quartalswerte geht glaube ich nicht.

ZitatWenn ich das richtig verstanden habe, funktioniert der EC aber nur mit einem Reading das Zählimpulse liefert

das hast Du falsch verstanden.
Ich z.B. messe die erzeugte Energie meines Solarmoduls mit einem Sonoff Pow. Der liefert keine Impulse, sondern eine Zahl, also
den aktuellen Zählerstand. Damit rechnet der EC ganz einwandfrei.
Nun weiß ich nicht, was Dein Smartmeter liefert. Wenn Du den Zählerstand auslesen kannst, kann ich nur empfehlen diesen zu
verwenden.
Kannst Du nur Impulse abgreifen, müssen diese mit einem Counter-Device in FHEM zu einer Zahl zusammen addiert werden.
Mit dieser Zahl kann dann der EC rechnen.

Gruß
Rainer

eurofinder

@ByteWriter:
Danke für die Rückmeldung.

Ich habe mich an deiner config orientiert und jetzt klappt es hier auch. Zwar stimmen die Werte nicht zu 100 % mit denen überein, die ich im Solarweb von Fromius generiert bekomme, aber vielleicht bekomme ich das ja auch noch hin:-)

Gruß
eurofinder
RPI3+; Raspbian Buster Lite; RPI-RF-MOD; piVCCU3, HMIP-eTRV-2, HmIP-SWDO, HmIP-SRH, HmIP-STHO, HmIP-SLO