Ich möchte bei meinem Batteriewechselrichter eine kleine Unzulänglichkeit ausgleichen.
Im Reading InverterGenerationTotalIn erhalte ich die erzeugte Gesamtenergie, aber nur mit ganzen kWh.
Im Reading InverterGenerationToday gibt es die Tagesproduktion, mit 0,1kWh.
Daher kopiere ich mir mit DOIF um kurz nach Mitternacht den Wert InverterGenerationTotalIn in die Hilfsvariable InverterGenerationTotalHelp.
Auf diesen Hilfswert addiere ich dann per Userreading die Tagesleistung. Das ergibt dann InverterGenerationToday
Prinzipiell funktioniert das auch. Ich habe auf InverterGenerationToday das statistics Modul laufen. Da habe ich aber nach dem umkopieren des Wertes manchmal einen Sprung drin. Daher bererechnet statistics die Produktionsleistung falsch.
Zeit InverterGenerationTotal InverterGenerationToday
09.02.2023 00:08 3669 0,00
08.02.2023 23:58 3651 0,00
08.02.2023 23:57 3669,2 18,20
08.02.2023 23:57 3669,2 18,20
Daher wollte ich das Reading umstellen von reiner Addition auf "kopiere den neuen Wert nur, wenn er größer oder gleich der alte Wert ist"
Allerdings werden jetzt keine neuen Werte ausgegeben, obwohl InverterGenerationToday zyklisch neue Werte bekommt. Wenn ich manuell $name durch den Namen meines Gerätes ersetze, und alles zwischen {} in die Befehltszeile kopiere erhalte ich den korrekten Wert.
InverterGenerationTotal:InverterGenerationToday.* , {my $var=ReadingsNum($name,"InverterGenerationTotalHelp",0)+ReadingsNum($name,"InverterGenerationToday",0);; $var>=ReadingsNum($name,"InverterGenerationTotal",0)?$var:ReadingsNum($name,"InverterGenerationTotal",0)},
Eine Fehlermeldung gibt es nicht im Reading, aber auch keine neuen Events
Wo liegt mein Fehler?
List vom Device
define BatterieWR ModbusAttr 1 passive
attr BatterieWR DbLogExclude .*
attr BatterieWR DbLogInclude (DCPower|stat.*|ErzeugungLastMonth|InverterGenerationTotalHelp|InverterGenerationTotal|InverterGenerationTotalIn|InverterGenerationToday|InverterTemperature|BatteryCapacity)
attr BatterieWR comment 33149 BatteryPower kann nicht gelesen werden, also wird es aus Spannung, Strom und Richtung berechnet.\
Es wird öfter umständlich das Vorzeichen berechnet, da es nicht bei allen Parametern mitgeliefert wird
attr BatterieWR dev-i-defPoll 0
attr BatterieWR dev-i-defShowGet 1
attr BatterieWR dev-timing-commDelay 0.4
attr BatterieWR enableControlSet 1
attr BatterieWR group Wechselrichter
attr BatterieWR obj-i33029-len 2
attr BatterieWR obj-i33029-poll 1
attr BatterieWR obj-i33029-reading InverterGenerationTotalIn
attr BatterieWR obj-i33029-unpack N
attr BatterieWR obj-i33035-expr $val*0.1
attr BatterieWR obj-i33035-len 1
attr BatterieWR obj-i33035-poll 1
attr BatterieWR obj-i33035-reading InverterGenerationToday
attr BatterieWR obj-i33057-expr $val/1000
attr BatterieWR obj-i33057-len 2
attr BatterieWR obj-i33057-poll 1
attr BatterieWR obj-i33057-reading DCPower
attr BatterieWR obj-i33057-unpack N
attr BatterieWR obj-i33093-expr $val*0.1
attr BatterieWR obj-i33093-len 1
attr BatterieWR obj-i33093-reading InverterTemperature
attr BatterieWR obj-i33095-len 1
attr BatterieWR obj-i33095-map 0:Waiting,1:OpenRun,2:Softrun,3:Generating,4100:OffGrid
attr BatterieWR obj-i33095-poll 1
attr BatterieWR obj-i33095-reading Status
attr BatterieWR obj-i33133-expr $val*0.1
attr BatterieWR obj-i33133-len 1
attr BatterieWR obj-i33133-reading BatteryVoltage
attr BatterieWR obj-i33134-expr $val*0.1
attr BatterieWR obj-i33134-len 1
attr BatterieWR obj-i33134-reading BatteryCurrent
attr BatterieWR obj-i33135-len 1
attr BatterieWR obj-i33135-poll 1
attr BatterieWR obj-i33135-reading BatteryCurrentDirection
attr BatterieWR obj-i33135-showGet 1
attr BatterieWR obj-i33139-len 1
attr BatterieWR obj-i33139-poll 1
attr BatterieWR obj-i33139-reading BatteryCapacity
attr BatterieWR obj-i33141-expr $val*0.01
attr BatterieWR obj-i33141-len 1
attr BatterieWR obj-i33141-poll 1
attr BatterieWR obj-i33141-reading BatteryVoltageBMS
attr BatterieWR obj-i33141-unpack n
attr BatterieWR obj-i33142-expr $val*0.1
attr BatterieWR obj-i33142-len 1
attr BatterieWR obj-i33142-poll 1
attr BatterieWR obj-i33142-reading BatteryCurrentBMS
attr BatterieWR obj-i33142-unpack s>
attr BatterieWR obj-i33161-len 2
attr BatterieWR obj-i33161-poll 1
attr BatterieWR obj-i33161-reading BatteryChargeTotalIn
attr BatterieWR obj-i33161-unpack N
attr BatterieWR obj-i33163-expr $val*0.1
attr BatterieWR obj-i33163-len 1
attr BatterieWR obj-i33163-poll 1
attr BatterieWR obj-i33163-reading BatteryChargeToday
attr BatterieWR obj-i33165-len 2
attr BatterieWR obj-i33165-poll 1
attr BatterieWR obj-i33165-reading BatteryDischargeTotalIn
attr BatterieWR obj-i33165-unpack N
attr BatterieWR obj-i33167-expr $val*0.1
attr BatterieWR obj-i33167-len 1
attr BatterieWR obj-i33167-poll 1
attr BatterieWR obj-i33167-reading BatteryDischargeToday
attr BatterieWR obj-i33251-expr $val*0.1
attr BatterieWR obj-i33251-len 1
attr BatterieWR obj-i33251-reading MeterVoltageA
attr BatterieWR obj-i33252-expr $val*0.01
attr BatterieWR obj-i33252-len 1
attr BatterieWR obj-i33252-reading MeterCurrentAin
attr BatterieWR obj-i33253-expr $val*0.1
attr BatterieWR obj-i33253-len 1
attr BatterieWR obj-i33253-reading MeterVoltageB
attr BatterieWR obj-i33254-expr $val*0.01
attr BatterieWR obj-i33254-len 1
attr BatterieWR obj-i33254-reading MeterCurrentBin
attr BatterieWR obj-i33255-expr $val*0.1
attr BatterieWR obj-i33255-len 1
attr BatterieWR obj-i33255-reading MeterVoltageC
attr BatterieWR obj-i33256-expr $val*0.01
attr BatterieWR obj-i33256-len 1
attr BatterieWR obj-i33256-reading MeterCurrentCin
attr BatterieWR obj-i33257-expr $val*0.001
attr BatterieWR obj-i33257-len 2
attr BatterieWR obj-i33257-reading MeterActivePowerA
attr BatterieWR obj-i33257-unpack l>
attr BatterieWR obj-i33259-expr $val*0.001
attr BatterieWR obj-i33259-len 2
attr BatterieWR obj-i33259-reading MeterActivePowerB
attr BatterieWR obj-i33259-unpack l>
attr BatterieWR obj-i33261-expr $val*0.001
attr BatterieWR obj-i33261-len 2
attr BatterieWR obj-i33261-reading MeterActivePowerC
attr BatterieWR obj-i33261-unpack l>
attr BatterieWR room Technik_PV
attr BatterieWR stateFormat DCPower kW Erzeugung InverterGenerationToday kWh heute BatteryCapacity% Batterie BatteryPower BatteryPowerBMS kW Batterieleistung Status
attr BatterieWR userReadings ForecastAktMonth:statInverterGenerationTotal.* {calcmonthusageSplit($name,"statInverterGenerationTotal",5)},\
BatteryPower:BatteryCurrentDirection.* {sprintf("%.3f",ReadingsNum($name,"BatteryVoltage",0)*ReadingsNum($name,"BatteryCurrent",0)*(ReadingsNum($name,"BatteryCurrentDirection",0)<=0?1:-1)/1000)},\
BatteryPowerBMS:BatteryCurrentBMS.* {sprintf("%.3f",ReadingsNum($name,"BatteryVoltageBMS",0)*ReadingsNum($name,"BatteryCurrentBMS",0)*(ReadingsNum($name,"BatteryCurrentDirection",0)<=0?1:-1)/1000)},\
InverterGenerationTotal:InverterGenerationToday.* , {my $var=ReadingsNum($name,"InverterGenerationTotalHelp",0)+ReadingsNum($name,"InverterGenerationToday",0);;;;return ( $var>=ReadingsNum($name,"InverterGenerationTotal",0)?$var:ReadingsNum($name,"InverterGenerationTotal",0))},\
BatteryChargeTotal:BatteryChargeToday.* {my $var=ReadingsNum($name,"BatteryChargeTotalHelp",0)+ReadingsNum($name,"BatteryChargeTotalToday",0);;;; $var>=ReadingsNum($name,"BatteryChargeTotal",0)?$var:ReadingsNum($name,"BatteryChargeTotal",0)},\
BatteryDischargeTotal:BatteryDischargeToday.* {my $var=ReadingsNum($name,"BatteryDischargeTotalHelp",0)+ReadingsNum($name,"BatteryDischargeTotalToday",0);;;;$var=1;;;; $var>=ReadingsNum($name,"BatteryDischargeTotal",0)?$var:ReadingsNum($name,"BatteryDischargeTotal",0)},\
MeterCurrentA:MeterActivePowerA.* {ReadingsNum($name,"MeterCurrentAin",0)*(ReadingsNum($name,"MeterActivePowerA",0)>0?1:-1)},\
MeterCurrentB:MeterActivePowerB.* {ReadingsNum($name,"MeterCurrentBin",0)*(ReadingsNum($name,"MeterActivePowerB",0)>0?1:-1)},\
MeterCurrentC:MeterActivePowerC.* {ReadingsNum($name,"MeterCurrentCin",0)*(ReadingsNum($name,"MeterActivePowerC",0)>0?1:-1)}\
# DEF 1 passive
# FUUID 6287ae83-f33f-ae17-6df4-762760f54d114cca
# IODev ModbusLine
# MODBUSID 1
# MODE passive
# MODULEVERSION Modbus 4.4.14 - 30.1.2023
# NAME BatterieWR
# NOTIFYDEV global
# NR 407
# NTFY_ORDER 50-BatterieWR
# PROTOCOL RTU
# STATE 0.17 kW Erzeugung 0 kWh heute 15% Batterie -0.260 -0.029 kW Batterieleistung Generating
# TYPE ModbusAttr
# eventCount 29614
# Helper:
# DBLOG:
# BatteryCapacity:
# logdb:
# TIME 1676099940.73665
# VALUE 15
# DCPower:
# logdb:
# TIME 1676099938.86767
# VALUE 0.17
# InverterGenerationToday:
# logdb:
# TIME 1676099938.16228
# VALUE 0
# InverterGenerationTotal:
# logdb:
# TIME 1676039867.3377
# VALUE 3695.9
# InverterGenerationTotalHelp:
# logdb:
# TIME 1676070420.02223
# VALUE 3696
# InverterGenerationTotalIn:
# logdb:
# TIME 1676099938.16228
# VALUE 3696
# InverterTemperature:
# logdb:
# TIME 1676099939.48602
# VALUE 25.9
# statBatteryChargeTotal:
# logdb:
# TIME 1676099941.76681
# VALUE Hour: 0.0 Day: 0.0 Month: 44.5 Year: 100.4
# statBatteryChargeTotalLast:
# logdb:
# TIME 1676098795.0214
# VALUE Hour: 0.0 Day: 14.5 Month: 55.9 Year: 972.1 (since: 2022-05-22 )
# statBatteryDischargeTotal:
# logdb:
# TIME 1676099941.76681
# VALUE Hour: 0.0 Day: 0.0 Month: 45.7 Year: 140.1
# statBatteryDischargeTotalLast:
# logdb:
# TIME 1676098795.0214
# VALUE Hour: 0.0 Day: 11.7 Month: 94.4 Year: 1296.6 (since: 2022-05-22 )
# statInverterGenerationTotal:
# logdb:
# TIME 1676099941.76681
# VALUE Hour: 0.0 Day: 0.0 Month: 82.9 Year: 161.4
# statInverterGenerationTotalLast:
# logdb:
# TIME 1676098795.0214
# VALUE Hour: 0.0 Day: 26.9 Month: 78.5 Year: 3475.4 (since: 2022-05-22 )
# READINGS:
# 2023-02-11 08:19:00 BatteryCapacity 15
# 2023-02-11 08:19:01 BatteryChargeToday 0
# 2023-02-10 15:37:50 BatteryChargeTotal 1080.5
# 2023-02-11 00:07:00 BatteryChargeTotalHelp 1081
# 2023-02-11 08:19:01 BatteryChargeTotalIn 1081
# 2023-02-11 08:19:00 BatteryCurrent 5.3
# 2023-02-11 08:19:00 BatteryCurrentBMS 0.6
# 2023-02-11 08:19:00 BatteryCurrentDirection 1
# 2023-02-11 08:19:01 BatteryDischargeToday 1.9
# 2023-02-10 15:37:50 BatteryDischargeTotal 1453.7
# 2023-02-11 00:07:00 BatteryDischargeTotalHelp 1459
# 2023-02-11 08:19:01 BatteryDischargeTotalIn 1461
# 2023-02-11 08:19:00 BatteryPower -0.260
# 2023-02-11 08:19:00 BatteryPowerBMS -0.029
# 2023-02-11 08:19:00 BatteryVoltage 49.1
# 2023-02-11 08:19:00 BatteryVoltageBMS 48.67
# 2023-02-11 08:18:58 DCPower 0.17
# 2023-02-11 08:19:01 ForecastAktMonth 205
# 2023-02-11 08:18:58 InverterGenerationToday 0
# 2023-02-10 15:37:47 InverterGenerationTotal 3695.9
# 2023-02-11 00:07:00 InverterGenerationTotalHelp 3696
# 2023-02-11 08:18:58 InverterGenerationTotalIn 3696
# 2023-02-11 08:18:59 InverterTemperature 25.9
# 2023-02-11 08:19:01 MeterActivePowerA 0
# 2023-02-11 08:19:01 MeterActivePowerB 0.124
# 2023-02-11 08:19:01 MeterActivePowerC -2.659
# 2023-02-10 15:37:50 MeterCurrentA 0.58
# 2023-02-11 08:19:01 MeterCurrentAin 0.59
# 2023-02-10 15:37:50 MeterCurrentB -0.22
# 2023-02-11 08:19:01 MeterCurrentBin 0.69
# 2023-02-10 15:37:50 MeterCurrentC -0.31
# 2023-02-11 08:19:01 MeterCurrentCin 11.15
# 2023-02-11 08:19:01 MeterVoltageA 238.2
# 2023-02-11 08:19:01 MeterVoltageB 237.6
# 2023-02-11 08:19:01 MeterVoltageC 238.3
# 2023-02-11 08:18:59 Status Generating
# 2023-02-11 08:19:01 statBatteryChargeTotal Hour: 0.0 Day: 0.0 Month: 44.5 Year: 100.4
# 2023-02-11 07:59:55 statBatteryChargeTotalLast Hour: 0.0 Day: 14.5 Month: 55.9 Year: 972.1 (since: 2022-05-22 )
# 2023-02-11 08:19:01 statBatteryDischargeTotal Hour: 0.0 Day: 0.0 Month: 45.7 Year: 140.1
# 2023-02-11 07:59:55 statBatteryDischargeTotalLast Hour: 0.0 Day: 11.7 Month: 94.4 Year: 1296.6 (since: 2022-05-22 )
# 2023-02-11 08:19:01 statInverterGenerationTotal Hour: 0.0 Day: 0.0 Month: 82.9 Year: 161.4
# 2023-02-11 07:59:55 statInverterGenerationTotalLast Hour: 0.0 Day: 26.9 Month: 78.5 Year: 3475.4 (since: 2022-05-22 )
# 2023-02-08 08:48:53 state opened
# REMEMBER:
# lrecv 1676099954.75585
# gotReadings:
# helper:
# _98_statistics STATISTICS_STROMVERBRAUCH
# lastRead:
# i33029 1676099938.14678
# i33035 1676099938.14757
# i33057 1676099938.83637
# i33093 1676099939.46737
# i33095 1676099939.4681
# i33133 1676099940.7099
# i33134 1676099940.71074
# i33135 1676099940.71134
# i33139 1676099940.71193
# i33141 1676099940.71278
# i33142 1676099940.7136
# i33161 1676099941.30006
# i33163 1676099941.30105
# i33165 1676099941.30165
# i33167 1676099941.30245
# i33251 1676099941.7393
# i33252 1676099941.74001
# i33253 1676099941.74075
# i33254 1676099941.74144
# i33255 1676099941.74212
# i33256 1676099941.74284
# i33257 1676099941.74351
# i33259 1676099941.74419
# i33261 1676099941.745
#
setstate BatterieWR 0.17 kW Erzeugung 0 kWh heute 15% Batterie -0.260 -0.029 kW Batterieleistung Generating
setstate BatterieWR 2023-02-11 08:19:00 BatteryCapacity 15
setstate BatterieWR 2023-02-11 08:19:01 BatteryChargeToday 0
setstate BatterieWR 2023-02-10 15:37:50 BatteryChargeTotal 1080.5
setstate BatterieWR 2023-02-11 00:07:00 BatteryChargeTotalHelp 1081
setstate BatterieWR 2023-02-11 08:19:01 BatteryChargeTotalIn 1081
setstate BatterieWR 2023-02-11 08:19:00 BatteryCurrent 5.3
setstate BatterieWR 2023-02-11 08:19:00 BatteryCurrentBMS 0.6
setstate BatterieWR 2023-02-11 08:19:00 BatteryCurrentDirection 1
setstate BatterieWR 2023-02-11 08:19:01 BatteryDischargeToday 1.9
setstate BatterieWR 2023-02-10 15:37:50 BatteryDischargeTotal 1453.7
setstate BatterieWR 2023-02-11 00:07:00 BatteryDischargeTotalHelp 1459
setstate BatterieWR 2023-02-11 08:19:01 BatteryDischargeTotalIn 1461
setstate BatterieWR 2023-02-11 08:19:00 BatteryPower -0.260
setstate BatterieWR 2023-02-11 08:19:00 BatteryPowerBMS -0.029
setstate BatterieWR 2023-02-11 08:19:00 BatteryVoltage 49.1
setstate BatterieWR 2023-02-11 08:19:00 BatteryVoltageBMS 48.67
setstate BatterieWR 2023-02-11 08:18:58 DCPower 0.17
setstate BatterieWR 2023-02-11 08:19:01 ForecastAktMonth 205
setstate BatterieWR 2023-02-11 08:18:58 InverterGenerationToday 0
setstate BatterieWR 2023-02-10 15:37:47 InverterGenerationTotal 3695.9
setstate BatterieWR 2023-02-11 00:07:00 InverterGenerationTotalHelp 3696
setstate BatterieWR 2023-02-11 08:18:58 InverterGenerationTotalIn 3696
setstate BatterieWR 2023-02-11 08:18:59 InverterTemperature 25.9
setstate BatterieWR 2023-02-11 08:19:01 MeterActivePowerA 0
setstate BatterieWR 2023-02-11 08:19:01 MeterActivePowerB 0.124
setstate BatterieWR 2023-02-11 08:19:01 MeterActivePowerC -2.659
setstate BatterieWR 2023-02-10 15:37:50 MeterCurrentA 0.58
setstate BatterieWR 2023-02-11 08:19:01 MeterCurrentAin 0.59
setstate BatterieWR 2023-02-10 15:37:50 MeterCurrentB -0.22
setstate BatterieWR 2023-02-11 08:19:01 MeterCurrentBin 0.69
setstate BatterieWR 2023-02-10 15:37:50 MeterCurrentC -0.31
setstate BatterieWR 2023-02-11 08:19:01 MeterCurrentCin 11.15
setstate BatterieWR 2023-02-11 08:19:01 MeterVoltageA 238.2
setstate BatterieWR 2023-02-11 08:19:01 MeterVoltageB 237.6
setstate BatterieWR 2023-02-11 08:19:01 MeterVoltageC 238.3
setstate BatterieWR 2023-02-11 08:18:59 Status Generating
setstate BatterieWR 2023-02-11 08:19:01 statBatteryChargeTotal Hour: 0.0 Day: 0.0 Month: 44.5 Year: 100.4
setstate BatterieWR 2023-02-11 07:59:55 statBatteryChargeTotalLast Hour: 0.0 Day: 14.5 Month: 55.9 Year: 972.1 (since: 2022-05-22 )
setstate BatterieWR 2023-02-11 08:19:01 statBatteryDischargeTotal Hour: 0.0 Day: 0.0 Month: 45.7 Year: 140.1
setstate BatterieWR 2023-02-11 07:59:55 statBatteryDischargeTotalLast Hour: 0.0 Day: 11.7 Month: 94.4 Year: 1296.6 (since: 2022-05-22 )
setstate BatterieWR 2023-02-11 08:19:01 statInverterGenerationTotal Hour: 0.0 Day: 0.0 Month: 82.9 Year: 161.4
setstate BatterieWR 2023-02-11 07:59:55 statInverterGenerationTotalLast Hour: 0.0 Day: 26.9 Month: 78.5 Year: 3475.4 (since: 2022-05-22 )
setstate BatterieWR 2023-02-08 08:48:53 state opened
Bei den aktuellen Werten müsste InverterGenerationTotal 3696 sein und nicht 3695,9
*** userReadings
Das Komma vor der öffnenden, geschweiften Klammer macht (vermutlich) keinen Sinn.
Wenn es nur ein Ausschnitt ist, dann hat das Komma hinter der schließenden, geschweiften Klammer eine Berechtigung - ansonsten nicht.
aaaaahhhh tausend Dank.
das gemeine ist dass alle Userreadings vor dem Kommafehler brav geschrieben wurden. Die dahinter nicht mehr.
Daher ist mir nicht aufgefallen dass ich da (warum auch immer) ein Komma vor der geschweiften Klammer habe. Das nach der Klammer macht Sinn, da es nur eine Ausschnittskopie war.