Neues Modul: ElectricityCalculator

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

Vorheriges Thema - Nächstes Thema

Sailor

Hi Major

Zitat von: majorshark am 23 April 2017, 21:10:44
Du must in den Offset den aktuellen Zählerstand eintragen, nicht den vom 31.12.

Nicht ganz!
Du musst den Offset (dt: Abweichung), also die Differenz zwischen dem mechanischen Zähler und den gegenwärtig angezeigten Wert im Modul eintragen.

Gruss
    Sailor
******************************
Man wird immer besser...

frankreed

Ist denn der Offset bei der Ersteinrichtung nicht gleich Null??
Denn den abgelesenen Zählerstand trage ich ja als Anfangswert ein und muss zu Beginn ja identisch mit dem vom Modul errechneten sein.
Wo ist da der Denkfehler?

Sailor

Hallo frank

Zitat von: frankreed am 24 April 2017, 09:52:16
Ist denn der Offset bei der Ersteinrichtung nicht gleich Null??
Denn den abgelesenen Zählerstand trage ich ja als Anfangswert ein und muss zu Beginn ja identisch mit dem vom Modul errechneten sein.
Wo ist da der Denkfehler?

Theoretisch ja, aber ich habe in der Praxis noch keinen elektronischen Zähler-Chip gesehen, der bei Auslieferung auch wirklich 0000000000x2 in seinem Memory stehen hatte.
Irgendwie kommen da immer irgendwelche Bit-Dreher von außen rein.

Um den Offset kümmere dich am besten erst im zweiten Schritt.

Im ersten Schritt lässt du den ElectricityCounterOffset = 0 sorgst erst einmal für sich kontinuierlich ändernde und aufaddierende Werte im <DestinationDevice>_<SourceCounterReading>_CounterCurrent.

Erst wenn das der Fall ist, berechnest du ElectricityCounterOffset = mechanischer Zähler -  <DestinationDevice>_<SourceCounterReading>_CounterCurrent

Dann sollte beim nächsten Update der  Wert im <DestinationDevice>_<SourceCounterReading>_CounterCurrent und der mechanische Wert identisch sein.

Danach löscht du aus dem Log-File die alten Werte und schon dürftest du einen vernünftigen Graph bekommen.

Gruß
    Sailor





******************************
Man wird immer besser...

KernSani

@Sailor:

Ich nutze den ElectricityCalculator erfolgreich mit dem HM-ES-TX-WM, kein Problem, da da kontinuierlich Werte kommen. Nun habe ich zusätzlich noch ein ElectricityCalculator device eingerichtet, um separat eine PCA301 Dose zu überwachen. Diese sendet allerdings nur sehr sporadisch Werte, manchmal über Tage nicht (was auch richtig so ist, da kein Strom verbraucht wird). Dies führt allerdings dazu, dass die ".*Last" Readings nicht aktualisiert werden. Ich habe ins Coding geschaut und so wie ich das sehe, werden die Readings nur bei Event aktualisiert. Könnte man noch einen InternalTimer mit einbauen, der kurz nach Mitternacht die .*Last-Readings füllt (und die aktuellen zurück setzt?
PowerCurrent/Average sind in diesem Zusammenhang auch etwas kritisch (da fällt mir aber keine einfache Lösung ein - Vielleicht currentPower nach einstellbarer Zeit ohne Event auf 0 setzen und avg darauf basierend berechnen?

Danke,

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Octopus180

Hallo frankreed und auch alle die hier lesen

ich versuche zurzeit das gleiche umzusetzten wie du. Ich habe einen Stromzähler mit S0-Schnittstelle der mir über ESPEasy meine Impulse an den Raspberry übermittelt. Ich habe die gleichen Readings wie du:

Count      0                                            2017-04-26 18:47:13
Time       1725147                                  2017-04-26 18:47:13
Total       164                                         2017-04-26 18:47:13
presence present                                    2017-04-26 18:43:44
state       Cou: 0 Tim: 1725147 Tot: 164  2017-04-26 18:47:13

ein list sieht so aus:

Internals:
   DEF        192.168.2.133 80 ESPBridge BME280_Watt
   ESPBridge_MSGCNT 43
   ESPBridge_TIME 2017-04-26 18:51:14
   ESP_BUILD  147
   ESP_SLEEP  0
   ESP_UNIT   11
   HOST       192.168.2.133
   IDENT      BME280_Watt
   INTERVAL   300
   IODev      ESPBridge
   LASTInputDev ESPBridge
   MSGCNT     43
   NAME       Elekt_S0_Sensor
   NOTIFYDEV  global
   NR         57
   NTFY_ORDER 50-Elekt_S0_Sensor
   PORT       80
   STATE      Cou: 0 Tim: 1725147 Tot: 164
   SUBTYPE    device
   TYPE       ESPEasy
   VERSION    1.03
   Helper:
     Dblog:
       Total:
         Dblog:
           TIME       1493225474.13364
           VALUE      164
   Readings:
     2017-04-26 18:51:14   Count           0
     2017-04-26 18:51:14   Time            1725147
     2017-04-26 18:51:14   Total           164
     2017-04-26 18:48:47   presence        present
     2017-04-26 18:51:14   state           Cou: 0 Tim: 1725147 Tot: 164
   Helper:
     fpc        1493222907
     Intat:
       1:
         FN         ESPEasy_statusRequest
         INTERVAL   301
         TRIGGERTIME 26.04.2017 18:53:48
     Received:
       Count      1493225474
       Time       1493225474
       Total      1493225474
Attributes:
   IODev      ESPBridge
   Interval   300
   group      ESPEasy Device
   presenceCheck 1
   readingSwitchText 1
   room       9.97_ESPEasy
   setState   3

ich habe versucht das was du im Post #221 zu verstehen , aber als Anfänger verstehe ich nicht was du dort gemacht hast.
Besteht die Möglichkeit mir das anders zu erklären was ich machen muss?
Ich würde gerne das Modul ElectricityCounter verwenden.

Danke im vorraus

Peter

Sailor

Hallo Oli

Zitat von: KernSani am 24 April 2017, 20:00:08
Ich nutze den ElectricityCalculator erfolgreich mit dem HM-ES-TX-WM, kein Problem, da da kontinuierlich Werte kommen. Nun habe ich zusätzlich noch ein ElectricityCalculator device eingerichtet, um separat eine PCA301 Dose zu überwachen. Diese sendet allerdings nur sehr sporadisch Werte, manchmal über Tage nicht (was auch richtig so ist, da kein Strom verbraucht wird). Dies führt allerdings dazu, dass die ".*Last" Readings nicht aktualisiert werden. Ich habe ins Coding geschaut und so wie ich das sehe, werden die Readings nur bei Event aktualisiert. Könnte man noch einen InternalTimer mit einbauen, der kurz nach Mitternacht die .*Last-Readings füllt (und die aktuellen zurück setzt?
PowerCurrent/Average sind in diesem Zusammenhang auch etwas kritisch (da fällt mir aber keine einfache Lösung ein - Vielleicht currentPower nach einstellbarer Zeit ohne Event auf 0 setzen und avg darauf basierend berechnen?

Hallo Oli

Im ersten Schritt brauchst du zunächst eine RegEx auf den kontinuierlich wachsenden Zähler.
Wenn das funktioniert dann bist du ein gutes Stück weiter.

Um den Plotabriss um die Mitternacht zu beenden, gibt es hier Abhilfe: https://wiki.fhem.de/wiki/Plot-Abriss_vermeiden

Deine Probleme mit den Werten ist ein mathematisches Problem, dass ich nicht lösen kann:

Das Modul bildet die Mittelwerte aber der Funktionsverlauf der Leistungskurve im Graphen, kann nur dann hinreichend aussagekräftig sein, wenn das Abtastintervall << Betrachtungsintervall ist.

Wenn das Abtastintervall also auf 3 min = 0,05h versus 24h Betrachtungszeitraum steht, dann ist das ein Verhältnis von 1:480 -> Sehr gut
Wenn das Abtastintervall aber wie bei dir auf mehrere Tage liegt, können die angezeigten Werte zwangsläufig nur für die Füße sein.

Versucht mal herauszufinden, ob die Dose nicht zwangsweise öfter senden kann. Ggf. event-on-Change-Reading beim Zählermodul HM-ES-TX-WM deaktivieren.
Das Füllen der Log-Files kann man dann aber immer noch per Attribut unterbinden.

Beispiel DbLog
attr DEVICE DbLogExclude READING1,READING2

Gruß
    Sailor



******************************
Man wird immer besser...

KernSani

Hi Sailor,

danke für die ausführliche Antwort. RegEx usw. funktioneiren, der HM-ES-TX-WM ist auch nicht das Problem, sondern PCA301-Dosen, die z.B. an der Waschmaschine hängen. "addLog" habe ich bereits im Einsatz, hilft allerdings auch nicht - ich vermute dass der ElectrictiyCalculator das Event ignoriert, weil der übermittelte Wert der selbe ist Ich habe verbose mal auf 5 gesetzt und wollte mir das heute Abend nochmal genauer ansehen.

Grüße,

Oli
RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

KernSani

Hi Sailor,

ich bin jetzt endlich mal dazu gekommen, mir das Problem genauer anzusehen. Folgendes passiert: Der Trockner läuft nicht jeden Tag, schickt also auch kein Event (tut sie eigentlich schon, aber electricityCalculator scheint das zu ignorieren, da kein neuer Wert gesendet wird). Folgendes passiert, wenn mein addlog los läuft:

2017.04.30 00:02:14 5: KG_Trockner_ElectricityCalc : ElectricityCalculator - Previous Reading Value                           : 2017-04-29 00:02:01
2017.04.30 00:02:14 5: KG_Trockner_ElectricityCalc : ElectricityCalculator - Current Reading Value                            : 2017-04-30 00:01:47
2017.04.30 00:02:14 5: KG_Trockner_ElectricityCalc : ElectricityCalculator - Previous Reading Value                           : 11.700
2017.04.30 00:02:14 5: KG_Trockner_ElectricityCalc : ElectricityCalculator - Current Reading Value                            : 11.7

Aus welchem Grund auch immer, ist das addlog heute ein bisschen früher dran, als gestern... Die folgende Bedingung ist nicht erfüllt:

### Check whether the current value is the first one after change of day = First one after midnight
if ($ElectricityCountReadingTimestampCurrentHour < $ElectricityCountReadingTimestampPreviousHour)

und damit wird .*_EnergyDayLast nicht aktualisiert. Da _prevRead jedoch aktualisiert wird, führen weitere Events (wenn denn welche kommen würden) auch nicht dazu, dass die ganzen .*Last events aktualisiert werden.
Eigentlich würde es ausreichen (zumindest in meinem Fall), wenn im if oben auch noch das Datum überprüft werden würde, nicht nur die Uhrzeit...

Danke,

Oli



RasPi: RFXTRX, HM, zigbee2mqtt, mySensors, JeeLink, miLight, squeezbox, Alexa, Siri, ...

Blondie

Hallo Sailor,

danke für das Modul.
Ich habe ein Fehler im Umgang mit dem "SiPrefixPower" Attribute entdeckt: die momentane Leistung [W] wird beim Umstellen des Attributes von W-->kW-->MW-->GW falsch skaliert: anstatt durch 1000 zu dividieren, wird der Wert in W mit 1000 usw. multipliziert.

### Check whether "SiPrefixPower" attribute has been provided
if ($a[2] eq "SiPrefixPower")
{
if    ($a[3] eq "W" ) {$hash->{system}{SiPrefixPowerFactor} = 1          ;}
elsif ($a[3] eq "kW") {$hash->{system}{SiPrefixPowerFactor} = 1000       ;}
elsif ($a[3] eq "MW") {$hash->{system}{SiPrefixPowerFactor} = 1000000    ;}
elsif ($a[3] eq "GW") {$hash->{system}{SiPrefixPowerFactor} = 1000000000 ;}
else                  {$hash->{system}{SiPrefixPowerFactor} = 1          ;}
}

Gruß Blondie

Schraubenzieher

Hallo,
habe seit ein paar Tagen testweise dieses Modul laufen. Soweit scheint auch alles gut zu funktionieren bis auf die Minuszeichen vor verschiedenen Werten.
Habe ich vielleicht irgendwas übersehen oder ein Attribut nicht korrekt gesetzt?
Als Quelle für die Verbrauchsdaten dient ein HM-ES-PMSw1-DR.

defmod myElectricityCalculator ElectricityCalculator HM_44AFF1_Pwr:energy.*
attr myElectricityCalculator BasicPricePerAnnum 0
attr myElectricityCalculator Currency €;
attr myElectricityCalculator ElectricityCounterOffset 0
attr myElectricityCalculator ElectricityKwhPerCounts 0.001
attr myElectricityCalculator ElectricityPricePerKWh 0.2567
attr myElectricityCalculator MonthOfAnnualReading 5
attr myElectricityCalculator MonthlyPayment 0
attr myElectricityCalculator ReadingDestination CalculatorDevice
attr myElectricityCalculator SiPrefixPower W

setstate myElectricityCalculator active
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energyCalc_LastDV 0.002
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energyCalc_LastDt 129
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energyCalc_PowerDayCount 294
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energyCalc_PowerDaySum 15527.706
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energyCalc_PrevRead 4.402
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energy_LastDV 0.002
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energy_LastDt 129
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energy_PowerDayCount 294
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energy_PowerDaySum 15514.863
setstate myElectricityCalculator 2017-07-05 14:57:10 .HM_44AFF1_Pwr_energy_PrevRead 4.402
setstate myElectricityCalculator 2017-07-03 00:55:33 .HM_44AFF1_Pwr_power_LastDV 0.000
setstate myElectricityCalculator 2017-07-03 00:52:57 .HM_44AFF1_Pwr_power_LastDt 34
setstate myElectricityCalculator 2017-07-03 00:52:57 .HM_44AFF1_Pwr_power_PowerDayCount 2
setstate myElectricityCalculator 2017-07-03 00:52:57 .HM_44AFF1_Pwr_power_PowerDaySum 598.166
setstate myElectricityCalculator 2017-07-03 00:53:30 .HM_44AFF1_Pwr_power_PrevRead 0.171
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_CounterCurrent 4.402
setstate myElectricityCalculator 2017-07-05 00:00:29 HM_44AFF1_Pwr_energyCalc_CounterDay1st 3.683
setstate myElectricityCalculator 2017-07-05 00:00:29 HM_44AFF1_Pwr_energyCalc_CounterDayLast 3.677
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energyCalc_CounterMeter1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:30 HM_44AFF1_Pwr_energyCalc_CounterMeterLast 0.469
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energyCalc_CounterMonth1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energyCalc_CounterMonthLast 0.469
setstate myElectricityCalculator 2017-07-03 00:55:30 HM_44AFF1_Pwr_energyCalc_CounterYear1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:30 HM_44AFF1_Pwr_energyCalc_CounterYearLast 0.469
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyCostDay 0.185
setstate myElectricityCalculator 2017-07-05 00:00:29 HM_44AFF1_Pwr_energyCalc_EnergyCostDayLast 0.442
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyCostMeter 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyCostMonth 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyCostYear 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyDay 0.720
setstate myElectricityCalculator 2017-07-05 00:00:29 HM_44AFF1_Pwr_energyCalc_EnergyDayLast 1.722
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyMeter 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyMonth 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_EnergyYear 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_FinanceReserve -1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_MonthMeterReading 3
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_PowerCurrent 55.814
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energyCalc_PowerDayAver 52.815
setstate myElectricityCalculator 2017-07-05 12:31:31 HM_44AFF1_Pwr_energyCalc_PowerDayMax 205.714
setstate myElectricityCalculator 2017-07-05 03:04:12 HM_44AFF1_Pwr_energyCalc_PowerDayMin 0
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_CounterCurrent 4.402
setstate myElectricityCalculator 2017-07-05 00:00:28 HM_44AFF1_Pwr_energy_CounterDay1st 3.683
setstate myElectricityCalculator 2017-07-05 00:00:29 HM_44AFF1_Pwr_energy_CounterDayLast 3.677
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterMeter1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterMeterLast 0.469
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterMonth1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterMonthLast 0.469
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterYear1st 0.4699
setstate myElectricityCalculator 2017-07-03 00:55:29 HM_44AFF1_Pwr_energy_CounterYearLast 0.469
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyCostDay 0.185
setstate myElectricityCalculator 2017-07-05 00:00:28 HM_44AFF1_Pwr_energy_EnergyCostDayLast 0.442
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyCostMeter 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyCostMonth 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyCostYear 1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyDay 0.720
setstate myElectricityCalculator 2017-07-05 00:00:28 HM_44AFF1_Pwr_energy_EnergyDayLast 1.722
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyMeter 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyMonth 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_EnergyYear 3.933
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_FinanceReserve -1.009
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_MonthMeterReading 3
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_PowerCurrent 55.814
setstate myElectricityCalculator 2017-07-05 14:57:10 HM_44AFF1_Pwr_energy_PowerDayAver 52.772
setstate myElectricityCalculator 2017-07-05 12:31:31 HM_44AFF1_Pwr_energy_PowerDayMax 205.714
setstate myElectricityCalculator 2017-07-05 03:04:11 HM_44AFF1_Pwr_energy_PowerDayMin 0
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_CounterCurrent 0.171
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterDay1st 0.19392
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterDayLast 0.188
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterMeter1st 0.19392
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterMeterLast 0.188
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterMonth1st 0.19392
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_CounterMonthLast 0.188
setstate myElectricityCalculator 2017-07-03 00:52:04 HM_44AFF1_Pwr_power_CounterYear1st 0.19392
setstate myElectricityCalculator 2017-07-03 00:52:04 HM_44AFF1_Pwr_power_CounterYearLast 0.188
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyCostDay -0.006
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyCostMeter -0.006
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyCostMonth -0.006
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyCostYear -0.006
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyDay -0.023
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyMeter -0.023
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyMonth -0.023
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_EnergyYear -0.023
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_FinanceReserve 0.006
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_MonthMeterReading 3
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_PowerCurrent 317.647
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_PowerDayAver 299.083
setstate myElectricityCalculator 2017-07-03 00:52:57 HM_44AFF1_Pwr_power_PowerDayMax 317.647
setstate myElectricityCalculator 2017-07-03 00:52:03 HM_44AFF1_Pwr_power_PowerDayMin 0



Hat Jemand einen Tipp

Danke im voraus,

Gruß
Ralf

Sailor

Hallo Ralf

Zitat von: Schraubenzieher am 05 Juli 2017, 15:21:53
habe seit ein paar Tagen testweise dieses Modul laufen. Soweit scheint auch alles gut zu funktionieren bis auf die Minuszeichen vor verschiedenen Werten.
Habe ich vielleicht irgendwas übersehen oder ein Attribut nicht korrekt gesetzt?
Als Quelle für die Verbrauchsdaten dient ein HM-ES-PMSw1-DR.

Dein Zaehlermodul liefert dir keine Zaehlerstaende sondern Verbrauchswerte seit der letzten Messung.
Damit das ElectricityCalculator Modul funktionieren kann, braucht es fortlaufend immer groesser werdende Zaehlerstaende.

Gruss
    Sailor
******************************
Man wird immer besser...

Schraubenzieher

Hallo Sailor,

danke für deine Antwort aber ich verstehe sie nicht wirklich.
Mit dem Reading energy des HM-ES-PMSw1-DR bekomme ich doch einen fortlaufenden Zählerstand in Wh.
Ein Ausschnitt aus dem Wiki des HM-ES-PMSw1-Pl (identischer Funktionsumfang) :
ZitatChannel 02 (_Pwr)

Der Messkanal des PMSw1, über den die momentane Netzspannung, die Frequenz (in Hz), die aktuellen Verbrauchswerte (Last, Watt) sowie die seit Inbetriebnahme umgewandelte Leistung ("Verbrauch", Wh) usw. an die Zentrale (hier FHEM) übermittelt werden.

Darum dachte ich das das ElectricityCalculator-Modul das richtige für mein Vorhaben sei die Energiekosten zu erfassen.
Oder bin ich jetzt total auf dem Holzweg, dann bitte ich um Nachsicht.

Gruß
Ralf

Schraubenzieher

#237
Hallo Sailor,

nach einem löschen und neu anlegen meines ElectricityCalculator-Device  bekomme ich jetzt plausible Werte ohne negativen Vorzeichen angezeigt.
Eventuell habe ich durch das Probieren mit verschiedenen Regex-Einträgen dein Modul etwas durcheinander gebracht.
Wäre es in solch einem Fall nicht günstig wenn man die Liste der Readings zurücksetzen könnte ohne das Device neu anlegen zu müssen?

Gruß
Ralf

Nachtrag:
Leider zu früh gefreut. Nach ändern des Attributs ElectricityKwhPerCounts von 1 in 0.001 (da ich ja Wh habe) bekomme ich nun wieder negative Werte in den Cost-Readings.

Reinhart

Hallo!

Ich habe mir jetzt die Farbgestaltung der Anzeige in den Readinggroups nun mit dem Modul Color.pm gemacht.
Das geht wesentlich einfacher und ist auch übersichtlicher. Die Syntax dazu ist ganz einfach und auf das wesentliche beschränkt:

Color::pahColor($starttemp,$midtemp,$endtemp,$temp,$colors,$opacity)

Definition
<%measure_power>,<Zaehlerstand>,<aktueller Wert>,<Tagesverbrauch=>>,<Heute>,<Tagesverbrauch=>>,<Gestern>,<Monat>,<Jahr>,<€-Reserve>,<hr> .*(LS110|LS110_2):electricityConsumed,electricityPower,statElectricityConsumedToday,electricityConsumed_EnergyDay,electricityConsumed_EnergyDayLast,electricityConsumed_EnergyCostDayLast,electricityConsumed_EnergyCostMonth,electricityConsumed_EnergyCostMeter,electricityConsumed_FinanceReserve

ValueFormat
{'electricityConsumed' =>"%09d",
'electricityPower' =>"%.0f W",
'statElectricityConsumedToday' =>"%.0f Wh",
'electricityConsumed_EnergyDayLast' => "%.2f Kw/h",
'electricityConsumed_EnergyCostDayLast'=> "%.2f €",
'electricityConsumed_EnergyCostMonth'=> "%.2f €",
'electricityConsumed_EnergyCostMeter'=> "%.2f €",
'electricityConsumed_FinanceReserve' => "%.2f €",
'electricityConsumed_EnergyDay'=> '{sprintf("%.2f €",$VALUE*0.17)}' }


valueStyle
{
'electricityPower' => '{"style=\"color:#".substr(Color::pahColor(0,1000,3000,$VALUE,0),0,6)."\""}' ,
'statElectricityConsumedToday' => '{"style=\"color:#".substr(Color::pahColor(0,6000,15000,$VALUE,1),0,6)."\""}',
'electricityConsumed_EnergyDayLast' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,3),0,6)."\""}',
'electricityConsumed_EnergyDay' => '{"style=\"color:#".substr(Color::pahColor(0,15,20,$VALUE,0),0,6)."\""}',
'electricityConsumed_EnergyCostDay' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',
'electricityConsumed_EnergyCostDayLast' => '{"style=\"color:#".substr(Color::pahColor(0,2,5,$VALUE,0),0,6)."\""}',
'electricityConsumed_EnergyCostMonth' => '{"style=\"color:#".substr(Color::pahColor(0,15,30,$VALUE,0),0,6)."\""}',
'electricityConsumed_EnergyCostMeter' => '{"style=\"color:#".substr(Color::pahColor(0,90,150,$VALUE,0),0,6)."\""}',
'electricityConsumed_FinanceReserve' => '{"style=\"color:#".substr(Color::pahColor(0,200,400,$VALUE,0),0,6)."\""}'
}


Die Codezeilen einfach in Fhem bei ValueFormat bzw. ValueStyle direkt im Gui eingeben, nicht in die fhem.cfg kopieren, hier fehlen dann die Zeilenumbrüche.

Vielleicht kann es wer brauchen, die Schwellwerte ($starttemp,$midtemp,$endtemp) kann sich ja jeder selbst auf seine persönlichen Bedürfnisse einstellen.

LG
Reinhart
FHEM auf Raspy4 mit Bullseye + SSD, Homematic, ESP8266, ESP32, Sonoff, eBus, NanoCUL, MapleCUL, , MQTT2, Alexa

Mellowback

Hallo Reinhart,

leider finde ich deine readings (:electricityConsumed,electricityPower,.....) nicht in meiner "myElectricityCalculator1" .
Dadurch funktioniert scheinbar auch nicht meine Anzeige.
Im Anhang findest du ein Foto meiner Readings.
Wie bekomme ich die von dir beschriebene readings in "myElectricityCalculator1"?

Vorab Danke für die Hilfe

Grüße
André