Probleme beim Auslesen von Sungrow SG8KTL-M Wechselrichter über Modbus

Begonnen von KurtK, 31 Januar 2021, 15:32:42

Vorheriges Thema - Nächstes Thema

KurtK

Hallo zusammen,
so langsam bin ich mit dem oben genannten Wechselrichter am verzweifeln, da ich über FHEM und ModbusAttr keine fehlerfreie Kommunikation zustande bekomme.

Der Wechselrichter ist über einen RS485-Ethernet-Adapter ins Netzwerk eingebunden und die Daten werden auch zuverlässig darüber an die iSolarCloud gemeldet. Nun möchte ich diese Daten aber auch in FHEM über Modbus importieren.

Am PC kann ich mit dem EasyModbusClient die einzelnen Register auch problemlos auslesen. Nur in FHEM bekomme ich bei der Kommunikation die Fehlermeldung, das eine falsche TID vorliegt.

Hier ist das List des ModbusAttr Devices
Internals:
   CFGFN     
   DEF        1 10 192.168.178.36:502 TCP
   DeviceName 192.168.178.36:502
   EXPECT     idle
   FD         14
   FUUID      6016b479-f33f-b427-2bec-12b9eaf1340f241d
   INTERVAL   10
   IODev      SH10rt_Fast
   LASTOPEN   1612103286.38253
   MODBUSID   1
   MODE       master
   MODULEVERSION Modbus 4.1.5 - 17.9.2019
   NAME       SH10rt_Fast
   NOTIFYDEV  global
   NR         671
   NTFY_ORDER 50-SH10rt_Fast
   PARTIAL   
   PROTOCOL   TCP
   STATE      opened
   TCPConn    1
   TRIGGERTIME 1612103306.48738
   TRIGGERTIME_FMT 2021-01-31 15:28:26
   TRIGGERTIME_SAVED
   TYPE       ModbusAttr
   devioLoglevel 3
   lastUpdate 1612103296.48738
   nextOpenDelay 60
   FRAME:
     DATA       v
     FCODE      4
     MODBUSID   1
     PDULEXP    4
     TID        0
   QUEUE:
   READ:
     BUFFER     
   READINGS:
     2021-01-31 15:28:06   state           opened
   REMEMBER:
     lid        1
     lname      SH10rt_Fast
     lrecv      1612103296.78162
     lsend      1612103296.49135
   defptr:
     SH10rt_Fast 1
   lastRead:
Attributes:
   dev-type-S16-unpack s>
   dev-type-S32-len 2
   dev-type-S32-revRegs 1
   dev-type-S32-unpack l>
   dev-type-U32-len 2
   dev-type-U32-revRegs 1
   dev-type-U32-unpack N
   event-on-change-reading .*
   obj-i5007-expr $val/10
   obj-i5007-poll 1
   obj-i5007-reading Inside_Temperature
   obj-i5007-type S16
   userattr   dev-type-S16-unpack dev-type-S32-len dev-type-S32-revRegs dev-type-S32-unpack dev-type-U32-len dev-type-U32-revRegs dev-type-U32-unpack obj-i5007-expr obj-i5007-poll obj-i5007-reading obj-i5007-type obj-i5008-expr obj-i5008-poll obj-i5008-reading obj-i5008-type
   verbose    4


Als Fehlermeldung erhalte ich folgendes:

2021.01.31 15:28:46 4 : SH10rt_Fast: GetUpdate will request Inside_Temperature
2021.01.31 15:28:46 4 : SH10rt_Fast: DoRequest called from GetUpdate created request: id 1, fCode 4, tid 118, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), read buffer empty, Id 1, fCode 4, tid 0
2021.01.31 15:28:46 4 : SH10rt_Fast: ProcessRequestQueue called from QueueRequest, qlen 1, next entry to id 1 (SH10rt_Fast), last send to this device was 10.038 secs ago, last read 9.976 secs ago, last read on bus 9.976 secs ago from id 1 (SH10rt_Fast)
2021.01.31 15:28:46 4 : SH10rt_Fast: ProcessRequestQueue (V4.1.5 - 17.9.2019) qlen 1, sending 0076000000060104138f0001 request: id 1, fCode 4, tid 118, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.00 secs ago, read buffer empty, Id 1, fCode 4, tid 0
2021.01.31 15:28:46 4 : SH10rt_Fast: ParseFrameStart (TCP) extracted id 1, fCode 4, dlen 5 and data 020176
2021.01.31 15:28:46 4 : SH10rt_Fast: ResponseDone with error: TID 0 in Modbus TCP response does not match request TID 118 request: id 1, fCode 4, tid 118, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.23 secs ago, sent 0.23 secs ago, Current read buffer: 0000000000050104020176, Id 1, fCode 4, tid 0, response: id 1, fCode 4, type i, adr 5007, len 1, value 0176, error: TID 0 in Modbus TCP response does not match request TID 118
2021.01.31 15:28:56 4 : SH10rt_Fast: GetUpdate will request Inside_Temperature
2021.01.31 15:28:56 4 : SH10rt_Fast: DoRequest called from GetUpdate created request: id 1, fCode 4, tid 85, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), read buffer empty
2021.01.31 15:28:56 4 : SH10rt_Fast: ProcessRequestQueue called from QueueRequest, qlen 1, next entry to id 1 (SH10rt_Fast), last send to this device was 10.026 secs ago, last read 9.804 secs ago, last read on bus 9.804 secs ago from id 1 (SH10rt_Fast)
2021.01.31 15:28:56 4 : SH10rt_Fast: ProcessRequestQueue (V4.1.5 - 17.9.2019) qlen 1, sending 0055000000060104138f0001 request: id 1, fCode 4, tid 85, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.00 secs ago, read buffer empty
2021.01.31 15:28:56 4 : SH10rt_Fast: ParseFrameStart (TCP) extracted id 1, fCode 4, dlen 5 and data 020176
2021.01.31 15:28:56 4 : SH10rt_Fast: ResponseDone with error: TID 0 in Modbus TCP response does not match request TID 85 request: id 1, fCode 4, tid 85, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.10 secs ago, sent 0.10 secs ago, Current read buffer: 0000000000050104020176, Id 1, fCode 4, tid 0, response: id 1, fCode 4, type i, adr 5007, len 1, value 0176, error: TID 0 in Modbus TCP response does not match request TID 85
2021.01.31 15:29:06 4 : SH10rt_Fast: GetUpdate will request Inside_Temperature
2021.01.31 15:29:06 4 : SH10rt_Fast: DoRequest called from GetUpdate created request: id 1, fCode 4, tid 134, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), read buffer empty
2021.01.31 15:29:06 4 : SH10rt_Fast: ProcessRequestQueue called from QueueRequest, qlen 1, next entry to id 1 (SH10rt_Fast), last send to this device was 10.069 secs ago, last read 9.968 secs ago, last read on bus 9.968 secs ago from id 1 (SH10rt_Fast)
2021.01.31 15:29:06 4 : SH10rt_Fast: ProcessRequestQueue (V4.1.5 - 17.9.2019) qlen 1, sending 0086000000060104138f0001 request: id 1, fCode 4, tid 134, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.00 secs ago, read buffer empty
2021.01.31 15:29:06 4 : SH10rt_Fast: ParseFrameStart (TCP) extracted id 1, fCode 4, dlen 5 and data 020176
2021.01.31 15:29:06 4 : SH10rt_Fast: ResponseDone with error: TID 0 in Modbus TCP response does not match request TID 134 request: id 1, fCode 4, tid 134, type i, adr 5007, len 1 for device SH10rt_Fast reading Inside_Temperature (getUpdate), queued 0.24 secs ago, sent 0.24 secs ago, Current read buffer: 0000000000050104020176, Id 1, fCode 4, tid 0, response: id 1, fCode 4, type i, adr 5007, len 1, value 0176, error: TID 0 in Modbus TCP response does not match request TID 134


Hat wer eine Idee, weshalb die TID hier nicht übereinstimmt? Das Modul schein bei jeder Anfrage eine zufällige ID zu vergeben, worauf der Wechselrichter aber immer mit TID 0 antwortet.

Viele Grüße
- FHEM auf Intel NUC mit Proxmox -
- FTUI mit FUIP -
- HM, Zigbee,  WLAN -

Holzbein

Hallo KurtK,

deine Modbus Version scheint schon etwas älter zu sein, Du hast : MODULEVERSION Modbus 4.1.5 - 17.9.2019.
Mein Sungrow SH8rt arbeitet mit der MODULEVERSION Modbus 4.3.15 - 23.1.2021 ganz ordentlich.

Schon mal ein fhem-Update gemacht? Firmware des WR aktuell?

Gruß
Erhardt

KurtK

Hi Holzbein,

nach dem Update des Modbus-Moduls bestand der Fehler weiterhin.

Abhilfe hat ein Firmwareupdate des Wechselrichters gebracht. Vielen Dank für den Tipp.
Dieses ließ sich tatsächlich nur über die Hotline von Sungrow starten. Benutzerfreundlich ist anders.
- FHEM auf Intel NUC mit Proxmox -
- FTUI mit FUIP -
- HM, Zigbee,  WLAN -