Hauptmenü

Modbus polldelay

Begonnen von lufi, 16 Juni 2025, 11:22:12

Vorheriges Thema - Nächstes Thema

lufi

Hallo,

ich nutze in meinem Modbus Growatt Modul 'polldelay'.
Leider funktioniert das aber z.B. bei 'SOC' nicht.
Das Register wird immer alle 45 Sekunden gelesen egal was ich einstelle (300 oder x20)

Was mache ich da falsch?

package main;
use strict;
use warnings;

sub ModbusGrowattSPH_Initialize($);

my %ModbusGrowattSPHdeviceInfo = (
    "timing" => {
        timeout     =>  2,
        commDelay   =>  1,
        sendDelay   =>  1,
    },
    "i" =>  {
        combine => 100,
    },
    "h" =>  {
        combine => 100,
    }   
);

my %ModbusGrowattSPHparseInfo = (
'h0000' => {
                reading => 'powerState',
                name => 'powerState',
                poll => 1,
                set => 1,
                min => 0,
                max => 1,
                polldelay => 'x4',         
},
'h3' => { reading => 'MaxOutpurActivePower',
name => 'imoap',
                 set => 1,
                 min => 0,
                 max => 100,
                 poll => 1,
                 polldelay => 'x60',                   
},
'h4' => { reading => 'MaxOutpurReactivePower',
name => 'imorp',
                 set => 1,
                 min => 0,
                 max => 100,
                 poll => 1,
                 polldelay => 'x60',                   
},               
'h88' => { reading => 'ModbusVersion',
name => 'mov',
                 expr => '$val / 100',
                 format => '%.2f',
                 poll => "once",           
},           
'h608' => { reading => 'LoadFirstDischargeSoc',
name => 'lfds',
                 set => 1,
                 min => 10,
                 max => 100,
                 poll => 1,
                 polldelay => 'x60',                   
},     
    'h1037' => { reading => 'CTMode',
name => 'bCTMode',
                 poll => "once",
                 map => "0:WiredCT, 1:WirelessCT, 2:Meter",       
},
'h1044' => { reading => 'Priority',
name => 'prio',
                 poll => "once",
                 map => "0:Load, 1:Battery, 2:Grid",           
},
'h1006' => { reading => 'VbatMin',
name => 'vbatMin',
                 poll => 'once',
                 expr => '$val / 100',
                 format => '%.2f',                 
},   
'h1007' => { reading => 'VbatMax',
name => 'vbatMax',
                 poll => 'once',
                 expr => '$val / 100',
                 format => '%.2f',                 
},         
'i1' => { reading => 'PVPower',
name => 'Ppv',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 #polldelay => 15,
},     
'i3' => { reading => 'PV1Voltage',
name => 'Vpv1',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},
'i4' => { reading => 'PV1Current',
name => 'PV1Curr',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},                               
'i5' => { reading => 'PV1Power',
name => 'Ppv1',
                 unpack => 'I>',
                 expr => '$val / 10',
                 len => 2,
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},
'i7' => { reading => 'PV2Voltage',
name => 'Vpv2',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},
'i8' => { reading => 'PV2Current',
name => 'PV2Curr',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},             
'i9' => { reading => 'PV2Power',
name => 'Ppv2',
                 unpack => 'I>',
                 expr => '$val / 10',
                 len => 2,
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x2',
},
    'i35' => { reading => 'GridOutputPower',
name => 'Pac',
                 unpack => 'I>',   
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,               
                 poll => 1,
                 polldelay => 'x2',
},             
'i37' => { reading => 'GridFrequency',
name => 'Fac',
                 unpack => 'S>',
                 expr => '$val / 100',
                 format => '%.2f',
                 poll => 1,
                 polldelay => 'x20'
},           
'i38' => { reading => 'GridVoltage1',
name => 'Vac1',
                 unpack => 'S>',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x20'
},
    'i40' => { reading => 'GridOutputWatt1',
name => 'Pac1',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,               
                 poll => 1,
                 polldelay => 'x2',
},
'i93' => { reading => 'InverterTemperature',
name => 'Temp1',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x8',
},           
    "i1000" => { reading => "InverterMode",
                 name => "mode",
                 map => "0:Waiting, 1:Self-test, 2:Reserved, 3:SysFault, 4:Flash, 5:PVBATOnline, 6:BatOnline, 7:PVOffline, 8:BatOffline",
                 poll => 1,
                 polldelay => 'x20'
            },       
'i1009' => { reading => 'BatteryDischargePower',
name => 'pdischarge',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 polldelay => 'x2',
},
'i1011' => { reading => 'BatteryChargePower',
name => 'pcharge',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 polldelay => 'x2',
},
    "i1013" => { reading => "BatteryVoltage",
                 name => "pvol",
                 poll => 1,
                 unpack => 's>',
                 expr => '$val / 10',
                 format => '%.1f',
                 polldelay => "x60",
            },                                                                     
    "i1014" => { reading => "SOC",
                 name => "soc",
                 poll => 1,
                 polldelay => "x60",
            },
'i1021' => { reading => 'ACToUserTotal',
name => 'pactousertotal',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 polldelay => 'x2'           
},
'i1029' => { reading => 'ACToGridTotal',
name => 'pactogridtotal',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 polldelay => 'x2'
},
'i1037' => { reading => 'LocalLoadTotal',
name => 'plocalloadtotal',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,
                 poll => 1,
                 polldelay => 'x2'           
},                                   
'i1067' => { reading => 'UPSFrequency',
name => 'upsFac',
                 unpack => 's>',
                 expr => '$val / 100',
                 format => '%.2f',
                 poll => 1,
                 polldelay => 'x4'
},           
'i1068' => { reading => 'UPSVoltage',
name => 'upsVac1',
                 unpack => 's>',
                 expr => '$val / 10',
                 format => '%.1f',
                 poll => 1,
                 polldelay => 'x4'                 
},
    'i1070' => { reading => 'UPSOutputWatt',
name => 'upsPac1',
                 unpack => 'I>',
                 expr => '$val / 10',
                 format => '%.1f',
                 len => 2,             
                 poll => 1,
                 polldelay => 'x4'         
},
    'i1080' => { reading => 'UPSLoad',
name => 'upsLoad',
                 expr => '$val / 10',
                 format => '%.1f',                               
                 poll => 1,
                 polldelay => 'x4'           
},
    'i1001' => { reading => 'SystemFault0',
name => 'sysFault0',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" MasterForceINVFault":"";
                          $v .= (($val & 2)==2)?" MasterForceSPFault":"";
                          $v .= (($val & 4)==4)?" BusVoltHigh_TZ":"";
                          $v .= (($val & 8)==8)?" BusVoltHigh_ISR":"";
                          $v .= (($val & 256)==256)?" GridZClossFault":"";
                          $v .= (($val & 2048)==2048)?" GFCIHigh":"";
                          $v .= (($val & 4096)==4096)?" GridR_VFault":"";
                          $v .= (($val & 8192)==8192)?" GridS_VFault":"";
                          $v .= (($val & 16384)==16384)?" GridT_VFault":"";
                          $v .= (($val & 32768)==32768)?" GridFFault":"";
                          $val .= " ${v}";',                               
                 poll => 1,
                 polldelay => 'x60',
},
    'i1002' => { reading => 'SystemFault1',
name => 'sysFault1',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" RelayFault":"";
                          $v .= (($val & 2)==2)?" GFCIDamage":"";
                          $v .= (($val & 4)==4)?" GridR_VLowFault":"";
                          $v .= (($val & 8)==8)?" GridR_VHighFault":"";
                          $v .= (($val & 16)==16)?" GridS_VLowFault":"";
                          $v .= (($val & 32)==32)?" GridS_VHighFault":"";
                          $v .= (($val & 64)==64)?" GridT_VLowFault":"";
                          $v .= (($val & 128)==128)?" GridT_VHighFault":"";
                          $v .= (($val & 256)==256)?" INVCurrOCP_ISR":"";
                          $v .= (($val & 512)==512)?" INVCurrOCP_TZ":"";
                          $v .= (($val & 1024)==1024)?" DCIHigh":"";
                          $v .= (($val & 2048)==2048)?" reserved":"";
                          $v .= (($val & 4096)==4096)?" INVR_CurrOCP_Rms":"";
                          $v .= (($val & 8192)==8192)?" INVS_CurrOCP_Rms":"";
                          $v .= (($val & 16384)==16384)?" INVT_CurrOCP_Rms":"";
                          $v .= (($val & 32768)==32768)?" NoUtility":"";
                          $val .= " ${v}";',                               
                 poll => 1,
                 polldelay => 'x60',
},
    'i1003' => { reading => 'SystemFault2',
name => 'sysFault2',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" GridFLowFault":"";
                          $v .= (($val & 2)==2)?" GridFHighFault":"";
                          $v .= (($val & 4)==4)?" GridVolt_Unbalance_Fault":"";
                          $v .= (($val & 8)==8)?" AC_PLL_Fault":"";
                          $v .= (($val & 16)==16)?" OverLoadFault":"";
                          $v .= (($val & 256)==256)?" EPS_LineVoltR_Loss":"";
                          $v .= (($val & 512)==512)?" EPS_LineVoltS_Loss":"";
                          $v .= (($val & 1024)==1024)?" EPS_LineVoltT_Loss":"";
                          $val .= " ${v}";',                               
                 poll => 1,
                 polldelay => 'x60',
},
    'i1004' => { reading => 'SystemFault3',
name => 'sysFault3',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" BatTerminalReversed":"";
                          $v .= (($val & 2)==2)?" BMS-Battery-Open":"";
                          $v .= (($val & 4)==4)?" BatteryVoltageLow":"";
                          $val .= " ${v}";',                           
                 poll => 1,
                 polldelay => 'x60',
},
    'i1005' => { reading => 'SystemFault4',
name => 'sysFault4',
                 expr => 'my $v = "";
                          $v .= (($val & 32)==32)?" PV1_VoltLowWarn":"";
                          $v .= (($val & 64)==64)?" PV2_VoltLowWarn":"";
                          $val .= " ${v}";',                           
                 poll => 1,
                 polldelay => 'x60',
},           
    'i1006' => { reading => 'SystemFault5',
name => 'sysFault5',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" NE-DetectFault":"";
                          $v .= (($val & 2)==2)?" PVISOFault":"";
                          $v .= (($val & 4)==4)?" reserved":"";
                          $v .= (($val & 8)==8)?" BusVoltHighFault_ISR":"";
                          $v .= (($val & 16)==16)?" BusSampleFault":"";
                          $v .= (($val & 32)==32)?" UHCTFault":"";
                          $v .= (($val & 64)==64)?" AComFault":"";
                          $v .= (($val & 128)==128)?" BComFault":"";
                          $v .= (($val & 512)==512)?" AuotTestFault":"";
                          $v .= (($val & 2048)==2048)?" NTCOpenFault":"";
                          $v .= (($val & 4096)==4096)?" reserved":"";
                          $v .= (($val & 8192)==8192)?" BBHeatsink_TempOver":"";
                          $v .= (($val & 16384)==16384)?" BBOCP_FaultISR":"";
                          $v .= (($val & 32768)==32768)?" INVHeatsink_Overtemp":"";
                          $val .= " ${v}";',                               
                 poll => 1,
                 polldelay => 'x60',
},
    'i1007' => { reading => 'SystemFault6',
name => 'sysFault6',
                 expr => 'my $v = "";
                          $v .= (($val & 1)==1)?" PV1_VoltHighFault":"";
                          $v .= (($val & 2)==2)?" PV2_VoltHighFault":"";
                          $v .= (($val & 4)==4)?" BTHeatsink_Overtemp":"";
                          $v .= (($val & 8)==8)?" INVHeatsink_Overtemp":"";
                          $v .= (($val & 256)==256)?" BoostDriver1Warn":"";
                          $v .= (($val & 512)==512)?" BoostDriver2Warn":"";
                          $v .= (($val & 1024)==1024)?" WARN104":"";
                          $v .= (($val & 2048)==2048)?" PV1_ShortFault":"";
                          $v .= (($val & 4096)==4096)?" PV2_ShortFault":"";
                          $v .= (($val & 8192)==8192)?" Meter-COM-loss":"";
                          $v .= (($val & 16384)==16384)?" PairingTimeOut":"";
                          $v .= (($val & 32768)==32768)?" CT-LN-Reversed":"";
                          $val .= " ${v}";',                               
                 poll => 1,
                 polldelay => 'x60',
},                                                                                               
);

sub ModbusGrowattSPH_Initialize($)
{
    my ($modHash) = @_;
    LoadModule "Modbus";
    require "$attr{global}{modpath}/FHEM/DevIo.pm";

    $modHash->{parseInfo}  = \%ModbusGrowattSPHparseInfo;
    $modHash->{deviceInfo} = \%ModbusGrowattSPHdeviceInfo;

    ModbusLD_Initialize($modHash); 
   
    $modHash->{AttrList} = $modHash->{AttrList} . " " .
        $modHash->{ObjAttrList} . " " .
        $modHash->{DevAttrList} . " " .
        "poll-.* " .        # overwrite poll with poll-ReadingName
        "polldelay-.* ";    # overwrite polldelay with polldelay-ReadingName

}

lufi

#1
2025.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

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

bekeanloinse56

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.

lufi

Ich habe einen pollDelay bei den meisten Registern gesetzt. Und genau der scheint nicht zu funktionieren.