Neueste Beiträge

#91
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Wolle02 - 20 Juni 2025, 07:49:25
Zitat von: DS_Starter am 14 Juni 2025, 23:04:37Der User kann mit dem Schlüssel pinmax die maximal mögliche Ladeleistung in Watt festlegen. mit welcher die Batterie geladen werden kann. Dieser Wert wird durch die SoC-Prognose auch beachtet.
Der User kann diesen Schlüssel dynamisch setzen mit:

set ... attrKeyVal setupBatteryDevXX pinmax=<Wert>

Ich habe hier ein kleines Skript, das mir die Ladeleistung der Batterie dynamisch anpasst. Hierzu wird mittels set .... attrKeyVal den pinmax Wert dynamisch angepasst. Aktuell steht er z.B. auf 505 Watt.

PV_Batterie
cap=10240
charge=BatteryChargePercent
intotal=Summe_Ladung:Wh
outtotal=Summe_Entladung:Wh
pin=BatteryChargeWatt:W
pinmax=505
pout=BatteryDischargeWatt:W
show=2


Trotzdem wird die Batterie munter weiter mit der maximal möglichen Ladeleistung befüllt.
Wo hab ich hier den Fehler?
#92
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Parallix - 20 Juni 2025, 07:47:28
Zitat von: DS_Starter am 19 Juni 2025, 21:15:56@Parallix,

ich möchte nochmal nachfragen bzgl. dieser Anforderung:

ZitatEins (Battery_ChargingHoursRemain_XX), das angibt, wie viele Stunden ein BAT-System voraussichtlich (auf Basis einer minimal geforderten Ladeleistung Battery_MinimalTerminationPower_XX) geladen werden kann, die oberhalb der Differenz zwischen prognostiziertem solarem Ertrag und dem prognostiziertem Verbrauch liegt.
Wenn ich dich richtig verstehe soll das System ermitteln, wieviele (Rest-)Stunden am aktuellen Tag einen PV-Überschuß (in Wh) prognostizieren, der höher ist als eine noch irgendwie anzugebende Minimalleistung, d.h. Minimal-Ladeenergie (Wh) wenn wir die Minimalleistung auf eine Stunde beziehen.

Habe ich das so richtig wiedergegeben?

LG,
Heiko

 

Hallo Heiko!

Ja, Du hast mich richtig verstanden. Was die letztgenannte Minimalleistung angeht, so ist diese natürlich nicht auf eine Stunde bezogen, sondern sollte in der zu betrachtenden Stunde möglichst nicht unterschritten werden.

Hintergründe:
  • Das Laden eines Akkus mit möglichst gleichbleibender und geringer Leistung wirkt sich positiv auf dessen Gesundheit aus, was u.a. auch daran liegt, dass der Temperaturstress im Akku bei langsamer Energiezuführung nur gering ist.
  • Ein geringer Ladestrom führt zu einem geringen Absacken der Akkuspannung beim (ggf, temporären) Abschalten des Ladestroms, was sich positiv auf die SOC-Schätzung auswirkt.
  • Ein geringer Ladestrom führt, insb. bei Nutzung passiver Balancer (sind in den Akku-Systemen üblicherweise verbaut), zu einer geringen Differenz zwischen den einzelnen Zellspannungen und damit zu einer besseren Kapazitätsausnutzung eins Akkus.
  • Ein geringer Ladestrom kann zu  zu einem zeitlich punktgenauen Zielfüllstand (im Winter 100%, ansonsten natürlich weniger) am Ende des Tages führen.
  • Eine geringer Ladestrom führt auch zu geringen Leitungsverlusten, da der Strom quadratisch zu den Leitungsverlusten beiträgt.

Übrigens:
Die häufig zu findende Empfehlung, Akkus nicht zu lange bei einem SOC von 100% verweilen zu lassen, liegt weniger an dem SOC als solchem, sondern daran, dass SOC=100% üblicherweise dadurch ermittelt wird, dass eine Zelle im Akku einen Spannungsschwellwert überschreitet, der – würde dieser Schwellwert zeitlich länger überschritten sein – zu einer Schädigung des Akkus führen würde. Schädlich sind also insb. häufige Nachladevorgänge bei Werten um die 100%, da Zellen dann ja häufiger und damit - integral gesehen - auch länger den o.g. Schwellwert überschreiten.

Einige Akku-Hersteller, z.B. BYD, haben auf o.g, Grund in der (neueren) Firmware Ihrer Systeme einen SOC-Threshold (bei BYD liegt dieser bei 95%) eingebaut, der nach einem SOC von 100% unterschritten  werden muss, bevor überhaupt eine weitere Ladung erfolgen kann. Insb. in der dunklen Jahreszeit kann es daher sinnvoll sein, den Akku unter Verwendung von PV-Leistung so zu füllen, dass dieser möglichst nur einmal vor Einbruch der Dunkelheit SOC=100% erreicht. Hierbei sollte darauf geachtet werden, dass der Ladeschlussstrom des jeweiligen Systems nicht unterschritten wird.

Nun hoffe ich, dass meine Erläuterungen nicht zu sehr Off-Topic waren, meinen Feature-Request aber hinreichend motiviert haben und auch einige von Gerd aufgeworfene Aspekte beleuchtet haben.
#93
Anfängerfragen / Aw: Aus-STATE ohne Symbol
Letzter Beitrag von Torxgewinde - 20 Juni 2025, 07:41:35
Was auch geht und ggf. besser verständlich ist, ist es das Icon mit Perl zu setzen. Es durchläuft dann nicht mehr den Codezweig zum Ersetzen mit einem Icon, sondern bleibt einfach so.

defmod testDummy dummy
attr testDummy devStateIcon { ReadingsVal($name, 'state', '???');; }

Es wird also Perl ausgeführt um das Icon zu ermitteln, der PerlCode in den geschweiften Klammern liest das eigene Reading 'state' und gibt den Wert unverändert zurück.
#94
Anfängerfragen / DOIF PERL Verzweiflung...
Letzter Beitrag von Docter - 20 Juni 2025, 06:49:14
dummen Fehler selbst gefunden... 3h und den Baum vorm Wald nicht gesehen, sorry für den Post
#95
Anfängerfragen / Aw: Modbus polldelay
Letzter Beitrag von bekeanloinse56 - 20 Juni 2025, 04:49:46
Zitat von: lufi am 16 Juni 2025, 11:34:412025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash full object list: h0000 h1006 h1007 h1037 h1044 h3 h4 h608 h88 i1 i1000 i1001 i1002 i1003 i1004 i1005 i1006 i1007 i1009 i1011 i1013 i1014 i1021 i1029 i1037 i1067 i1068 i1070 i1080 i3 i35 i37 i38 i4 i40 i5 i7 i8 i9 i93
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request h0000 len 1 powerState
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip MaxOutpurActivePower, delay not over (delay 900, 435.079109191895 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip MaxOutpurReactivePower, delay not over (delay 900, 435.077836036682 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip LoadFirstDischargeSoc, delay not over (delay 900, 434.040870189667 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1 len 2 PVPower
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i3 len 1 PV1Voltage
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i4 len 1 PV1Current
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i5 len 2 PV1Power
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i7 len 1 PV2Voltage
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i8 len 1 PV2Current
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i9 len 2 PV2Power
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i35 len 2 GridOutputPower
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip GridFrequency, delay not over (delay 300, 44.8331770896912 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip GridVoltage1, delay not over (delay 300, 44.8319990634918 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i40 len 2 GridOutputWatt1
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i93 len 1 InverterTemperature
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip InverterMode, delay not over (delay 300, 88.7200181484222 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault0, delay not over (delay 900, 88.718061208725 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault1, delay not over (delay 900, 88.7158460617065 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault2, delay not over (delay 900, 88.7138121128082 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault3, delay not over (delay 900, 88.7121071815491 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault4, delay not over (delay 900, 88.710862159729 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault5, delay not over (delay 900, 88.7094600200653 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SystemFault6, delay not over (delay 900, 88.708202123642 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1009 len 2 BatteryDischargePower
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1011 len 2 BatteryChargePower
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip BatteryVoltage, delay not over (delay 60, 43.7515091896057 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SOC, delay not over (delay 300, 43.7511610984802 passed)
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1021 len 2 ACToUserTotal
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1029 len 2 ACToGridTotal
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1037 len 2 LocalLoadTotal
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1067 len 1 UPSFrequency
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1068 len 1 UPSVoltage
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1070 len 2 UPSOutputWatt
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will request i1080 len 1 UPSLoad
2025.06.16 11:33:37 4: GrowattSPH: CombineUpdateHash objHash keys before combine: i1,i1011,i40,i35,i3,i8,i93,i5,i1067,i1068,i1029,i1070,i9,h0000,i1080,i1009,i1021,i4,i1037,i7
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash tries to combine read commands
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash cant combine h0000 len 1 powerState with i1 len 2 PVPower, different function codes
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i3 len 1 PV1Voltage to span 3, drop read for i3
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i4 len 1 PV1Current to span 4, drop read for i4
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i5 len 2 PV1Power to span 6, drop read for i5
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i7 len 1 PV2Voltage to span 7, drop read for i7
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i8 len 1 PV2Current to span 8, drop read for i8
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i9 len 2 PV2Power to span 10, drop read for i9
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i35 len 2 GridOutputPower to span 36, drop read for i35
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i40 len 2 GridOutputWatt1 to span 41, drop read for i40
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1 len 2 PVPower with i93 len 1 InverterTemperature to span 93, drop read for i93
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash cant combine i1 len 2 PVPower with i1009 len 2 BatteryDischargePower, span 1010 would be bigger than max 100
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1011 len 2 BatteryChargePower to span 4, drop read for i1011
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1021 len 2 ACToUserTotal to span 14, drop read for i1021
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1029 len 2 ACToGridTotal to span 22, drop read for i1029
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1037 len 2 LocalLoadTotal to span 30, drop read for i1037
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1067 len 1 UPSFrequency to span 59, drop read for i1067
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1068 len 1 UPSVoltage to span 60, drop read for i1068
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1070 len 2 UPSOutputWatt to span 63, drop read for i1070
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash combine i1009 len 2 BatteryDischargePower with i1080 len 1 UPSLoad to span 72, drop read for i1080
2025.06.16 11:33:37 5: GrowattSPH: CombineUpdateHash keys are now i1,h0000,i1009
2025.06.16 11:33:37 4: GrowattSPH: GetUpdate will now create requests for h0000 len 1 (powerState), i1 len 93 (combined i1 len 2 PVPower with i3 len 1 PV1Voltage and i4 len 1 PV1Current and i5 len 2 PV1Power and i7 len 1 PV2Voltage and i8 len 1 PV2Current and i9 len 2 PV2Power and i35 len 2 GridOutputPower and i40 len 2 GridOutputWatt1 and i93 len 1 InverterTemperature), i1009 len 72 (combined i1009 len 2 BatteryDischargePower with i1011 len 2 BatteryChargePower and i1021 len 2 ACToUserTotal and i1029 len 2 ACToGridTotal and i1037 len 2 LocalLoadTotal and i1067 len 1 UPSFrequency and i1068 len 1 UPSVoltage and i1070 len 2 UPSOutputWatt and i1080 len 1 UPSLoad)
2025.06.16 11:33:37 4: GrowattSPH: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 3 h0000, len 1, master device GrowattSPH, reading powerState (getUpdate for powerState len 1)
2025.06.16 11:33:37 4: GrowattSPH: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i1, len 93, master device GrowattSPH, reading PVPower (getUpdate for combined i1 len 2 PVPower with i3 len 1 PV1Voltage and i4 len 1 PV1Current and i5 len 2 PV1Power and i7 len 1 PV2Voltage and i8 len 1 PV2Current and i9 len 2 PV2Power and i35 len 2 GridOutputPower and i40 len 2 GridOutputWatt1 and i93 len 1 InverterTemperature)
2025.06.16 11:33:37 4: GrowattSPH: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i1009, len 72, master device GrowattSPH, reading BatteryDischargePower (getUpdate for combined i1009 len 2 BatteryDischargePower with i1011 len 2 BatteryChargePower and i1021 len 2 ACToUserTotal and i1029 len 2 ACToGridTotal and i1037 len 2 LocalLoadTotal and i1067 len 1 UPSFrequency and i1068 len 1 UPSVoltage and i1070 len 2 UPSOutputWatt and i1080 len 1 UPSLoad)
2025.06.16 11:33:37 5: GrowattSPH: ParseDataString called from HandleResponse with data hex 0001, type h, adr 0000, op read
2025.06.16 11:33:37 5: GrowattSPH: SplitDataString called from ParseDataString with data hex 0001, type h, adr 0000, valuesLen 1, op read
2025.06.16 11:33:37 5: GrowattSPH: CreateDataObjects called from ParseDataString with objList h0000
2025.06.16 11:33:37 5: GrowattSPH: CreateDataObjects sortedList h0000
2025.06.16 11:33:37 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:37 5: GrowattSPH: CreateDataObjects unpacked 0001 with n to 1
2025.06.16 11:33:37 4: GrowattSPH: CreateDataObjects assigns value 1 to powerState
2025.06.16 11:33:37 5: GrowattSPH: ParseDataString created 1 readings, errcode undef
2025.06.16 11:33:39 5: GrowattSPH: ParseDataString called from HandleResponse with data hex 00008d680a3700240000257b0999006c00006802000142a009b3081708af00fa000000000000000000000000000000000000000000000000000000000000000000000000000064c4138c091600710000650d00000000000000000000000000000000000000000000000000570001db9b0a6250460000000e0000f7c50000005d0000eeda0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e7d201ba, type i, adr 1, op read
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString called from ParseDataString with data hex 00008d680a3700240000257b0999006c00006802000142a009b3081708af00fa000000000000000000000000000000000000000000000000000000000000000000000000000064c4138c091600710000650d00000000000000000000000000000000000000000000000000570001db9b0a6250460000000e0000f7c50000005d0000eeda0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e7d201ba, type i, adr 1, valuesLen 93, op read
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i11
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i12
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i13
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i14
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i15
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i16
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i17
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i18
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i19
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i20
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i21
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i22
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i23
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i24
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i25
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i26
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i27
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i28
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i29
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i30
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i31
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i32
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i33
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i34
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i39
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i42
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i43
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i44
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i45
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i46
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i47
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i48
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i49
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i50
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i51
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i52
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i53
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i54
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i55
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i56
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i57
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i58
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i59
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i60
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i61
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i62
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i63
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i64
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i65
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i66
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i67
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i68
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i69
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i70
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i71
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i72
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i73
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i74
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i75
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i76
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i77
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i78
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i79
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i80
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i81
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i82
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i83
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i84
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i85
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i86
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i87
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i88
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i89
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i90
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i91
2025.06.16 11:33:39 5: GrowattSPH: SplitDataString has no information about handling i92
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects called from ParseDataString with objList i1,i3,i4,i5,i7,i8,i9,i35,i37,i38,i40,i93
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects sortedList i1,i3,i4,i5,i7,i8,i9,i35,i37,i38,i40,i93
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 00008d68 with I> to 36200
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 3620
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 3620 with format %.1f, result is 3620.0
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 3620.0 to PVPower
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0a37 with n to 2615
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 261.5
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 261.5 with format %.1f, result is 261.5
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 261.5 to PV1Voltage
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0024 with n to 36
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 3.6
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 3.6 with format %.1f, result is 3.6
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 3.6 to PV1Current
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0000257b with I> to 9595
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 959.5
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 959.5 with format %.1f, result is 959.5
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 959.5 to PV1Power
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0999 with n to 2457
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 245.7
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 245.7 with format %.1f, result is 245.7
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 245.7 to PV2Voltage
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 006c with n to 108
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 10.8
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 10.8 with format %.1f, result is 10.8
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 10.8 to PV2Current
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 00006802 with I> to 26626
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 2662.6
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 2662.6 with format %.1f, result is 2662.6
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 2662.6 to PV2Power
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 000064c4 with I> to 25796
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 2579.6
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 2579.6 with format %.1f, result is 2579.6
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 2579.6 to GridOutputPower
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 138c with S> to 5004
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 100 to 50.04
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 50.04 with format %.2f, result is 50.04
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 50.04 to GridFrequency
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0916 with S> to 2326
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 232.6
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 232.6 with format %.1f, result is 232.6
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 232.6 to GridVoltage1
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 0000650d with I> to 25869
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 2586.9
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 2586.9 with format %.1f, result is 2586.9
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 2586.9 to GridOutputWatt1
2025.06.16 11:33:39 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:39 5: GrowattSPH: CreateDataObjects unpacked 01ba with n to 442
2025.06.16 11:33:39 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 44.2
2025.06.16 11:33:39 5: GrowattSPH: FormatVal for CreateDataObjects formats 44.2 with format %.1f, result is 44.2
2025.06.16 11:33:39 4: GrowattSPH: CreateDataObjects assigns value 44.2 to InverterTemperature
2025.06.16 11:33:39 5: GrowattSPH: ParseDataString created 12 readings, errcode undef
2025.06.16 11:33:40 5: GrowattSPH: ParseDataString called from HandleResponse with data hex 00000000000020d00220006200000000000000000000000000000000000033dd0000000000000000000033dd000039080000000000000000000039080000001600050c2f251c000000010000e7140000000500009c610000001900009a470000002600009df20000005b00022eda00000000000000000000000000000000000000000000000000000000000000000000, type i, adr 1009, op read
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString called from ParseDataString with data hex 00000000000020d00220006200000000000000000000000000000000000033dd0000000000000000000033dd000039080000000000000000000039080000001600050c2f251c000000010000e7140000000500009c610000001900009a470000002600009df20000005b00022eda00000000000000000000000000000000000000000000000000000000000000000000, type i, adr 1009, valuesLen 72, op read
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1015
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1016
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1017
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1018
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1019
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1020
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1023
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1024
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1025
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1026
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1027
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1028
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1031
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1032
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1033
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1034
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1035
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1036
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1039
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1040
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1041
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1042
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1043
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1044
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1045
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1046
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1047
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1048
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1049
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1050
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1051
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1052
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1053
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1054
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1055
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1056
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1057
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1058
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1059
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1060
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1061
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1062
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1063
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1064
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1065
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1066
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1069
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1072
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1073
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1074
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1075
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1076
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1077
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1078
2025.06.16 11:33:40 5: GrowattSPH: SplitDataString has no information about handling i1079
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects called from ParseDataString with objList i1009,i1011,i1013,i1014,i1021,i1029,i1037,i1067,i1068,i1070,i1080
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects sortedList i1009,i1011,i1013,i1014,i1021,i1029,i1037,i1067,i1068,i1070,i1080
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 00000000 with I> to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.1f, result is 0.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.0 to BatteryDischargePower
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 000020d0 with I> to 8400
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 840
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 840 with format %.1f, result is 840.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 840.0 to BatteryChargePower
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 0220 with s> to 544
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 54.4
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 54.4 with format %.1f, result is 54.4
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 54.4 to BatteryVoltage
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 0062 with n to 98
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 98 to SOC
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 00000000 with I> to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.1f, result is 0.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.0 to ACToUserTotal
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 000033dd with I> to 13277
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 1327.7
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 1327.7 with format %.1f, result is 1327.7
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 1327.7 to ACToGridTotal
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 00003908 with I> to 14600
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 1460
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 1460 with format %.1f, result is 1460.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 1460.0 to LocalLoadTotal
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 0000 with s> to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 100 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.2f, result is 0.00
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.00 to UPSFrequency
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 0000 with s> to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.1f, result is 0.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.0 to UPSVoltage
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 00000000 with I> to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.1f, result is 0.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.0 to UPSOutputWatt
2025.06.16 11:33:40 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:40 5: GrowattSPH: CreateDataObjects unpacked 0000 with n to 0
2025.06.16 11:33:40 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 0
2025.06.16 11:33:40 5: GrowattSPH: FormatVal for CreateDataObjects formats 0 with format %.1f, result is 0.0
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 0.0 to UPSLoad
2025.06.16 11:33:40 5: GrowattSPH: ParseDataString created 11 readings, errcode undef
2025.06.16 11:33:52 4: GrowattSPH: GetUpdate (V4.5.6 - 7.11.2023) called from Fhem internal timer
2025.06.16 11:33:52 4: GrowattSPH: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 15.0 sec at 11:34:07.790, interval 15
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash full object list: h0000 h1006 h1007 h1037 h1044 h3 h4 h608 h88 i1 i1000 i1001 i1002 i1003 i1004 i1005 i1006 i1007 i1009 i1011 i1013 i1014 i1021 i1029 i1037 i1067 i1068 i1070 i1080 i3 i35 i37 i38 i4 i40 i5 i7 i8 i9 i93
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip powerState, delay not over (delay 60, 14.9380700588226 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip MaxOutpurActivePower, delay not over (delay 900, 450.080752134323 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip MaxOutpurReactivePower, delay not over (delay 900, 450.079478979111 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip LoadFirstDischargeSoc, delay not over (delay 900, 449.042513132095 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will request i1 len 2 PVPower
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV1Voltage, delay not over (delay 30, 13.651134967804 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV1Current, delay not over (delay 30, 13.6499300003052 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV1Power, delay not over (delay 30, 13.648775100708 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV2Voltage, delay not over (delay 30, 13.6477029323578 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV2Current, delay not over (delay 30, 13.6468420028687 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip PV2Power, delay not over (delay 30, 13.6459350585938 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip GridOutputPower, delay not over (delay 30, 13.6450850963593 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip GridFrequency, delay not over (delay 300, 13.6442351341248 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip GridVoltage1, delay not over (delay 300, 13.6431541442871 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip GridOutputWatt1, delay not over (delay 30, 13.6423480510712 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip InverterTemperature, delay not over (delay 120, 13.6415550708771 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip InverterMode, delay not over (delay 300, 103.721661090851 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault0, delay not over (delay 900, 103.719704151154 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault1, delay not over (delay 900, 103.717489004135 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault2, delay not over (delay 900, 103.715455055237 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault3, delay not over (delay 900, 103.713750123978 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault4, delay not over (delay 900, 103.712505102158 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault5, delay not over (delay 900, 103.711102962494 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SystemFault6, delay not over (delay 900, 103.709845066071 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip BatteryDischargePower, delay not over (delay 30, 12.4604771137238 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip BatteryChargePower, delay not over (delay 30, 12.4586250782013 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip BatteryVoltage, delay not over (delay 60, 12.4568181037903 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip SOC, delay not over (delay 300, 12.4555280208588 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip ACToUserTotal, delay not over (delay 30, 12.4535510540009 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip ACToGridTotal, delay not over (delay 30, 12.4517331123352 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip LocalLoadTotal, delay not over (delay 30, 12.4499220848083 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip UPSFrequency, delay not over (delay 60, 12.4487709999084 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip UPSVoltage, delay not over (delay 60, 12.4476130008698 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip UPSOutputWatt, delay not over (delay 60, 12.4464991092682 passed)
2025.06.16 11:33:52 5: GrowattSPH: CreateUpdateHash will skip UPSLoad, delay not over (delay 60, 12.4453690052032 passed)
2025.06.16 11:33:52 4: GrowattSPH: CombineUpdateHash objHash keys before combine: i1
2025.06.16 11:33:52 5: GrowattSPH: CombineUpdateHash tries to combine read commands
2025.06.16 11:33:52 5: GrowattSPH: CombineUpdateHash keys are now i1
2025.06.16 11:33:52 4: GrowattSPH: GetUpdate will now create requests for i1 len 2 (PVPower)
2025.06.16 11:33:52 4: GrowattSPH: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i1, len 2, master device GrowattSPH, reading PVPower (getUpdate for PVPower len 2)
2025.06.16 11:33:52 5: GrowattSPH: ParseDataString called from HandleResponse with data hex 00008d68, type i, adr 1, op read
2025.06.16 11:33:52 5: GrowattSPH: SplitDataString called from ParseDataString with data hex 00008d68, type i, adr 1, valuesLen 2, op read
2025.06.16 11:33:52 5: GrowattSPH: CreateDataObjects called from ParseDataString with objList i1
2025.06.16 11:33:52 5: GrowattSPH: CreateDataObjects sortedList i1
2025.06.16 11:33:52 5: GrowattSPH: CreateParseInfoCache called
2025.06.16 11:33:52 5: GrowattSPH: CreateDataObjects unpacked 00008d68 with I> to 36200
2025.06.16 11:33:52 5: GrowattSPH: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 10 to 3620
2025.06.16 11:33:52 5: GrowattSPH: FormatVal for CreateDataObjects formats 3620 with format %.1f, result is 3620.0
2025.06.16 11:33:52 4: GrowattSPH: CreateDataObjects assigns value 3620.0 to PVPower
2025.06.16 11:33:52 5: GrowattSPH: ParseDataString created 1 readings, errcode undef
subway surfers
Zuerst kommt die info:
2025.06.16 11:33:37 5: GrowattSPH: CreateUpdateHash will skip SOC, delay not over (delay 300, 43.7511610984802 passed)
und kurz danach wird das reading doch aktualisiert:
2025.06.16 11:33:40 4: GrowattSPH: CreateDataObjects assigns value 98 to SOC
In der timing-Sektion: Achte darauf, ob du den PollDelay richtig an der gewünschten Stelle definierst. Möglicherweise greift der globale Delay nicht, wenn im Device selbst ein anderer Wert gesetzt ist.
#96
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von DS_Starter - 19 Juni 2025, 23:59:14
Hallo Gerd,

meine Anlage fahre ich zur Zeit so, dass sie nur ca 2/3 der möglichen Einspeiseleistung einspeisen soll (plantControl->feedinPowerLimit).
Dadurch wird die Batterie in den Zeiten ohne "Ladefreigabe" bzw. "nur Laden wenn Einspeiselimit überschritten" bereits mit wenig Leistung (der evtl. Überschußleistung) geladen und der SoC steigt so langsam an. Mit der Ladefreigabe, die sich nach dem SoC in Beziehung zum erwarteten Restüberschuß des Tages sowie Verbrauchsprognose richtet, wird die Batterie dann mit voller Überschußleistung voll geladen.

So werden die 100% zur Zeit erst recht spät am Tag erreicht und gehen nach kurzer Zeit wieder in den Entladungsmodus.
Im Herbst/Winter wird die "Ladefreigabe" früher oder ohnehin für den ganzen Tag erteilt. Dadurch ist die Batterie eher voll (wenn möglich), aber die Energieausbeute und Einspeisung ohnhin gering(er).

Die Verbraucher kann man priorisiert im Modul planen lassen, indem man über die Schlüssel notbefore in Verbindung mit mintime und den weiteren Möglichkeiten eine Abfolge aufbaut. Man kann auch eine automatische Chain aufbauen, indem über eine kleine Logik in ctrlUserExitFn der Status  planningstate='finished' eines Consumers ausgewertet wird um danach den nächsten zu starten. Es gibt viele Möglichkeiten.

LG,
Heiko

 
#97
Sonstiges / Aw: Wert mit HTTPMOD aus WEB-S...
Letzter Beitrag von passibe - 19 Juni 2025, 23:05:38
Genau, Seiten wie regex101.com sind sehr gut, nicht nur zum erklären, sondern auch zum erstellen von Regexes. ChatGPT kann übrigens auch einigermaßen vernünftig regex erklären/erstellen.
#98
Zigbee / Aw: Ich brauch mal Unterstützu...
Letzter Beitrag von eckhard scholz - 19 Juni 2025, 22:44:31
Danke mw77,

ehrlich gesagt, ist es nicht immer einfach nach solch kleinen Details zu suchen.

Gruß
Eckhard
#99
Zigbee / Aw: Ich brauch mal Unterstützu...
Letzter Beitrag von Beta-User - 19 Juni 2025, 22:17:27
Zitat von: eckhard scholz am 19 Juni 2025, 19:41:14Ja für mich sind Zigbee Devices über Zigbee2MQTT etwas anderes als MQTT Devices.
Und der Befehlsaufbau von Zigbee-Devices sieht schon etwas anders aus als z.B. zu FS20-Devices.
Aber bestimmt hätte ich es auch zu MQTT oder DOIF fragen können.
Aha. Völlig logisch, dass du aus diesem Grund ausschließlich zwei DOIF-defines zeigst...
#100
Solaranlagen / Aw: 76_SolarForecast - Informa...
Letzter Beitrag von Max_Meyer - 19 Juni 2025, 22:10:07
Zitat von: DS_Starter am 19 Juni 2025, 21:15:56ch möchte nochmal nachfragen bzgl. dieser Anforderung:

ZitatEins (Battery_ChargingHoursRemain_XX), das angibt, wie viele Stunden ein BAT-System voraussichtlich (auf Basis einer minimal geforderten Ladeleistung Battery_MinimalTerminationPower_XX) geladen werden kann, die oberhalb der Differenz zwischen prognostiziertem solarem Ertrag und dem prognostiziertem Verbrauch liegt.
Wenn ich dich richtig verstehe soll das System ermitteln, wieviele (Rest-)Stunden am aktuellen Tag einen PV-Überschuß (in Wh) prognostizieren, der höher ist als eine noch irgendwie anzugebende Minimalleistung, d.h. Minimal-Ladeenergie (Wh) wenn wir die Minimalleistung auf eine Stunde beziehen.

Habe ich das so richtig wiedergegeben?
Hallo allerseits,
ich frage mich ob eine einseitige Fokussierung ausschließlich auf netzdienliche Batterieladung im letzten drittel des Tages so sinnvoll ist.
Da ist zum einen die 'Energie-Konkurrenz' zwischen Batterie(n) und 'Großverbrauchern z.B. WP, Heizstab, E-Car, WA, GSP, Poolheizung etc. besonders in der Übergangszeit(Herbst, Winter, Frühjahr) wo gerade genug Energie vom Dach zur Verfügung steht um den Bedarf weitestgehend zu decken. Und die Batterie ist ein 'gutmütiger' Consumer - d.h. die nimmt die PV-Energie ab wenigen Watt Überschuss und gewährleistet so eine max. Ausbeute während z.B. meine WP mind. 650 W braucht um anzulaufen und bei PV-Überschuss den Puffer wärmer zu machen als er lt. Heizkurve sein müsst - ein Heizstab braucht 1500W, E-Car alt ab 1500W neu (ISO 15118) 600W etc.
Auf der anderen Seite sollte jede Batterie (Theorie (Studie) durfte ich gerade lernen) nur möglichst kurz im Ladezustand 100% verharren. Ansonsten altert eine (LFP-) Batterie überdurchschnittlich schnell. Zumindest ist dies neben Umgebungstemperatur und (Ent-) Ladestrom ein sehr entscheidender Einfluss. Mit Ladezuständen um die 80% passiert das nicht (siehe Handy). BMS hält auch eine definierte Ladung vor um Überladung und Tiefenentladung zu vermeiden.
Die Frage aus meiner Sicht ist, auf was optimiert werden soll - max. Energieausbeute vs. max. Batteriegesundheit.
Vielleicht ist es sinnvoll die Bat (erstmal nur im Sommer) bis auf 80% laden? Verbraucher priorisieren? so dass sie hintereinander einschalten solange PV Überschuss vorhanden ist und dann auch wieder ausschalten wenn weg? Aber wie kann man das planen? Es ist sicher möglich für Verbraucher ein Profil zu ermitteln - beim Heizstab z.B. der braucht (bei mir 200l WW-Boiler) ca. 0,5 kWh pro 1K Temperaturerhöhung - die Krux ist wenn der Heizstab ausschaltet weil z.B. 75°C erreicht sind (lt. Sensor Heizstab) ist das im oberen Bereich des Boilers noch nicht der Fall - also geht das Ding mit bis zu 4500 W 'unkontrolliert' wieder an sobald die Konvektion gewirkt hat  - schreib das nur um die kleinen Klippen zu skizzieren die da so umhergeistern - denn heute stört das nicht, jede Lücke wird von der Batterie genutzt - die saugt die Energie weg wenn verfügbar.
Ich möchte diesen Post bitte nur als Diskussionsanstoß verstanden wissen - bin mir nicht sicher was da richtig wäre - gerne antworten
Gruß Gerd