Ich schaffe es nicht mit ModbusAttr das Register 40210 auszulesen.
Mein Device:
define MD_SE_10K ModbusAttr 1 7 192.168.XXX.XXX TCP
obj-h40210-len 1\
obj-h40210-reading M_AC_POWER_SF\
obj-h40210-unpack s>\
attr MD_SE_10K dev-h-combine 105
attr MD_SE_10K dev-h-defPoll 1
attr MD_SE_10K dev-h-defShowGet 1
attr MD_SE_10K enableControlSet 1
attr MD_SE_10K event-on-change-reading .*
attr MD_SE_10K maxTimeoutsToReconnect 3
attr MD_SE_10K obj-h40083-expr $val * (10 ** $val[1])/1000
attr MD_SE_10K obj-h40083-format %.2f
attr MD_SE_10K obj-h40083-len 2
attr MD_SE_10K obj-h40083-reading I_AC-Power
attr MD_SE_10K obj-h40083-unpack s>s>
attr MD_SE_10K obj-h40100-expr $val * (10 ** $val[1])/1000
attr MD_SE_10K obj-h40100-format %.2f
attr MD_SE_10K obj-h40100-len 2
attr MD_SE_10K obj-h40100-reading I_DC-Power
attr MD_SE_10K obj-h40100-unpack s>s>
attr MD_SE_10K obj-h40206-expr ($val[0] * (10 ** $val[4]))/1000
attr MD_SE_10K obj-h40206-format %.2f
attr MD_SE_10K obj-h40206-len 5
attr MD_SE_10K obj-h40206-reading M_AC-Power
attr MD_SE_10K obj-h40206-unpack s>s>
attr MD_SE_10K obj-h40210-reading M_AC_POWER_SF
attr MD_SE_10K obj-h62836-expr $val / 1000
attr MD_SE_10K obj-h62836-format %.2f
attr MD_SE_10K obj-h62836-len 2
attr MD_SE_10K obj-h62836-reading B_Instantaneous_Power
attr MD_SE_10K obj-h62836-revRegs 1
attr MD_SE_10K obj-h62836-unpack f>
attr MD_SE_10K obj-h62848-expr $val / 1000
attr MD_SE_10K obj-h62848-format %.2f
attr MD_SE_10K obj-h62848-len 2
attr MD_SE_10K obj-h62848-reading B_Available_Energy
attr MD_SE_10K obj-h62848-revRegs 1
attr MD_SE_10K obj-h62848-unpack f>
attr MD_SE_10K obj-h62852-format %.1f
attr MD_SE_10K obj-h62852-len 2
attr MD_SE_10K obj-h62852-reading B_State_of_Energy
attr MD_SE_10K obj-h62852-revRegs 1
attr MD_SE_10K obj-h62852-unpack f>
attr MD_SE_10K silentReconnect 1
attr MD_SE_10K sortUpdate 1
attr MD_SE_10K userReadings B_State_of_Energy_in_kWh:B_State_of_Energy.* {\
my $stat = ReadingsNum ($name,'B_State_of_Energy',0);;\
my $aval = ReadingsNum ($name,'B_Available_Energy',0)/100;;\
my $result = 0;;\
$result = $stat*$aval;;\
return sprintf("%.2f", $result);;\
},\
BatIn:B_Instantaneous_Power.* {\
my $pwr = ReadingsNum ($name, 'B_Instantaneous_Power', 0);;\
$pwr = $pwr > 0 ? $pwr : 0;;\
$pwr\
},\
BatOut:B_Instantaneous_Power.* {\
my $pwr = ReadingsNum ($name, 'B_Instantaneous_Power', 0);;\
$pwr = $pwr < 0 ? abs $pwr : 0;;\
$pwr\
},\
M_AC-Power_Purchased:M_AC-Power.* {\
my $pwr = ReadingsNum ($name, 'M_AC-Power', 0);;\
$pwr = $pwr < 0 ? abs $pwr : 0;;\
$pwr\
},\
M_AC-Power_FeendIn:M_AC-Power.* {\
my $pwr = ReadingsNum ($name, 'M_AC-Power', 0);;\
$pwr = $pwr > 0 ? $pwr : 0;;\
$pwr\
}
attr MD_SE_10K verbose 5
# DEF 1 7 192.168.XXX.XXX TCP
# DeviceName 192.168.XXX.XXX:502
# EXPECT idle
# FUUID 68caf748-f33f-84ec-167e-f6e30fec496357e2
# Interval 7
# MODBUSID 1
# MODE master
# MODULEVERSION Modbus 5.0.1 - 7.12.2025
# NAME MD_SE_10K
# NOTIFYDEV global
# NR 448
# NTFY_ORDER 50-MD_SE_10K
# PROTOCOL TCP
# STATE inactive
# TCPConn 1
# TYPE ModbusAttr
# devioLoglevel 5
# devioNoSTATE 1
# eventCount 1769
# nextOpenDelay 60
# OICACHE:
# READ:
# BUFFER
# READINGS:
# 2026-02-11 20:27:33 B_Available_Energy 9.53
# 2026-02-11 20:27:33 B_Instantaneous_Power 0.00
# 2026-02-11 20:27:33 B_State_of_Energy 1.1
# 2026-02-11 11:45:30 B_State_of_Energy_in_kWh 0.10
# 2026-02-11 10:08:10 BatIn 0
# 2026-02-11 10:08:10 BatOut 0
# 2026-02-11 20:27:33 I_AC-Power -0.08
# 2026-02-11 20:27:33 I_DC-Power -0.08
# 2025-10-14 12:52:23 I_Status On
# 2026-02-11 20:27:33 M_AC-Power -4.09
# 2026-02-11 20:27:33 M_AC-Power_FeendIn 0
# 2026-02-11 20:27:33 M_AC-Power_Purchased 4.09
# 2026-02-11 20:27:33 M_AC_POWER_SF 65535
# 2026-02-10 18:52:17 M_Energy_W_SF -3
# 2026-02-10 18:52:17 M_Imported 831.65
# 2026-02-10 18:34:39 Zustand Export+Import
# 2026-02-11 20:27:38 state inactive
# REMEMBER:
# lid 1
# lname MD_SE_10K
# lrecv 1770838053.64688
# lsend 1770838053.60111
# defptr:
# MD_SE_10K 1
# gotReadings:
# B_Available_Energy 9.53
# B_Instantaneous_Power 0.00
# B_State_of_Energy 1.1
# hmccu:
# lastRead:
# h40083 1770838053.373
# h40100 1770838053.37335
# h40206 1770838053.50005
# h40210 1770838053.50019
# h62836 1770838053.65292
# h62848 1770838053.65328
# h62852 1770838053.65343
#
setstate MD_SE_10K 2026-02-11 20:27:33 B_Available_Energy 9.53
setstate MD_SE_10K 2026-02-11 20:27:33 B_Instantaneous_Power 0.00
setstate MD_SE_10K 2026-02-11 20:27:33 B_State_of_Energy 1.1
setstate MD_SE_10K 2026-02-11 11:45:30 B_State_of_Energy_in_kWh 0.10
setstate MD_SE_10K 2026-02-11 10:08:10 BatIn 0
setstate MD_SE_10K 2026-02-11 10:08:10 BatOut 0
setstate MD_SE_10K 2026-02-11 20:27:33 I_AC-Power -0.08
setstate MD_SE_10K 2026-02-11 20:27:33 I_DC-Power -0.08
setstate MD_SE_10K 2025-10-14 12:52:23 I_Status On
setstate MD_SE_10K 2026-02-11 20:27:33 M_AC-Power -4.09
setstate MD_SE_10K 2026-02-11 20:27:33 M_AC-Power_FeendIn 0
setstate MD_SE_10K 2026-02-11 20:27:33 M_AC-Power_Purchased 4.09
setstate MD_SE_10K 2026-02-11 20:27:33 M_AC_POWER_SF 65535
setstate MD_SE_10K 2026-02-10 18:52:17 M_Energy_W_SF -3
setstate MD_SE_10K 2026-02-10 18:52:17 M_Imported 831.65
setstate MD_SE_10K 2026-02-10 18:34:39 Zustand Export+Import
setstate MD_SE_10K 2026-02-11 20:27:38 state inactive
log-Auszug (vorbose 5)
2026.02.11 20:32:03 4: MD_SE_10K: GetUpdate (V5.0.1 - 7.12.2025) called from Fhem internal timer
2026.02.11 20:32:03 4: MD_SE_10K: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 7.0 sec at 20:32:10.846, interval 7
2026.02.11 20:32:03 5: MD_SE_10K: CreateRawObjList: h40083 h40100 h40206 h40210 h62836 h62848 h62852
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h40083 reading I_AC-Power, poll = 1, polldelay = 0.5, last = 1770838316.89465
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h40083 len 2 I_AC-Power
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h40100 reading I_DC-Power, poll = 1, polldelay = 0.5, last = 1770838316.89513
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h40100 len 2 I_DC-Power
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h40206 reading M_AC-Power, poll = 1, polldelay = 0.5, last = 1770838317.1563
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h40206 len 5 M_AC-Power
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h40210 reading M_AC_POWER_SF, poll = 1, polldelay = 0.5, last = 1770838053.50019
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h40210 len 1 M_AC_POWER_SF
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h62836 reading B_Instantaneous_Power, poll = 1, polldelay = 0.5, last = 1770838317.3624
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h62836 len 2 B_Instantaneous_Power
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h62848 reading B_Available_Energy, poll = 1, polldelay = 0.5, last = 1770838317.3625
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h62848 len 2 B_Available_Energy
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash check h62852 reading B_State_of_Energy, poll = 1, polldelay = 0.5, last = 1770838317.36257
2026.02.11 20:32:03 5: MD_SE_10K: CreateUpdateHash will request h62852 len 2 B_State_of_Energy
2026.02.11 20:32:03 4: MD_SE_10K: CombineUpdateHash objHash keys before combine: h62852,h62848,h40210,h62836,h40100,h40206,h40083
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash tries to combine read commands
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash combine h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power to span 19, drop read for h40100
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash cant combine h40083 len 2 I_AC-Power with h40206 len 5 M_AC-Power, span 128 would be bigger than max 105
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash combine h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF to span 5, drop read for h40210
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash cant combine h40206 len 5 M_AC-Power with h62836 len 2 B_Instantaneous_Power, span 22632 would be bigger than max 105
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash combine h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy to span 14, drop read for h62848
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash combine h62836 len 2 B_Instantaneous_Power with h62852 len 2 B_State_of_Energy to span 18, drop read for h62852
2026.02.11 20:32:03 5: MD_SE_10K: CombineUpdateHash keys are now h62836,h40206,h40083
2026.02.11 20:32:03 4: MD_SE_10K: GetUpdate will now create requests for h40083 len 19 (combined h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power), h40206 len 5 (combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF), h62836 len 18 (combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy)
2026.02.11 20:32:03 4: MD_SE_10K: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 3 h40083, len 19, tid 178, master device MD_SE_10K, reading I_AC-Power (getUpdate for combined h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power)
2026.02.11 20:32:03 5: MD_SE_10K: QueueRequest called from DoRequest with h40083, qlen 0 from master MD_SE_10K through io device MD_SE_10K
2026.02.11 20:32:03 5: MD_SE_10K: StartQueueTimer called from QueueRequest sets internal timer to process queue in 0.000 seconds
2026.02.11 20:32:03 4: MD_SE_10K: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 3 h40206, len 5, tid 72, master device MD_SE_10K, reading M_AC-Power (getUpdate for combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF)
2026.02.11 20:32:03 5: MD_SE_10K: QueueRequest called from DoRequest with h40206, qlen 1 from master MD_SE_10K through io device MD_SE_10K
2026.02.11 20:32:03 4: MD_SE_10K: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 3 h62836, len 18, tid 70, master device MD_SE_10K, reading B_Instantaneous_Power (getUpdate for combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy)
2026.02.11 20:32:03 5: MD_SE_10K: QueueRequest called from DoRequest with h62836, qlen 2 from master MD_SE_10K through io device MD_SE_10K
2026.02.11 20:32:03 5: MD_SE_10K: ProcessRequestQueue called from Fhem internal timer as queue:MD_SE_10K, qlen 3, request: request: id 1, read fc 3 h40083, len 19, tid 178, master device MD_SE_10K, reading I_AC-Power (getUpdate for combined h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power), queued 0.00 secs ago
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays commDelay, last communication with same device was 6.496 secs ago, required delay is 0.1
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays sendDelay, last send to same device was 6.596 secs ago, required delay is 0.1
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays clientSwitchDelay is not relevant
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays busDelayRead is not required
2026.02.11 20:32:03 4: MD_SE_10K: ProcessRequestQueue (V5.0.1 - 7.12.2025) qlen 3, sending 00b20000000601039c930013 via 192.168.2.40:502, read buffer empty,
request: id 1, read fc 3 h40083, len 19, tid 178, master device MD_SE_10K, reading I_AC-Power (getUpdate for combined h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power), queued 0.00 secs ago
2026.02.11 20:32:03 5: MD_SE_10K: Send called from ProcessRequestQueue
2026.02.11 20:32:03 5: DevIo_SimpleWrite MD_SE_10K: 00b20000000601039c930013
2026.02.11 20:32:03 5: MD_SE_10K: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2026.02.11 20:32:03 5: MD_SE_10K: readFn buffer: 00b200000029010326e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe mode master, expect response
2026.02.11 20:32:03 5: MD_SE_10K: ParseFrameStart called from ReadFn protocol TCP expecting id 1
2026.02.11 20:32:03 4: MD_SE_10K: ParseFrameStart (TCP, master) extracted id 1, fCode 3, tid 178, dlen 41 and potential data 26e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe
2026.02.11 20:32:03 5: MD_SE_10K: HandleResponse called from ReadFn
2026.02.11 20:32:03 5: MD_SE_10K: HandleResponse is now creating response hash, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:03 5: MD_SE_10K: HandleResponse is now calling ParseResponse, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:03 5: MD_SE_10K: ParseResponse called from HandleResponse, fc 3
2026.02.11 20:32:03 5: MD_SE_10K: now parsing response data objects, master is MD_SE_10K relay is undefined
2026.02.11 20:32:03 5: MD_SE_10K: ParseDataString called from HandleResponse with data hex e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe, type h, adr 40083, op read
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString called from ParseDataString with data hex e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe, type h, adr 40083, valuesLen 19, op read
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 2 objects / 4 bytes to h40085
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40085
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40086
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40086
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40087
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40087
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40088
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40088
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40089
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40089
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40090
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40090
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40091
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40091
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40092
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40092
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40093
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40093
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40094
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40094
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40095
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40095
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40096
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40096
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40097
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40097
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40098
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40098
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40099
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString has no information about handling h40099
2026.02.11 20:32:03 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h40100
2026.02.11 20:32:03 5: MD_SE_10K: CreateDataObjects called from ParseDataString with sorted List h40083,h40100
2026.02.11 20:32:03 5: MD_SE_10K: CreateDataObjects looks at h40083, len 2
2026.02.11 20:32:03 5: MD_SE_10K: CreateDataObjects unpacked e191fffe with s>s> to -7791, -2
2026.02.11 20:32:03 5: MD_SE_10K: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val * (10 ** $val[1])/1000 to -0.07791
2026.02.11 20:32:03 5: MD_SE_10K: FormatVal for CreateDataObjects formats -0.07791 with format %.2f, result is -0.08
2026.02.11 20:32:03 4: MD_SE_10K: CreateDataObjects assigns value -0.08 to I_AC-Power
2026.02.11 20:32:03 5: MD_SE_10K: CreateDataObjects looks at h40100, len 2
2026.02.11 20:32:03 5: MD_SE_10K: CreateDataObjects unpacked e11afffe with s>s> to -7910, -2
2026.02.11 20:32:03 5: MD_SE_10K: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val * (10 ** $val[1])/1000 to -0.0791
2026.02.11 20:32:03 5: MD_SE_10K: FormatVal for CreateDataObjects formats -0.0791 with format %.2f, result is -0.08
2026.02.11 20:32:03 4: MD_SE_10K: CreateDataObjects assigns value -0.08 to I_DC-Power
2026.02.11 20:32:03 5: MD_SE_10K: ParseDataString created 2 readings, errcode undef
2026.02.11 20:32:03 4: MD_SE_10K: HandleResponse done, current frame / read buffer: 00b200000029010326e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe, id 1, fCode 3, tid 178,
request: id 1, read fc 3 h40083, len 19, tid 178, master device MD_SE_10K, reading I_AC-Power (getUpdate for combined h40083 len 2 I_AC-Power with h40100 len 2 I_DC-Power), queued 0.11 secs ago, sent 0.11 secs ago,
response: id 1, fc 3, h40083, len 19, values e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe
2026.02.11 20:32:03 5: MD_SE_10K: ResetExpect for HandleResponse from response to idle
2026.02.11 20:32:03 5: MD_SE_10K: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2026.02.11 20:32:03 5: MD_SE_10K: DropFrame called from ReadFn - drop 00b200000029010326e191fffe1386fffe438cfffec3b3fffe1191fffe001088f60000d849fffb1e64ffffe11afffe
2026.02.11 20:32:03 5: MD_SE_10K: readFn end buffer: mode master, expect idle
2026.02.11 20:32:03 5: MD_SE_10K: ProcessRequestQueue called from Fhem internal timer as queue:MD_SE_10K, qlen 2, request: request: id 1, read fc 3 h40206, len 5, tid 72, master device MD_SE_10K, reading M_AC-Power (getUpdate for combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF), queued 0.11 secs ago
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays commDelay, last communication with same device was 0.006 secs ago, required delay is 0.1
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays clientSwitchDelay is not relevant
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays sendDelay, last send to same device was 0.105 secs ago, required delay is 0.1
2026.02.11 20:32:03 5: MD_SE_10K: checkDelays busDelayRead is not required
2026.02.11 20:32:03 4: MD_SE_10K: checkDelays found commDelay not over, set timer to try again in 0.094
2026.02.11 20:32:04 5: MD_SE_10K: ProcessRequestQueue called from Fhem internal timer as queue:MD_SE_10K, qlen 2, request: request: id 1, read fc 3 h40206, len 5, tid 72, master device MD_SE_10K, reading M_AC-Power (getUpdate for combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF), queued 0.20 secs ago
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays busDelayRead is not required
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays sendDelay, last send to same device was 0.201 secs ago, required delay is 0.1
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays clientSwitchDelay is not relevant
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays commDelay, last communication with same device was 0.101 secs ago, required delay is 0.1
2026.02.11 20:32:04 4: MD_SE_10K: ProcessRequestQueue (V5.0.1 - 7.12.2025) qlen 2, sending 00480000000601039d0e0005 via 192.168.2.40:502, read buffer empty,
request: id 1, read fc 3 h40206, len 5, tid 72, master device MD_SE_10K, reading M_AC-Power (getUpdate for combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF), queued 0.20 secs ago
2026.02.11 20:32:04 5: MD_SE_10K: Send called from ProcessRequestQueue
2026.02.11 20:32:04 5: DevIo_SimpleWrite MD_SE_10K: 00480000000601039d0e0005
2026.02.11 20:32:04 5: MD_SE_10K: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2026.02.11 20:32:04 5: MD_SE_10K: readFn buffer: 00480000000d01030af195f885fd26fbebffff mode master, expect response
2026.02.11 20:32:04 5: MD_SE_10K: ParseFrameStart called from ReadFn protocol TCP expecting id 1
2026.02.11 20:32:04 4: MD_SE_10K: ParseFrameStart (TCP, master) extracted id 1, fCode 3, tid 72, dlen 13 and potential data 0af195f885fd26fbebffff
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse called from ReadFn
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse is now creating response hash, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse is now calling ParseResponse, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:04 5: MD_SE_10K: ParseResponse called from HandleResponse, fc 3
2026.02.11 20:32:04 5: MD_SE_10K: now parsing response data objects, master is MD_SE_10K relay is undefined
2026.02.11 20:32:04 5: MD_SE_10K: ParseDataString called from HandleResponse with data hex f195f885fd26fbebffff, type h, adr 40206, op read
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString called from ParseDataString with data hex f195f885fd26fbebffff, type h, adr 40206, valuesLen 5, op read
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects called from ParseDataString with sorted List h40206
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects looks at h40206, len 5
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects unpacked f195f885fd26fbebffff with s>s> to -3691, -1915
2026.02.11 20:32:04 3: MD_SE_10K: perl expression eval with expresion package main; my @val = @{$oRef->{'%val'}};($val[0] * (10 ** $val[4]))/1000 created warning: Use of uninitialized value $val[4] in exponentiation (**) at (eval 319772) line 1.
2026.02.11 20:32:04 5: MD_SE_10K: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};($val[0] * (10 ** $val[4]))/1000 to -3.691
2026.02.11 20:32:04 5: MD_SE_10K: FormatVal for CreateDataObjects formats -3.691 with format %.2f, result is -3.69
2026.02.11 20:32:04 4: MD_SE_10K: CreateDataObjects assigns value -3.69 to M_AC-Power
2026.02.11 20:32:04 5: MD_SE_10K: ParseDataString created 1 readings, errcode undef
2026.02.11 20:32:04 4: MD_SE_10K: HandleResponse done, current frame / read buffer: 00480000000d01030af195f885fd26fbebffff, id 1, fCode 3, tid 72,
request: id 1, read fc 3 h40206, len 5, tid 72, master device MD_SE_10K, reading M_AC-Power (getUpdate for combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF), queued 0.27 secs ago, sent 0.07 secs ago,
response: id 1, fc 3, h40206, len 5, values f195f885fd26fbebffff
2026.02.11 20:32:04 5: MD_SE_10K: ResetExpect for HandleResponse from response to idle
2026.02.11 20:32:04 5: MD_SE_10K: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2026.02.11 20:32:04 5: MD_SE_10K: DropFrame called from ReadFn - drop 00480000000d01030af195f885fd26fbebffff
2026.02.11 20:32:04 5: MD_SE_10K: readFn end buffer: mode master, expect idle
2026.02.11 20:32:04 5: MD_SE_10K: ProcessRequestQueue called from Fhem internal timer as queue:MD_SE_10K, qlen 1, request: request: id 1, read fc 3 h62836, len 18, tid 70, master device MD_SE_10K, reading B_Instantaneous_Power (getUpdate for combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy), queued 0.27 secs ago
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays commDelay, last communication with same device was 0.008 secs ago, required delay is 0.1
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays sendDelay, last send to same device was 0.065 secs ago, required delay is 0.1
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays clientSwitchDelay is not relevant
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays busDelayRead is not required
2026.02.11 20:32:04 4: MD_SE_10K: checkDelays found commDelay not over, set timer to try again in 0.092
2026.02.11 20:32:04 5: MD_SE_10K: ProcessRequestQueue called from Fhem internal timer as queue:MD_SE_10K, qlen 1, request: request: id 1, read fc 3 h62836, len 18, tid 70, master device MD_SE_10K, reading B_Instantaneous_Power (getUpdate for combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy), queued 0.36 secs ago
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays busDelayRead is not required
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays sendDelay, last send to same device was 0.159 secs ago, required delay is 0.1
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays clientSwitchDelay is not relevant
2026.02.11 20:32:04 5: MD_SE_10K: checkDelays commDelay, last communication with same device was 0.102 secs ago, required delay is 0.1
2026.02.11 20:32:04 4: MD_SE_10K: ProcessRequestQueue (V5.0.1 - 7.12.2025) qlen 1, sending 0046000000060103f5740012 via 192.168.2.40:502, read buffer empty,
request: id 1, read fc 3 h62836, len 18, tid 70, master device MD_SE_10K, reading B_Instantaneous_Power (getUpdate for combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy), queued 0.36 secs ago
2026.02.11 20:32:04 5: MD_SE_10K: Send called from ProcessRequestQueue
2026.02.11 20:32:04 5: DevIo_SimpleWrite MD_SE_10K: 0046000000060103f5740012
2026.02.11 20:32:04 5: MD_SE_10K: readFn buffer: 004600000027010324000000000000000000000000000000000000000090004617e5604614000042c62b923f88 mode master, expect response
2026.02.11 20:32:04 5: MD_SE_10K: ParseFrameStart called from ReadFn protocol TCP expecting id 1
2026.02.11 20:32:04 4: MD_SE_10K: ParseFrameStart (TCP, master) extracted id 1, fCode 3, tid 70, dlen 39 and potential data 24000000000000000000000000000000000000000090004617e5604614000042c62b923f88
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse called from ReadFn
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse is now creating response hash, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:04 5: MD_SE_10K: HandleResponse is now calling ParseResponse, masterHash is HASH(0x5583814d1608)
2026.02.11 20:32:04 5: MD_SE_10K: ParseResponse called from HandleResponse, fc 3
2026.02.11 20:32:04 5: MD_SE_10K: now parsing response data objects, master is MD_SE_10K relay is undefined
2026.02.11 20:32:04 5: MD_SE_10K: ParseDataString called from HandleResponse with data hex 000000000000000000000000000000000000000090004617e5604614000042c62b923f88, type h, adr 62836, op read
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString called from ParseDataString with data hex 000000000000000000000000000000000000000090004617e5604614000042c62b923f88, type h, adr 62836, valuesLen 18, op read
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 2 objects / 4 bytes to h62838
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62838
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62839
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62839
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62840
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62840
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62841
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62841
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62842
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62842
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62843
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62843
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62844
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62844
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62845
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62845
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62846
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62846
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62847
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62847
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62848
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 2 objects / 4 bytes to h62850
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62850
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62851
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString has no information about handling h62851
2026.02.11 20:32:04 5: MD_SE_10K: SplitDataString moves to next object, skip 1 objects / 2 bytes to h62852
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects called from ParseDataString with sorted List h62836,h62848,h62852
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects looks at h62836, len 2
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder is reversing order of up to 2 registers
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder for CreateDataObjects is transforming 00000000 to 00000000
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects unpacked 00000000 with f> to 0
2026.02.11 20:32:04 5: MD_SE_10K: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 1000 to 0
2026.02.11 20:32:04 5: MD_SE_10K: FormatVal for CreateDataObjects formats 0 with format %.2f, result is 0.00
2026.02.11 20:32:04 4: MD_SE_10K: CreateDataObjects assigns value 0.00 to B_Instantaneous_Power
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects looks at h62848, len 2
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder is reversing order of up to 2 registers
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder for CreateDataObjects is transforming e5604614 to 4614e560
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects unpacked 4614e560 with f> to 9529.34375
2026.02.11 20:32:04 5: MD_SE_10K: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val / 1000 to 9.52934375
2026.02.11 20:32:04 5: MD_SE_10K: FormatVal for CreateDataObjects formats 9.52934375 with format %.2f, result is 9.53
2026.02.11 20:32:04 4: MD_SE_10K: CreateDataObjects assigns value 9.53 to B_Available_Energy
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects looks at h62852, len 2
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder is reversing order of up to 2 registers
2026.02.11 20:32:04 5: MD_SE_10K: ReverseWordOrder for CreateDataObjects is transforming 2b923f88 to 3f882b92
2026.02.11 20:32:04 5: MD_SE_10K: CreateDataObjects unpacked 3f882b92 with f> to 1.06382966041565
2026.02.11 20:32:04 5: MD_SE_10K: FormatVal for CreateDataObjects formats 1.06382966041565 with format %.1f, result is 1.1
2026.02.11 20:32:04 4: MD_SE_10K: CreateDataObjects assigns value 1.1 to B_State_of_Energy
2026.02.11 20:32:04 5: MD_SE_10K: ParseDataString created 3 readings, errcode undef
2026.02.11 20:32:04 4: MD_SE_10K: HandleResponse done, current frame / read buffer: 004600000027010324000000000000000000000000000000000000000090004617e5604614000042c62b923f88, id 1, fCode 3, tid 70,
request: id 1, read fc 3 h62836, len 18, tid 70, master device MD_SE_10K, reading B_Instantaneous_Power (getUpdate for combined h62836 len 2 B_Instantaneous_Power with h62848 len 2 B_Available_Energy and h62852 len 2 B_State_of_Energy), queued 0.53 secs ago, sent 0.17 secs ago,
response: id 1, fc 3, h62836, len 18, values 000000000000000000000000000000000000000090004617e5604614000042c62b923f88
2026.02.11 20:32:04 5: MD_SE_10K: ResetExpect for HandleResponse from response to idle
2026.02.11 20:32:04 5: MD_SE_10K: DropFrame called from ReadFn - drop 004600000027010324000000000000000000000000000000000000000090004617e5604614000042c62b923f88
2026.02.11 20:32:04 5: MD_SE_10K: readFn end buffer: mode master, expect idle
Register 40206 und 40210 werden zusammen gelesen.
Im Log steht ausdrücklich:
CreateUpdateHash will request h40206 len 5 M_AC-Power
CreateUpdateHash will request h40210 len 1 M_AC_POWER_SF
CombineUpdateHash combine h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF to span 5, drop read for h40210
Danach:
GetUpdate will now create requests for ... h40206 len 5 (combined h40206 len 5 M_AC-Power with h40210 len 1 M_AC_POWER_SF)
Und beim Lesen:
Request:
read fc 3 h40206, len 5
Response-Daten:
f195f885fd26fbebffff
(5 Register = 10 Bytes)
CreateDataObjects looks at h40206, len 5
und der Ausdruck
($val[0] * (10 ** $val[4]))/1000
nutzt genau den (eigentlich) mitgelesenen Skalierungsfaktor.
Und trotzdem die Warnung
,,Use of uninitialized value $val[4]"
zeigt doch, dass beim Auswerten der 5 gelesenen Register der fünfte Wert nicht sauber im Array landet bzw. vom Template falsch adressiert wird, oder?
Weiß jemand ein Rat?
Gruß Martin
Martin
Hallo Martin,
ich versuche mich mal an einer Antwort: ich glaub, ich verstehe was du bewerkstelligen möchtest: im Register 40206 ist ein Short-Wert welchen du mit dem Short-Wert aus 40210 multiplizieren möchtest. Deinen Lösungsansatz finde ich spannend, ich hätte die beiden Register separat ausgelesen und dann in einem Userreading verknüpft.
Ich bin nicht 100% sicher: eventuell liegt das Problem bei der unpack Definition:
attr MD_SE_10K obj-h40206-unpack s>s>
Dort liest du nur 2x einen Short wert aus (also die ersten 4 Bytes resp. 2 Modbus Register). Tatsächlich frägst du allerdings 5 Register ab. Was passiert, wenn du
attr MD_SE_10K obj-h40206-unpack s>s>s>s>s>
ausprobierst?
Beste Grüsse, Aurel
Hallo Aurel,
ja, das war's!
Manchmal sehe ich vor lauter Bäume den Wald nicht :-(
Danke!
Martin
Hast Du auch einen SolarEdge Hybrid-Inverter (mit Speicher)?
Nööö, einfach Interesse & es bitzeli Erfahrung mit ModBus :-)