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
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
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.