Neue Versionen und Support zum Modbus-Modul

Begonnen von StefanStrobel, 20 August 2017, 12:11:08

Vorheriges Thema - Nächstes Thema

StefanStrobel

Hallo,

hier nochmal eine neue Version mit der Bitte diese zu testen.
Wenn keine neuen Probleme auftreten, würde ich sie demnächst einchecken.
Utils.pm gehört ins Verzeichnis lib/FHEM/HTTPMOD und wird erst beim Neustart von Fhem geladen.

Gruss
   Stefan

laserrichi

habe deine Module mal eingebaut, nach restart kamen folgende Fehlermeldungen:

PERL WARNING: Argument "once" isn't numeric in addition (+) at ./FHEM/98_Modbus.pm line 3710, <FH> line 24705.
PERL WARNING: Invalid conversion in sprintf: end of string at lib/FHEM/HTTPMOD/Utils.pm line 419, <FH> line 24705.
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

StefanStrobel

Hallo laserichi,

vielen Dank für's Testen!
die erste Meldung ist ein Fehler, der vermutlich schon immer im Modul war. "once" wurde nicht wie in der Doku beschrieben als Wert von polldelay abgefragt sondern als Wert von poll.
Das habe ich jetzt behoben.

Bevor ich eine neue Version poste, würde ich gerne auch noch die zweite Meldung beheben. Die kommt von einer Format-Angabe.
Um das nachstellen zu können, wäre es sehr hilfreich, wenn Du einen Auszug aus dem Log mit Verbose 5 posten könntest. Da sollte dann stehen, was für ein Wert mit welchem Format-String zu der Meldung führt.

Gruss / vielen Dank
   Stefan

laserrichi

das mit verbose ist etwas schwierig, ich habe im global den verbose einmal gesetzt und dann meine Tankstellenabfragen da die ja httpmod nutzen aber konnte weiter nichts finden.
An welcher stelle sollte ich da noch verbose 5 setzen ?
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

Funnel

#619
Hallo Stefan,

ich führe meinen Ursprungsthread (https://forum.fhem.de/index.php/topic,116974.0.html) mal hier fort, um das ganze etwas zusammen zu halten. Der von mir berichtete Fehler im passive listening Modus scheint behoben, das Modul läuft jetzt seit 10 Stunden fehlerfrei. Hier zunächst einmal vielen Dank für deine Arbeit und das wirklich tolle Modbus Modul.

Ich habe jetzt allerdings einen Fehler von dem ich nicht weiß ob er neu ist bzw. ob es überhaupt ein Fehler ist oder ich eine fehlerhafte Konfiguration habe. Ich habe einen Modbus TCP Master mit 2 Datenobjekten angelegt, von denen jedoch immer nur eins (obj-i5016-reading DC_Power) im 60 Sekunden Intervall aktualisiert wird. Entferne ich dieses Objekt wird das andere verbleibende Objekt (obj-i13022-reading Battery_Level) aktualisiert. Wenn ich das Attribut "closeAfterResponse" auf 0 setze funktioniert das ganze wie gewünscht mit beiden Objekten, allerdings habe ich dann meinen Wechselrichter für andere FHEM unabhängige Tasks die ich zur Zeit noch brauche blockiert.

Internals:
   DEF        1 60 192.168.2.113:502 TCP
   DeviceName 192.168.2.113:502
   EXPECT     idle
   FUUID      5fe72a85-f33f-2788-89fd-f6a4cdbfcb141377
   IODev      Sungrow
   Interval   60
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.3.8 - 25.12.2020
   NAME       Sungrow
   NOTIFYDEV  global
   NR         390
   NTFY_ORDER 50-Sungrow
   PROTOCOL   TCP
   STATE      disconnected
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 4
   nextOpenDelay 60
   Helper:
     DBLOG:
       DC_Power:
         myDbLog:
           TIME       1609016388.80555
           VALUE      0
   OLDREADINGS:
   READ:
     BUFFER     
   READINGS:
     2020-12-26 21:33:27   Battery_Level   7.6
     2020-12-26 21:59:48   DC_Power        0
     2020-12-26 21:59:48   state           disconnected
   REMEMBER:
     lid        1
     lname      Sungrow
     lrecv      1609016388.79634
     lsend      1609016388.79089
   defptr:
     Sungrow    1
   gotReadings:
     DC_Power   0
   lastRead:
     h13023     1608986661.47167
     i13022     1609014807.94357
     i13023     1608986841.46699
     i5016      1609016388.80405
     i5060      1609014688.44647
Attributes:
   DbLogInclude DC_Power
   closeAfterResponse 1
   dev-i-defPoll 1
   dev-type-U16-expr $val/10
   dev-type-U16-len 1
   dev-type-U16-unpack n
   dev-type-U32-len 2
   dev-type-U32-unpack L<
   disable    0
   icon       sani_solar
   obj-i13022-reading Battery_Level
   obj-i13022-type U16
   obj-i5016-reading DC_Power
   obj-i5016-type U32
   room       Keller
   silentReconnect 1
   verbose    5


2020.12.26 22:14:16 5: Sungrow: GetUpdate called from Fhem internal timer
2020.12.26 22:14:16 4: Sungrow: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 60.0 sec at 2020-12-26 22:15:16, interval 60
2020.12.26 22:14:16 5: Sungrow: GetUpdate objects from attributes: i5016 i13022
2020.12.26 22:14:16 5: Sungrow: GetUpdate full object list: i13022 i5016
2020.12.26 22:14:16 5: Sungrow: GetUpdate check i13022 => Battery_Level, poll = 1, last = 1609017016.45331
2020.12.26 22:14:16 4: Sungrow: GetUpdate will request Battery_Level
2020.12.26 22:14:16 5: Sungrow: GetUpdate check i5016 => DC_Power, poll = 1, last = 1609017197.33515
2020.12.26 22:14:16 4: Sungrow: GetUpdate will request DC_Power
2020.12.26 22:14:16 5: Sungrow: GetUpdate tries to combine read commands
2020.12.26 22:14:16 5: Sungrow: GetUpdate cant combine request for DC_Power / i5016 with Battery_Level / i13022, span 8007 > max 1
2020.12.26 22:14:16 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate)
2020.12.26 22:14:16 5: Sungrow: QueueRequest called from DoRequest with i5016, qlen 0 from master Sungrow through io device Sungrow
2020.12.26 22:14:16 5: Sungrow: ProcessRequestQueue called from QueueRequest as direct:Sungrow, qlen 1, request: request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate), queued 0.00 secs ago
2020.12.26 22:14:16 5: Sungrow: open called from ProcessRequestQueue, busyOpenDev 0
2020.12.26 22:14:16 4: Sungrow: open trying to open connection to 192.168.2.113:502
2020.12.26 22:14:16 3: Opening Sungrow device 192.168.2.113:502
2020.12.26 22:14:16 5: HttpUtils url=http://192.168.2.113:502/
2020.12.26 22:14:16 4: IP: 192.168.2.113 -> 192.168.2.113
2020.12.26 22:14:16 5: Sungrow: StartQueueTimer called from DoOpen sets internal timer to process queue in 0.500 seconds
2020.12.26 22:14:16 5: Sungrow: ProcessRequestQueue returns, device is disconnected, qlen 1, try again in 1 seconds
2020.12.26 22:14:16 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 4, master device Sungrow, reading Battery_Level (getUpdate)
2020.12.26 22:14:16 5: Sungrow: QueueRequest called from DoRequest with i13022, qlen 1 from master Sungrow through io device Sungrow
2020.12.26 22:14:16 5: Sungrow: ProcessRequestQueue called from QueueRequest as direct:Sungrow, qlen 2, request: request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate), queued 0.01 secs ago
2020.12.26 22:14:16 5: Sungrow: open called from ProcessRequestQueue, busyOpenDev 1
2020.12.26 22:14:16 5: Sungrow: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2020.12.26 22:14:16 5: Sungrow: ProcessRequestQueue returns, device is disconnected, qlen 2, try again in 1 seconds
2020.12.26 22:14:16 4: Sungrow device opened
2020.12.26 22:14:16 4: Sungrow: UpdateTimer called from OpenCB with cmd start sets timer to call update function in 60.0 sec at 2020-12-26 22:15:16, interval 60
2020.12.26 22:14:17 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 2, request: request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate), queued 1.01 secs ago
2020.12.26 22:14:17 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.26 22:14:17 5: Sungrow: checkDelays sendDelay, last send to same device was 59.984 secs ago, required delay is 0.1
2020.12.26 22:14:17 5: Sungrow: checkDelays commDelay, last communication with same device was 59.978 secs ago, required delay is 0.1
2020.12.26 22:14:17 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 59.978 secs ago, required delay is 0
2020.12.26 22:14:17 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 2, sending 004f00000006010413980002 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate), queued 1.02 secs ago
2020.12.26 22:14:17 5: Sungrow: Send called from ProcessRequestQueue
2020.12.26 22:14:17 5: SW: 004f00000006010413980002
2020.12.26 22:14:17 5: Sungrow: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2020.12.26 22:14:17 5: Sungrow: read buffer: 004f0000000701040400000000
2020.12.26 22:14:17 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.26 22:14:17 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 79, dlen 7 and data 0400000000
2020.12.26 22:14:17 5: Sungrow: HandleResponse called from ReadFn
2020.12.26 22:14:17 5: Sungrow: ParseResponse called from HandleResponse
2020.12.26 22:14:17 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.26 22:14:17 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.26 22:14:17 5: Sungrow: ParseObj called with data hex 00000000, type i, adr 5016, valuesLen 2, op read
2020.12.26 22:14:17 5: Sungrow: ParseObj unpacked 00000000 with L< to 0
2020.12.26 22:14:17 4: Sungrow: ParseObj assigns value 0 to DC_Power
2020.12.26 22:14:17 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.26 22:14:17 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.26 22:14:17 5: Sungrow: Close called from HandleResponse
2020.12.26 22:14:17 4: Sungrow: Close connection with DevIo_CloseDev
2020.12.26 22:14:17 5: Sungrow: SetState called from DoClose with disconnected sets state and STATE to disconnected
2020.12.26 22:14:17 5: Sungrow: DropBuffer for DoClose clears the reception buffer with 004f0000000701040400000000
2020.12.26 22:14:17 4: Sungrow: HandleResponse done, read buffer empty, id 1, fCode 4, tid 79,
request: id 1, read fc 4 i5016, len 2, tid 79, master device Sungrow, reading DC_Power (getUpdate), queued 1.05 secs ago, sent 0.04 secs ago,
response: id 1, fc 4 i5016, len 2, value 00000000




StefanStrobel

#620
Hallo laserichi,

In Deinem Modbus-Device kannst Du auch das Attribut verbose auf 5 setzen.
Das verwendet die Utils von HTTPMOD und hat vermutlich in seiner Konfiguration ein Format-Attribut, mit dem eine Funktion von den Utils nicht klar kommt.

Gruß / Thanx
    Stefan

StefanStrobel

Hallo Thomas,

closeAfterResponse scheint noch nicht richtig zu funktionieren. Das schau ich mir morgen mal näher an.

Gruß / Thanx
    Stefan

laserrichi

Ok habe 2 Modbusmodule am Laufen. Der Fehler scheint wohl im Zusammenhang mit dem ModbusSDM630M zu stehen wegen dem - Vorzeichen vielleicht ?

2020.12.27 08:39:12 5: Hausstrom: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2020.12.27 08:39:12 5: Hausstrom: ProcessRequestQueue called from Fhem internal timer as queue:Hausstrom, qlen 6, request: request: id 1, read fc 4 i0, len 40, master device Hausstrom, reading Voltage_L1__V (getUpdate), queued 10.85 secs ago
2020.12.27 08:39:12 5: Hausstrom: checkDelays clientSwitchDelay is not relevant
2020.12.27 08:39:12 5: Hausstrom: checkDelays busDelayRead, last activity on bus  was 0.153 secs ago, required delay is 0
2020.12.27 08:39:12 5: Hausstrom: checkDelays sendDelay, last send to same device was 0.265 secs ago, required delay is 0.7
2020.12.27 08:39:12 5: Hausstrom: checkDelays commDelay, last communication with same device was 0.153 secs ago, required delay is 0.7
2020.12.27 08:39:12 4: Hausstrom: checkDelays found commDelay not over, set timer to try again in 0.547
2020.12.27 08:39:12 5: Hausstrom: ProcessRequestQueue called from Fhem internal timer as queue:Hausstrom, qlen 6, request: request: id 1, read fc 4 i0, len 40, master device Hausstrom, reading Voltage_L1__V (getUpdate), queued 11.44 secs ago
2020.12.27 08:39:12 5: Hausstrom: checkDelays busDelayRead, last activity on bus  was 0.746 secs ago, required delay is 0
2020.12.27 08:39:12 5: Hausstrom: checkDelays clientSwitchDelay is not relevant
2020.12.27 08:39:12 5: Hausstrom: checkDelays commDelay, last communication with same device was 0.746 secs ago, required delay is 0.7
2020.12.27 08:39:12 5: Hausstrom: checkDelays sendDelay, last send to same device was 0.857 secs ago, required delay is 0.7
2020.12.27 08:39:12 4: Hausstrom: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 6, sending 010400000028f014 via 192.168.10.7:23, read buffer empty,
request: id 1, read fc 4 i0, len 40, master device Hausstrom, reading Voltage_L1__V (getUpdate), queued 11.45 secs ago
2020.12.27 08:39:12 5: Hausstrom: Send called from ProcessRequestQueue
2020.12.27 08:39:12 5: SW: 010400000028f014
2020.12.27 08:39:12 5: Hausstrom: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2020.12.27 08:39:12 5: Hausstrom: read buffer: 0104504368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c1
2020.12.27 08:39:12 5: Hausstrom: ParseFrameStart called from ReadFn
2020.12.27 08:39:12 4: Hausstrom: SkipGarbageCheck looking for start byte 01 protocol is RTU, mode is master
2020.12.27 08:39:12 4: Hausstrom: ParseFrameStart (RTU) extracted id 1, fCode 4 and data 504368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bd
2020.12.27 08:39:12 5: Hausstrom: HandleResponse called from ReadFn
2020.12.27 08:39:12 5: Hausstrom: ParseResponse called from HandleResponse
2020.12.27 08:39:12 5: Hausstrom: HandleResponse did not get a valid frame yet, wait for more data
2020.12.27 08:39:12 5: Hausstrom: read buffer: 0104504368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32bde5e
2020.12.27 08:39:12 5: Hausstrom: ParseFrameStart called from ReadFn
2020.12.27 08:39:12 4: Hausstrom: SkipGarbageCheck looking for start byte 01 protocol is RTU, mode is master
2020.12.27 08:39:12 4: Hausstrom: ParseFrameStart (RTU) extracted id 1, fCode 4 and data 504368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b
2020.12.27 08:39:12 5: Hausstrom: HandleResponse called from ReadFn
2020.12.27 08:39:12 5: Hausstrom: ParseResponse called from HandleResponse
2020.12.27 08:39:12 5: Hausstrom: CheckChecksum (called from HandleResponse): de5e is valid
2020.12.27 08:39:12 5: Hausstrom: HandleResponse now acts on fcode 4, masterhash Hausstrom
2020.12.27 08:39:12 5: Hausstrom: HandleResponse calls parseObj with master device Hausstrom for parsing data
2020.12.27 08:39:12 5: Hausstrom: ParseObj called with data hex 4368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b, type i, adr 0, valuesLen 40, op read
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 4368e8454367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 232.907302856445
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 232.907302856445 with %.1f V, result is 232.9 V
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 232.9 V to Voltage_L1__V
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i2
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 4367ef954368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 231.93586730957
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 231.93586730957 with %.1f V, result is 231.9 V
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 231.9 V to Voltage_L2__V
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i4
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 4368f42b3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 232.95378112793
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 232.95378112793 with %.1f V, result is 233.0 V
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 233.0 V to Voltage_L3__V
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i6
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3d52f6d83f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 0.0515049397945404
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.0515049397945404 with %.2f A, result is 0.05 A
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 0.05 A to Current_L1__A
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i8
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3f6026803f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 0.875587463378906
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.875587463378906 with %.2f A, result is 0.88 A
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 0.88 A to Current_L2__A
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i10
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3f383d8740e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 0.719688832759857
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.719688832759857 with %.2f A, result is 0.72 A
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 0.72 A to Current_L3__A
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i12
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 40e762544348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 7.23075294494629
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 7.23075294494629 with %.f W, result is 7 W
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 7 W to Power_L1__W
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i14
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 4348db8b431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 200.85758972168
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 200.85758972168 with %.f W, result is 201 W
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 201 W to Power_L2__W
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i16
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 431b7936413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 155.473480224609
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 155.473480224609 with %.f W, result is 155 W
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 155 W to Power_L3__W
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i18
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 413fef1c434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 11.9958763122559
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 11.9958763122559 with %.1f VA, result is 12.0 VA
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 12.0 VA to Power_L1__VA
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i20
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 434b14844327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 203.080139160156
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 203.080139160156 with %.1f VA, result is 203.1 VA
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 203.1 VA to Power_L2__VA
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i22
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 4327a77cc11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 167.654235839844
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 167.654235839844 with %.1f VA, result is 167.7 VA
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 167.7 VA to Power_L3__VA
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i24
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked c11925a6c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to -9.57169151306152
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats -9.57169151306152 with %.1f VAr, result is -9.6 VAr
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value -9.6 VAr to Power_L1__VAr
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i26
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked c1efb425c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to -29.9629611968994
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats -29.9629611968994 with %.1f VAr, result is -30.0 VAr
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value -30.0 VAr to Power_L2__VAr
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i28
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked c27af2c93f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to -62.7370948791504
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats -62.7370948791504 with %.1f VAr, result is -62.7 VAr
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value -62.7 VAr to Power_L3__VAr
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i30
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3f1a4f203f7d32c23f6d668ac253bdd0c107c32b with f> to 0.60276985168457
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.60276985168457 with %.1f, result is 0.6
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 0.6 to PowerFactor_L1
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i32
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3f7d32c23f6d668ac253bdd0c107c32b with f> to 0.989055752754211
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.989055752754211 with %.1f, result is 1.0
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 1.0 to PowerFactor_L2
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i34
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked 3f6d668ac253bdd0c107c32b with f> to 0.927345871925354
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats 0.927345871925354 with %.1f, result is 0.9
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value 0.9 to PowerFactor_L3
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i36
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked c253bdd0c107c32b with f> to -52.9353637695312
2020.12.27 08:39:12 1: PERL WARNING: Invalid conversion in sprintf: end of string at lib/FHEM/HTTPMOD/Utils.pm line 419.
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats -52.9353637695312 with %.1f %, result is -52.9 %
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value -52.9 % to CosPhi_L1
2020.12.27 08:39:12 5: Hausstrom: ParseObj moves to next object, skip 2 to i38
2020.12.27 08:39:12 5: Hausstrom: ParseObj unpacked c107c32b with f> to -8.48514842987061
2020.12.27 08:39:12 5: Hausstrom: FormatVal for ParseObj formats -8.48514842987061 with %.1f %, result is -8.5 %
2020.12.27 08:39:12 4: Hausstrom: ParseObj assigns value -8.5 % to CosPhi_L2
2020.12.27 08:39:12 5: Hausstrom: HandleResponse got 20 readings from ParseObj for Hausstrom
2020.12.27 08:39:12 5: Hausstrom: ResetExpect for HandleResponse from response to idle
RaspberryPi 4 Bullseye,Homematic,Z-Wave,Rademacher Duofern,Signalduino,Fritz7590,ESPEasy,Tasmota,Robonect,Kameras,1-Wire,Modbus,Solar,Maranz,VU+,ulanzi tc001 mit awtrix light

StefanStrobel

Ja, dein Format String %.1f % ist ungültig.

Du müsstest das letzte % verdoppeln.

Gruß
    Stefan

Funnel

Hallo Stefan,

ich habe noch ein Problem mit dem Modbus-Modul gefunden: Das polldelay Attribut hat in dem von mir benutzten Setup keinerlei Auswirkung, es wird immer in dem Intervall aus dem define gepollt.

Internals:
   DEF        1 30 192.168.2.113:502 TCP
   DeviceName 192.168.2.113:502
   EXPECT     idle
   FD         9
   FUUID      5fe72a85-f33f-2788-89fd-f6a4cdbfcb141377
   IODev      Sungrow
   Interval   30
   LASTOPEN   1609160034.13962
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.3.8 - 25.12.2020
   NAME       Sungrow
   NOTIFYDEV  global
   NR         390
   NTFY_ORDER 50-Sungrow
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TYPE       ModbusAttr
   devioLoglevel 4
   nextOpenDelay 60
   Helper:
     DBLOG:
       Battery_Level:
         myDbLog:
           TIME       1609160009.39626
           VALUE      38
       DC_Power:
         myDbLog:
           TIME       1609160009.14658
           VALUE      243
   OLDREADINGS:
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2020-12-28 13:53:29   Battery_Level   38
     2020-12-28 13:53:29   DC_Power        243
     2020-12-28 13:53:29   Total_Energy    56600
     2020-12-28 13:53:29   Yearly_Energy   000000000000000000000000000000000000000002360000000000000000
     2020-12-28 13:53:54   state           opened
   REMEMBER:
     lid        1
     lname      Sungrow
     lrecv      1609160009.38946
     lsend      1609160009.38685
   defptr:
     Sungrow    1
   gotReadings:
     Battery_Level 38
   lastRead:
     h13023     1608986661.47167
     i13022     1609160009.39495
     i13023     1608986841.46699
     i5016      1609160009.14469
     i5060      1609014688.44647
     i6249      1609160009.27496
Attributes:
   DbLogInclude DC_Power,Battery_Level
   closeAfterResponse 0
   dev-i-defPoll 1
   dev-type-U16-expr $val/10
   dev-type-U16-len 1
   dev-type-U16-unpack n
   dev-type-U32-len 2
   dev-type-U32-revRegs 0
   disable    0
   icon       sani_solar
   obj-i13022-reading Battery_Level
   obj-i13022-type U16
   obj-i5016-reading DC_Power
   obj-i5016-type U32
   obj-i6249-len 30
   obj-i6249-polldelay 3600
   obj-i6249-reading Yearly_Energy
   obj-i6249-unpack H60
   room       Keller
   silentReconnect 1
   userReadings Total_Energy {SungrowTotalEnergy(ReadingsVal("Sungrow","Yearly_Energy",0))}
   verbose    5


request: id 1, read fc 4 i6249, len 30, tid 213, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.12 secs ago, sent 0.01 secs ago,
response: id 1, fc 4 i6249, len 30, value 000000000000000000000000000000000000000002360000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.28 13:57:29 5: Sungrow: DropFrame - drop 00d50000003f01043c000000000000000000000000000000000000000002360000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.28 13:57:29 5: Sungrow: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2020.12.28 13:57:29 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 6, master device Sungrow, reading Battery_Level (getUpdate), queued 0.12 secs ago
2020.12.28 13:57:29 5: Sungrow: checkDelays sendDelay, last send to same device was 0.012 secs ago, required delay is 0.1
2020.12.28 13:57:29 5: Sungrow: checkDelays commDelay, last communication with same device was 0.008 secs ago, required delay is 0.1
2020.12.28 13:57:29 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.008 secs ago, required delay is 0
2020.12.28 13:57:29 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.28 13:57:29 4: Sungrow: checkDelays found commDelay not over, set timer to try again in 0.092
2020.12.28 13:57:29 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 6, master device Sungrow, reading Battery_Level (getUpdate), queued 0.22 secs ago
2020.12.28 13:57:29 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.104 secs ago, required delay is 0
2020.12.28 13:57:29 5: Sungrow: checkDelays commDelay, last communication with same device was 0.104 secs ago, required delay is 0.1
2020.12.28 13:57:29 5: Sungrow: checkDelays sendDelay, last send to same device was 0.108 secs ago, required delay is 0.1
2020.12.28 13:57:29 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.28 13:57:29 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 1, sending 000600000006010432de0001 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 6, master device Sungrow, reading Battery_Level (getUpdate), queued 0.22 secs ago
2020.12.28 13:57:29 5: Sungrow: Send called from ProcessRequestQueue
2020.12.28 13:57:29 5: SW: 000600000006010432de0001
2020.12.28 13:57:29 5: Sungrow: read buffer: 0006000000050104020187
2020.12.28 13:57:29 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.28 13:57:29 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 6, dlen 5 and data 020187
2020.12.28 13:57:29 5: Sungrow: HandleResponse called from ReadFn
2020.12.28 13:57:29 5: Sungrow: ParseResponse called from HandleResponse
2020.12.28 13:57:29 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.28 13:57:29 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.28 13:57:29 5: Sungrow: ParseObj called with data hex 0187, type i, adr 13022, valuesLen 1, op read
2020.12.28 13:57:29 5: Sungrow: ParseObj unpacked 0187 with n to 391
2020.12.28 13:57:29 5: Sungrow: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val/10 to 39.1
2020.12.28 13:57:29 4: Sungrow: ParseObj assigns value 39.1 to Battery_Level
2020.12.28 13:57:29 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.28 13:57:29 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.28 13:57:29 4: Sungrow: HandleResponse done, current frame / read buffer: 0006000000050104020187, id 1, fCode 4, tid 6,
request: id 1, read fc 4 i13022, len 1, tid 6, master device Sungrow, reading Battery_Level (getUpdate), queued 0.24 secs ago, sent 0.02 secs ago,
response: id 1, fc 4 i13022, len 1, value 0187
2020.12.28 13:57:29 5: Sungrow: DropFrame - drop 0006000000050104020187


Gruß
Thomas





pejonp

Zitat von: StefanStrobel am 25 Dezember 2020, 20:29:08
Hallo,

hier nochmal eine neue Version mit der Bitte diese zu testen.
Wenn keine neuen Probleme auftreten, würde ich sie demnächst einchecken.
Utils.pm gehört ins Verzeichnis lib/FHEM/HTTPMOD und wird erst beim Neustart von Fhem geladen.

Gruss
   Stefan

Hallo Stefan,

habe die neuen Module auch bei mir getestet. Muste nur noch eine Anpasung machen -->   Modbus::InitializeLD($hash). Jetzt läuft es aber, Zumindestens bei mir.

Jörg
LaCrossGW 868MHz:WT470+TFA+TX37-IT+EMT7110+W136+WH25A HP1003+WH2621
SignalD(CC1101):Bresser+WS-0101(868MHz WH1080)+Velux KLF200+MAX!+HM-MOD-UART:Smoke HM-SEC-SD+VITOSOLIC 200 RESOL VBUS-LAN+SolarEdge SE5K(Modbus)+Sonnen!eco8(10kWh)+TD3511+DRT710M(Modbus)+ZigBee+Z-Wave+MQTT+vitoconnect

Funnel

Hallo Stefan,

leider hat sich der Modbus im "passive listening" Modus doch noch einmal aufgehangen, mehr als diesen kurzen Ausschnitt des Logs habe ich leider nicht:

016400081020fe0310fffffff0ffffffd100000029ffffffea9d9efe03016400081020fe0310fffffff4ffffffd800000024fffffff19480fe03016400081020fe0310fffffff5ffffffdc0000002bfffffffb70c7fe03016400081020fe0310fffffffbffffffdc00000029ffffffff1e4afe03016400081020fe0310f
ffffffbffffffdb000000300000000425effe03016400081020fe0310fffffffdffffffde0000002e00000007fb7afe03016400081020fe0310ffffffffffffffdc0000002f00000009595cfe03016400081020fe0310fffffffdffffffe100000033000000104287fe03016400081020fe031000000000ffffffe10000
0033000000131035fe03016400081020fe031000000000ffffffe20000003300000016c4c6fe03016400081020fe031000000001ffffffe40000003400000018d9e3fe03016400081020fe031000000001ffffffe4000000370000001c9c20fe03016400081020fe031000000003ffffffe6000000360000001fffc3fe0
3016400081020fe031000000004ffffffe600000037000000214894fe03016400081020fe031000000004ffffffe70000003a000000256906fe03016400081020fe031000000006ffffffe800000038000000261675fe03016400081020fe031000000007ffffffe90000003900000028a560fe03016400081020fe0310
00000006ffffffe900000039000000296621fe03016400081020fe031000000006ffffffe800000038000000261675fe03016400081020fe031000000004ffffffe600000038000000239d54fe03016400081020fe031000000000ffffffe50000003300000019a2f2fe03016400081020fe031000000000ffffffe5000
0003200000016df36fe03016400081020fe0310fffffffeffffffde000000310000000c2abcfe03016400081020fe0310fffffffaffffffdf0000002f00000007c06dfe03016400081020fe0310fffffffdffffffd90000003000000000348afe03016400081020fe0310fffffffaffffffd70000002bfffffffd97fafe
03016400081020fe0310fffffff4ffffffda0000002dfffffffbd1e6fe03016400081020fe0310fffffff3ffffffd80000002bfffffff68a04fe03016400081020fe0310fffffff8ffffffd800000025fffffff5b94ffe03016400081020fe0310fffffffaffffffd200000025fffffff1c16efe03016400081020fe031
0ffffffefffffffd900000025ffffffed8102fe03016400081020fe0310fffffff5ffffffd000000028ffffffede009fe03016400081020fe0310ffffffedffffffd00000002bffffffe845d2fe03016400081020fe0310fffffff6ffffffd00000001fffffffe511c8fe03016400081020fe0310ffffffefffffffcd00
000027ffffffe4c7c4fe03016400081020fe0310ffffffedffffffd600000020ffffffe38a74fe03016400081020fe0310ffffffe9ffffffce0000002cffffffe33ef1fe03016400081020fe0310fffffff0ffffffd60000001affffffe03fadfe03000a000c71c2fe03180000b85a0000b85a000000000000000000000
00000009c7efc2ffe03016400081020fe0310ffffffe8ffffffd700000021ffffffe0f620fe0300610003401afe0306094b0941094bd5f9fe03016400081020fe0310fffffff2ffffffd10000001dffffffe0ab1ffe0300770001201ffe03021384a103fe03016400081020fe0310ffffffeeffffffd60000001effffff
e127b3fe03016400081020fe0310fffffff3ffffffd300000022ffffffe8a53dfe03016400081020fe0310ffffffecffffffd500000029ffffffea8002fe03016400081020fe0310fffffff6ffffffd300000026ffffffef193afe03016400081020fe0310fffffff6ffffffd800000026fffffff5ebc1fe03016400081
020fe0310fffffff7ffffffd600000030fffffffc2ce5fe03016400081020fe0310fffffffbffffffd90000002bffffffff58dafe03016400081020fe0310fffffffaffffffda0000002e0000000142fffe03016400081020fe0310fffffff8ffffffe00000002e000000056edffe03016400081020fe0310fffffffcff
ffffdd0000003100000009f90dfe03016400081020fe0310fffffffbffffffdf000000330000000c52e9fe03016400081020fe031000000000ffffffdf00000033000000118995fe03016400081020fe0310fffffffeffffffe100000034000000127345fe03016400081020fe0310fffffffcffffffe30000003300000
0159965fe03016400081020fe0310ffffffffffffffe300000034000000152966fe0301640008
2020.12.28 18:01:02 4: RS485_P3: SkipGarbageCheck special feature without given id
2020.12.28 18:01:02 4: RS485_P3: SkipGarbageCheck found potential id 254 at 0
2020.12.28 18:01:02 4: RS485_P3: ParseFrameStart (RTU) extracted id 254, fCode 0 and data 000000e883fe03016400081020fe031000000007ffffffe80000000effffffff5cbefe03016400081020fe03100000001bffffffe7fffffffcffffffff5fc3fe03016400081020fe03100000000dfffff
ff3fffffffefffffffe2f95fe03016400081020fe031000000019ffffffdd00000009ffffffffaa31fe03016400081020fe03100000001bffffffe9fffffffc000000001237fe03016400081020fe03100000000cfffffff300000000000000009090fe03016400081020fe03100000001bffffffde0000000600000000
ec16fe03016400081020fe031000000013ffffffee00000000000000002f5ffe03016400081020fe031000000017ffffffdd0000000afffffffff8bffe03016400081020fe031000000019ffffffe7fffffffdfffffffde480fe03016400081020fe03100000000affffffef00000002fffffffdf803fe0301640008102
0fe03100000001bffffffe300000000fffffffea8d3fe03016400081020fe03100000000ffffffff1ffffffffffffffffcdb7fe03016400081020fe031000000017ffffffda0000000f00000000131bfe03016400081020fe03100000001dffffffe4ffffffff000000000761fe03016400081020fe03100000000cffff
ffe300000010000000009c93fe03016400081020fe03100000001cffffffdc0000000700000000c3f1fe03016400081020fe03100000001affffffeafffffffc000000000446fe03016400081020fe03100000000bffffffe40000001000000000b1e4fe03016400081020fe03100000001cffffffde00000004fffffff
f9f05fe03016400081020fe03100000000bfffffff300000000000000009bd7fe03016400081020fe031000000009ffffffe40000001300000000f2a6fe03016400081020fe03100000001affffffda0000000b00000000f196fe03016400081020fe03100000000dfffffff20000000100000000a241fe030164000810
20fe031000000009ffffffe5000000110000000086f6fe03016400081020fe03100000001effffffe4fffffffcfffffffe86f6fe03016400081020fe03100000000dfffffff3ffffffffffffffffd395fe03016400081020fe031000000006ffffffe800000010fffffffff63dfe03016400081020fe03100000001ffff
fffe2fffffffdfffffffe9217fe03000a000c71c2fe03180000b8590000b85900000000000000000000000000009c7d7fedfe03016400081020fe031000000006ffffffe200000015fffffffe855dfe0300610003401afe030609410941094b4df8fe03016400081020fe03100000001effffffe2fffffffeffffffff15
56fe0300770001201ffe0302138560c3fe03016400081020fe031000000016ffffffdc0000000bfffffffd4baffe03016400081020fe031000000013fffffff2fffffff7fffffffd961bfe03016400081020fe031000000005fffffff100000006fffffffd9c6cfe03016400081020fe031000000008ffffffe00000001
5fffffffe8ab3fe03016400081020fe03100000001cffffffe6fffffffbfffffffd6d15fe03016400081020fe03100000000dfffffff2fffffffefffffffd6204fe03016400081020fe031000000013ffffffdb00000010ffffffff8459fe03016400081020fe03100000001affffffe4000000010000000071f6fe0301
6400081020fe031000000017ffffffde0000000a00000000eddbfe03016400081020fe03100000001dffffffe6fffffffd0000000067c1fe03016400081020fe03100000000efffffff300000001000000016bd2fe03016400081020fe03100000001cffffffdf000000070000000256c0fe03016400081020fe0310000
0001bffffffebfffffffc00


Eventuell kannst du damit was anfangen.

Gruß
Thomas

StefanStrobel

Hallo Thomas,

zum pollDelay: leider enthält der von Dir gepostete Log-Ausschnitt den relevanten Teil nicht.
Ein paar Zeilen früher (Beginn von GetUpdate) wäre vermutlich zu sehen gewesen, warum i6249 abgefragt wird.
Ich versuche das mal nachzustellen. Falls Du das Log noch hast, wäre das aber schneller zu klären ;-)

zum passiven Modus:
Ich habe noch ein paar weitere Optimierungen für den speziellen Fall bei Dir eingebaut (wenn ein Master den Request innerhalb kurzer Zeit mehrfach wiederholt).
Das poste ich sobald ich noch ein paar weitere Änderungen und Tests gemacht habe.

Gruss
   Stefan



Funnel

Hallo Stefan,
hier ein weiteres Log zum Thema pollDelay:

2020.12.29 17:22:44 5: Sungrow: UpdateSetList: setList=reconnect:noArg saveAsModule createAttrsFromParseInfo interval reread:noArg stop:noArg start:noArg close:noArg scanStop:noArg scanModbusObjects inactive active
2020.12.29 17:22:44 5: Sungrow: UpdateSetList: getList=
2020.12.29 17:22:44 5: Sungrow: GetUpdate called from Fhem internal timer
2020.12.29 17:22:44 4: Sungrow: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 30.0 sec at 2020-12-29 17:23:14, interval 30
2020.12.29 17:22:44 5: Sungrow: GetUpdate objects from attributes: i5016 i6249 i13022
2020.12.29 17:22:44 5: Sungrow: GetUpdate full object list: i13022 i5016 i6249
2020.12.29 17:22:44 5: Sungrow: GetUpdate check i13022 => Battery_Level, poll = 1, last = 1609258935.20449
2020.12.29 17:22:44 4: Sungrow: GetUpdate will request Battery_Level
2020.12.29 17:22:44 5: Sungrow: GetUpdate check i5016 => DC_Power, poll = 1, last = 1609258934.99081
2020.12.29 17:22:44 4: Sungrow: GetUpdate will request DC_Power
2020.12.29 17:22:44 5: Sungrow: GetUpdate check i6249 => Yearly_Energy, poll = 1, last = 1609258935.09667
2020.12.29 17:22:44 4: Sungrow: GetUpdate will skip Yearly_Energy, delay not over
2020.12.29 17:22:44 5: Sungrow: GetUpdate tries to combine read commands
2020.12.29 17:22:44 5: Sungrow: GetUpdate cant combine request for DC_Power / i5016 with Yearly_Energy / i6249, span 1263 > max 1
2020.12.29 17:22:44 5: Sungrow: GetUpdate cant combine request for Yearly_Energy / i6249 with Battery_Level / i13022, span 6774 > max 1
2020.12.29 17:22:44 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 216, master device Sungrow, reading DC_Power (getUpdate)
2020.12.29 17:22:44 5: Sungrow: QueueRequest called from DoRequest with i5016, qlen 0 from master Sungrow through io device Sungrow
2020.12.29 17:22:44 5: Sungrow: ProcessRequestQueue called from QueueRequest as direct:Sungrow, qlen 1, request: request: id 1, read fc 4 i5016, len 2, tid 216, master device Sungrow, reading DC_Power (getUpdate), queued 0.00 secs ago
2020.12.29 17:22:44 5: Sungrow: checkDelays sendDelay, last send to same device was 29.776 secs ago, required delay is 0.1
2020.12.29 17:22:44 5: Sungrow: checkDelays commDelay, last communication with same device was 29.774 secs ago, required delay is 0.1
2020.12.29 17:22:44 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:22:44 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 29.774 secs ago, required delay is 0
2020.12.29 17:22:44 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 1, sending 00d800000006010413980002 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 216, master device Sungrow, reading DC_Power (getUpdate), queued 0.01 secs ago
2020.12.29 17:22:44 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:22:44 5: SW: 00d800000006010413980002
2020.12.29 17:22:44 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i6249, len 30, tid 182, master device Sungrow, reading Yearly_Energy (getUpdate)
2020.12.29 17:22:44 5: Sungrow: QueueRequest called from DoRequest with i6249, qlen 0 from master Sungrow through io device Sungrow
2020.12.29 17:22:44 5: Sungrow: StartQueueTimer called from QueueRequest sets internal timer to process queue in 0.000 seconds
2020.12.29 17:22:44 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 19, master device Sungrow, reading Battery_Level (getUpdate)
2020.12.29 17:22:44 5: Sungrow: QueueRequest called from DoRequest with i13022, qlen 1 from master Sungrow through io device Sungrow
2020.12.29 17:22:44 5: Sungrow: read buffer: 00d80000000701040400000000
2020.12.29 17:22:44 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:22:44 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 216, dlen 7 and data 0400000000
2020.12.29 17:22:44 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:22:44 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:22:44 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:22:44 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:22:44 5: Sungrow: ParseObj called with data hex 00000000, type i, adr 5016, valuesLen 2, op read
2020.12.29 17:22:45 5: Sungrow: ParseObj unpacked 00000000 with n to 0
2020.12.29 17:22:45 4: Sungrow: ParseObj assigns value 0 to DC_Power
2020.12.29 17:22:45 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:22:45 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:22:45 4: Sungrow: HandleResponse done, current frame / read buffer: 00d80000000701040400000000, id 1, fCode 4, tid 216,
request: id 1, read fc 4 i5016, len 2, tid 216, master device Sungrow, reading DC_Power (getUpdate), queued 0.03 secs ago, sent 0.03 secs ago,
response: id 1, fc 4 i5016, len 2, value 00000000
2020.12.29 17:22:45 5: Sungrow: DropFrame - drop 00d80000000701040400000000
2020.12.29 17:22:45 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 2, request: request: id 1, read fc 4 i6249, len 30, tid 182, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.03 secs ago
2020.12.29 17:22:45 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:22:45 5: Sungrow: checkDelays commDelay, last communication with same device was 0.012 secs ago, required delay is 0.1
2020.12.29 17:22:45 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.012 secs ago, required delay is 0
2020.12.29 17:22:45 5: Sungrow: checkDelays sendDelay, last send to same device was 0.028 secs ago, required delay is 0.1
2020.12.29 17:22:45 4: Sungrow: checkDelays found commDelay not over, set timer to try again in 0.088
2020.12.29 17:22:45 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 2, request: request: id 1, read fc 4 i6249, len 30, tid 182, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.12 secs ago
2020.12.29 17:22:45 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.104 secs ago, required delay is 0
2020.12.29 17:22:45 5: Sungrow: checkDelays commDelay, last communication with same device was 0.104 secs ago, required delay is 0.1
2020.12.29 17:22:45 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:22:45 5: Sungrow: checkDelays sendDelay, last send to same device was 0.120 secs ago, required delay is 0.1
2020.12.29 17:22:45 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 2, sending 00b60000000601041869001e via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i6249, len 30, tid 182, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.12 secs ago
2020.12.29 17:22:45 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:22:45 5: SW: 00b60000000601041869001e
2020.12.29 17:22:45 5: Sungrow: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2020.12.29 17:22:45 5: Sungrow: read buffer: 00b60000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:22:45 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:22:45 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 182, dlen 63 and data 3c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:22:45 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:22:45 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:22:45 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:22:45 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:22:45 5: Sungrow: ParseObj called with data hex 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000, type i, adr 6249, valuesLen 30, op read
2020.12.29 17:22:45 5: Sungrow: ParseObj unpacked 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000 with H60 to 000000000000000000000000000000000000000002430000000000000000
2020.12.29 17:22:45 4: Sungrow: ParseObj assigns value 000000000000000000000000000000000000000002430000000000000000 to Yearly_Energy
2020.12.29 17:22:45 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:22:45 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:22:45 4: Sungrow: HandleResponse done, current frame / read buffer: 00b60000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000, id 1, fCode 4, tid 182,
request: id 1, read fc 4 i6249, len 30, tid 182, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.15 secs ago, sent 0.03 secs ago,
response: id 1, fc 4 i6249, len 30, value 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:22:45 5: Sungrow: DropFrame - drop 00b60000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:22:45 5: Sungrow: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2020.12.29 17:22:45 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 19, master device Sungrow, reading Battery_Level (getUpdate), queued 0.15 secs ago
2020.12.29 17:22:45 5: Sungrow: checkDelays commDelay, last communication with same device was 0.022 secs ago, required delay is 0.1
2020.12.29 17:22:45 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:22:45 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.022 secs ago, required delay is 0
2020.12.29 17:22:45 5: Sungrow: checkDelays sendDelay, last send to same device was 0.028 secs ago, required delay is 0.1
2020.12.29 17:22:45 4: Sungrow: checkDelays found commDelay not over, set timer to try again in 0.078
2020.12.29 17:22:45 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 19, master device Sungrow, reading Battery_Level (getUpdate), queued 0.23 secs ago
2020.12.29 17:22:45 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.105 secs ago, required delay is 0
2020.12.29 17:22:45 5: Sungrow: checkDelays commDelay, last communication with same device was 0.105 secs ago, required delay is 0.1
2020.12.29 17:22:45 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:22:45 5: Sungrow: checkDelays sendDelay, last send to same device was 0.111 secs ago, required delay is 0.1
2020.12.29 17:22:45 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 1, sending 001300000006010432de0001 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 19, master device Sungrow, reading Battery_Level (getUpdate), queued 0.24 secs ago
2020.12.29 17:22:45 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:22:45 5: SW: 001300000006010432de0001
2020.12.29 17:22:45 5: Sungrow: read buffer: 0013000000050104020130
2020.12.29 17:22:45 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:22:45 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 19, dlen 5 and data 020130
2020.12.29 17:22:45 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:22:45 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:22:45 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:22:45 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:22:45 5: Sungrow: ParseObj called with data hex 0130, type i, adr 13022, valuesLen 1, op read
2020.12.29 17:22:45 5: Sungrow: ParseObj unpacked 0130 with n to 304
2020.12.29 17:22:45 5: Sungrow: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val/10 to 30.4
2020.12.29 17:22:45 4: Sungrow: ParseObj assigns value 30.4 to Battery_Level
2020.12.29 17:22:45 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:22:45 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:22:45 4: Sungrow: HandleResponse done, current frame / read buffer: 0013000000050104020130, id 1, fCode 4, tid 19,
request: id 1, read fc 4 i13022, len 1, tid 19, master device Sungrow, reading Battery_Level (getUpdate), queued 0.26 secs ago, sent 0.03 secs ago,
response: id 1, fc 4 i13022, len 1, value 0130
2020.12.29 17:22:45 5: Sungrow: DropFrame - drop 0013000000050104020130
2020.12.29 17:23:00 4: 192.168.2.113:502 disconnected, waiting to reappear (Sungrow)
2020.12.29 17:23:01 5: Sungrow: open called from ReadyFn, busyOpenDev 0
2020.12.29 17:23:01 4: Sungrow: open trying to open connection to 192.168.2.113:502
2020.12.29 17:23:01 5: HttpUtils url=http://192.168.2.113:502/
2020.12.29 17:23:01 4: IP: 192.168.2.113 -> 192.168.2.113
2020.12.29 17:23:01 4: 192.168.2.113:502 reappeared (Sungrow)
2020.12.29 17:23:01 4: Sungrow: UpdateTimer called from OpenCB with cmd start sets timer to call update function in 13.9 sec at 2020-12-29 17:23:14, interval 30
2020.12.29 17:23:14 5: Sungrow: GetUpdate called from Fhem internal timer
2020.12.29 17:23:14 4: Sungrow: UpdateTimer called from GetUpdate with cmd next sets timer to call update function in 30.0 sec at 2020-12-29 17:23:44, interval 30
2020.12.29 17:23:14 5: Sungrow: GetUpdate objects from attributes: i5016 i6249 i13022
2020.12.29 17:23:14 5: Sungrow: GetUpdate full object list: i13022 i5016 i6249
2020.12.29 17:23:14 5: Sungrow: GetUpdate check i13022 => Battery_Level, poll = 1, last = 1609258965.23821
2020.12.29 17:23:14 4: Sungrow: GetUpdate will request Battery_Level
2020.12.29 17:23:14 5: Sungrow: GetUpdate check i5016 => DC_Power, poll = 1, last = 1609258965.00175
2020.12.29 17:23:14 4: Sungrow: GetUpdate will request DC_Power
2020.12.29 17:23:14 5: Sungrow: GetUpdate check i6249 => Yearly_Energy, poll = 1, last = 1609258965.12355
2020.12.29 17:23:14 4: Sungrow: GetUpdate will skip Yearly_Energy, delay not over
2020.12.29 17:23:14 5: Sungrow: GetUpdate tries to combine read commands
2020.12.29 17:23:14 5: Sungrow: GetUpdate cant combine request for DC_Power / i5016 with Yearly_Energy / i6249, span 1263 > max 1
2020.12.29 17:23:14 5: Sungrow: GetUpdate cant combine request for Yearly_Energy / i6249 with Battery_Level / i13022, span 6774 > max 1
2020.12.29 17:23:14 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 194, master device Sungrow, reading DC_Power (getUpdate)
2020.12.29 17:23:14 5: Sungrow: QueueRequest called from DoRequest with i5016, qlen 0 from master Sungrow through io device Sungrow
2020.12.29 17:23:14 5: Sungrow: ProcessRequestQueue called from QueueRequest as direct:Sungrow, qlen 1, request: request: id 1, read fc 4 i5016, len 2, tid 194, master device Sungrow, reading DC_Power (getUpdate), queued 0.00 secs ago
2020.12.29 17:23:14 5: Sungrow: checkDelays sendDelay, last send to same device was 29.741 secs ago, required delay is 0.1
2020.12.29 17:23:14 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:23:14 5: Sungrow: checkDelays commDelay, last communication with same device was 29.737 secs ago, required delay is 0.1
2020.12.29 17:23:14 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 29.737 secs ago, required delay is 0
2020.12.29 17:23:14 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 1, sending 00c200000006010413980002 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i5016, len 2, tid 194, master device Sungrow, reading DC_Power (getUpdate), queued 0.00 secs ago
2020.12.29 17:23:14 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:23:14 5: SW: 00c200000006010413980002
2020.12.29 17:23:14 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i6249, len 30, tid 40, master device Sungrow, reading Yearly_Energy (getUpdate)
2020.12.29 17:23:14 5: Sungrow: QueueRequest called from DoRequest with i6249, qlen 0 from master Sungrow through io device Sungrow
2020.12.29 17:23:14 5: Sungrow: StartQueueTimer called from QueueRequest sets internal timer to process queue in 0.000 seconds
2020.12.29 17:23:14 4: Sungrow: DoRequest called from GetUpdate created new request, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 200, master device Sungrow, reading Battery_Level (getUpdate)
2020.12.29 17:23:14 5: Sungrow: QueueRequest called from DoRequest with i13022, qlen 1 from master Sungrow through io device Sungrow
2020.12.29 17:23:14 5: Sungrow: read buffer: 00c20000000701040400000000
2020.12.29 17:23:14 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:23:14 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 194, dlen 7 and data 0400000000
2020.12.29 17:23:14 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:23:14 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:23:14 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:23:14 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:23:14 5: Sungrow: ParseObj called with data hex 00000000, type i, adr 5016, valuesLen 2, op read
2020.12.29 17:23:14 5: Sungrow: ParseObj unpacked 00000000 with n to 0
2020.12.29 17:23:14 4: Sungrow: ParseObj assigns value 0 to DC_Power
2020.12.29 17:23:15 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:23:15 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:23:15 4: Sungrow: HandleResponse done, current frame / read buffer: 00c20000000701040400000000, id 1, fCode 4, tid 194,
request: id 1, read fc 4 i5016, len 2, tid 194, master device Sungrow, reading DC_Power (getUpdate), queued 0.04 secs ago, sent 0.04 secs ago,
response: id 1, fc 4 i5016, len 2, value 00000000
2020.12.29 17:23:15 5: Sungrow: DropFrame - drop 00c20000000701040400000000
2020.12.29 17:23:15 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 2, request: request: id 1, read fc 4 i6249, len 30, tid 40, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.02 secs ago
2020.12.29 17:23:15 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:23:15 5: Sungrow: checkDelays commDelay, last communication with same device was 0.011 secs ago, required delay is 0.1
2020.12.29 17:23:15 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.011 secs ago, required delay is 0
2020.12.29 17:23:15 5: Sungrow: checkDelays sendDelay, last send to same device was 0.026 secs ago, required delay is 0.1
2020.12.29 17:23:15 4: Sungrow: checkDelays found commDelay not over, set timer to try again in 0.089
2020.12.29 17:23:15 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 2, request: request: id 1, read fc 4 i6249, len 30, tid 40, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.12 secs ago
2020.12.29 17:23:15 5: Sungrow: checkDelays sendDelay, last send to same device was 0.119 secs ago, required delay is 0.1
2020.12.29 17:23:15 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.104 secs ago, required delay is 0
2020.12.29 17:23:15 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:23:15 5: Sungrow: checkDelays commDelay, last communication with same device was 0.104 secs ago, required delay is 0.1
2020.12.29 17:23:15 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 2, sending 00280000000601041869001e via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i6249, len 30, tid 40, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.12 secs ago
2020.12.29 17:23:15 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:23:15 5: SW: 00280000000601041869001e
2020.12.29 17:23:15 5: Sungrow: StartQueueTimer called from ProcessRequestQueue sets internal timer to process queue in 1.000 seconds
2020.12.29 17:23:15 5: Sungrow: read buffer: 00280000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:23:15 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:23:15 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 40, dlen 63 and data 3c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:23:15 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:23:15 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:23:15 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:23:15 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:23:15 5: Sungrow: ParseObj called with data hex 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000, type i, adr 6249, valuesLen 30, op read
2020.12.29 17:23:15 5: Sungrow: ParseObj unpacked 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000 with H60 to 000000000000000000000000000000000000000002430000000000000000
2020.12.29 17:23:15 4: Sungrow: ParseObj assigns value 000000000000000000000000000000000000000002430000000000000000 to Yearly_Energy
2020.12.29 17:23:15 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:23:15 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:23:15 4: Sungrow: HandleResponse done, current frame / read buffer: 00280000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000, id 1, fCode 4, tid 40,
request: id 1, read fc 4 i6249, len 30, tid 40, master device Sungrow, reading Yearly_Energy (getUpdate), queued 0.14 secs ago, sent 0.02 secs ago,
response: id 1, fc 4 i6249, len 30, value 000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:23:15 5: Sungrow: DropFrame - drop 00280000003f01043c000000000000000000000000000000000000000002430000000000000000000000000000000000000000000000000000000000000000000000000000
2020.12.29 17:23:15 5: Sungrow: StartQueueTimer called from HandleResponse sets internal timer to process queue in 0.000 seconds
2020.12.29 17:23:15 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 200, master device Sungrow, reading Battery_Level (getUpdate), queued 0.14 secs ago
2020.12.29 17:23:15 5: Sungrow: checkDelays sendDelay, last send to same device was 0.019 secs ago, required delay is 0.1
2020.12.29 17:23:15 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:23:15 5: Sungrow: checkDelays commDelay, last communication with same device was 0.014 secs ago, required delay is 0.1
2020.12.29 17:23:15 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.014 secs ago, required delay is 0
2020.12.29 17:23:15 4: Sungrow: checkDelays found commDelay not over, set timer to try again in 0.086
2020.12.29 17:23:15 5: Sungrow: ProcessRequestQueue called from Fhem internal timer as queue:Sungrow, qlen 1, request: request: id 1, read fc 4 i13022, len 1, tid 200, master device Sungrow, reading Battery_Level (getUpdate), queued 0.23 secs ago
2020.12.29 17:23:15 5: Sungrow: checkDelays busDelayRead, last activity on bus  was 0.105 secs ago, required delay is 0
2020.12.29 17:23:15 5: Sungrow: checkDelays commDelay, last communication with same device was 0.105 secs ago, required delay is 0.1
2020.12.29 17:23:15 5: Sungrow: checkDelays clientSwitchDelay is not relevant
2020.12.29 17:23:15 5: Sungrow: checkDelays sendDelay, last send to same device was 0.110 secs ago, required delay is 0.1
2020.12.29 17:23:15 4: Sungrow: ProcessRequestQueue (V4.3.8 - 25.12.2020) qlen 1, sending 00c800000006010432de0001 via 192.168.2.113:502, read buffer empty,
request: id 1, read fc 4 i13022, len 1, tid 200, master device Sungrow, reading Battery_Level (getUpdate), queued 0.23 secs ago
2020.12.29 17:23:15 5: Sungrow: Send called from ProcessRequestQueue
2020.12.29 17:23:15 5: SW: 00c800000006010432de0001
2020.12.29 17:23:15 5: Sungrow: read buffer: 00c8000000050104020130
2020.12.29 17:23:15 5: Sungrow: ParseFrameStart called from ReadFn
2020.12.29 17:23:15 4: Sungrow: ParseFrameStart (TCP) extracted id 1, fCode 4, tid 200, dlen 5 and data 020130
2020.12.29 17:23:15 5: Sungrow: HandleResponse called from ReadFn
2020.12.29 17:23:15 5: Sungrow: ParseResponse called from HandleResponse
2020.12.29 17:23:15 5: Sungrow: HandleResponse now acts on fcode 4, masterhash Sungrow
2020.12.29 17:23:15 5: Sungrow: HandleResponse calls parseObj with master device Sungrow for parsing data
2020.12.29 17:23:15 5: Sungrow: ParseObj called with data hex 0130, type i, adr 13022, valuesLen 1, op read
2020.12.29 17:23:15 5: Sungrow: ParseObj unpacked 0130 with n to 304
2020.12.29 17:23:15 5: Sungrow: perl expression eval evaluated package main; my @val = @{$oRef->{'%val'}};$val/10 to 30.4
2020.12.29 17:23:15 4: Sungrow: ParseObj assigns value 30.4 to Battery_Level
2020.12.29 17:23:15 5: Sungrow: HandleResponse got 1 readings from ParseObj for Sungrow
2020.12.29 17:23:15 5: Sungrow: ResetExpect for HandleResponse from response to idle
2020.12.29 17:23:15 4: Sungrow: HandleResponse done, current frame / read buffer: 00c8000000050104020130, id 1, fCode 4, tid 200,
request: id 1, read fc 4 i13022, len 1, tid 200, master device Sungrow, reading Battery_Level (getUpdate), queued 0.26 secs ago, sent 0.03 secs ago,
response: id 1, fc 4 i13022, len 1, value 0130
2020.12.29 17:23:15 5: Sungrow: DropFrame - drop 00c8000000050104020130
2020.12.29 17:23:15 4: 192.168.2.113:502 disconnected, waiting to reappear (Sungrow)
2020.12.29 17:23:15 5: Sungrow: open called from ReadyFn, busyOpenDev 0
2020.12.29 17:23:15 4: Sungrow: open trying to open connection to 192.168.2.113:502
2020.12.29 17:23:15 5: HttpUtils url=http://192.168.2.113:502/
2020.12.29 17:23:15 4: IP: 192.168.2.113 -> 192.168.2.113
2020.12.29 17:23:15 4: 192.168.2.113:502 reappeared (Sungrow)
2020.12.29 17:23:15 4: Sungrow: UpdateTimer called from OpenCB with cmd start sets timer to call update function in 29.4 sec at 2020-12-29 17:23:44, interval 30
2020.12.29 17:23:31 4: 192.168.2.113:502 disconnected, waiting to reappear (Sungrow)
2020.12.29 17:23:31 5: Sungrow: open called from ReadyFn, busyOpenDev 0
2020.12.29 17:23:31 4: Sungrow: open trying to open connection to 192.168.2.113:502
2020.12.29 17:23:31 5: HttpUtils url=http://192.168.2.113:502/
2020.12.29 17:23:31 4: IP: 192.168.2.113 -> 192.168.2.113
2020.12.29 17:23:31 4: 192.168.2.113:502 reappeared (Sungrow)
2020.12.29 17:23:31 4: Sungrow: UpdateTimer called from OpenCB with cmd start sets timer to call update function in 13.9 sec at 2020-12-29 17:23:44, interval 30


Gruß
Thomas

StefanStrobel

#629
Hallo,

den Fehler beim polldelay habe ich gefunden und hoffentlich behoben. Der ist wohl bei der Überarbeitung in den letzten Monaten reingekommen.
Hier die neueste Version mit weiteren Bugfixes und Überarbeitungen.

Gruss
   Stefan