[SOLVED] Modbus binding 2.5.10 issues

All of the errors shown relate to the USR/Nilan path.

Yes. Error handling is time consuming and does just that.

Alright, so what’s gone wrong?

Modbus-TCP is the usual Modbus master-slave, query-response stuff.
Each query generated by openHAB is given a unique ID.
Each response (from the same target IP) is checked to see if has a matching ID.
No match, it’s garbage to be rejected.
What can go wrong - maybe the message is truly all garbage, maybe the target is just horribly out of sync in a sequence.

I would first check in PaperUI to see you have your expected number of TCP Bridge things,in case you’ve managed to generate a duplicate somehow and their messages are getting cross-wired.

If that all looks good, give the USR a kick in the pants and reboot it.

All my things are in the .things file. I havn´t changed anything in that file, (except I tried the timeout and reconnect settings in the brigde settings at top).

I have kicked and rebooted the USR several times.

This is my whole .tings file for the Nilan device:

Bridge modbus:tcp:myNilan [ host="10.4.28.149", port=502, id=30, reconnectAfterMillis=30000, timeBetweenReconnectMillis=3000 ] {

  Bridge poller appRegisters [ start=000, length=4, refresh=6000, type="input" ] {
      Thing data inp000 [ readStart="000", readValueType="int16" ]
      Thing data inp001 [ readStart="001", readValueType="int16" ]
      Thing data inp002 [ readStart="002", readValueType="int16" ]
      Thing data inp003 [ readStart="003", readValueType="int16" ]

   }

  Bridge poller 100Registers [ start=100, length=17, refresh=6000, type="input" ] {
      Thing data inp100 [ readStart="100", readValueType="int16" ]
      Thing data inp101 [ readStart="101", readValueType="int16" ]
      Thing data inp103 [ readStart="103", readValueType="int16" ]
      Thing data inp105 [ readStart="105", readValueType="int16" ]
      Thing data inp106 [ readStart="106", readValueType="int16" ]
      Thing data inp107 [ readStart="107", readValueType="int16" ]
      Thing data inp113 [ readStart="113", readValueType="int16" ]
      Thing data inp114 [ readStart="114", readValueType="int16" ]
      Thing data inp115 [ readStart="115", readValueType="int16" ] 

   }

  Bridge poller inputRegisters [ start=200, length=23, refresh=6000, type="input" ] {
      Thing data inp200 [ readStart="200", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp202 [ readStart="202", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp203 [ readStart="203", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp204 [ readStart="204", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp207 [ readStart="207", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp208 [ readStart="208", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp209 [ readStart="209", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp210 [ readStart="210", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp215 [ readStart="215", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp221 [ readStart="221", readValueType="int16", readTransform="JS(divide100.js)" ]

   }

  Bridge poller 400Registers [ start=400, length=10, refresh=6000, type="input" ] {
      Thing data inp400 [ readStart="400", readValueType="int16" ]
      Thing data inp401 [ readStart="401", readValueType="int16" ]
      Thing data inp402 [ readStart="402", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
      Thing data inp403 [ readStart="403", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
      Thing data inp404 [ readStart="404", readValueType="int16" ]
      Thing data inp405 [ readStart="405", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
      Thing data inp406 [ readStart="406", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
      Thing data inp407 [ readStart="407", readValueType="int16" ]
      Thing data inp408 [ readStart="408", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]
      Thing data inp409 [ readStart="409", readValueType="int16", readTransform="JS(nilan_alarmdate.js)" ]


   }


  Bridge poller statusRegisters [ start=1000, length=4, refresh=6000, type="input" ] {
      Thing data inp1000 [ readStart="1000", readValueType="int16" ]
      Thing data inp1001 [ readStart="1001", readValueType="int16" ]
      Thing data inp1002 [ readStart="1002", readValueType="int16" ]
      Thing data inp1003 [ readStart="1003", readValueType="int16" ]
   }

  Bridge poller airflowRegisters [ start=1100, length=5, refresh=6000, type="input" ] {
      Thing data inp1100 [ readStart="1100", readValueType="int16" ]
      Thing data inp1101 [ readStart="1101", readValueType="int16" ]
      Thing data inp1102 [ readStart="1102", readValueType="int16" ]
      Thing data inp1103 [ readStart="1103", readValueType="int16" ]
      Thing data inp1104 [ readStart="1104", readValueType="int16" ]
   }

  Bridge poller airRegisters [ start=1200, length=7, refresh=6000, type="input" ] {
      Thing data inp1200 [ readStart="1200", readValueType="int16" ]
      Thing data inp1201 [ readStart="1201", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp1202 [ readStart="1202", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp1203 [ readStart="1203", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp1204 [ readStart="1204", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp1205 [ readStart="1205", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data inp1206 [ readStart="1206", readValueType="int16", readTransform="JS(divide100.js)" ]

   }


  Bridge poller displayRegisters [ start=2000, length=12, refresh=6000, type="input" ] {
      Thing data inp2000 [ readStart="2000", readValueType="int16" ]
      Thing data inp2001 [ readStart="2001", readValueType="int16" ]
      Thing data inp2002 [ readStart="2002", readValueType="int16" ]
      Thing data inp2003 [ readStart="2003", readValueType="int16" ]
      Thing data inp2004 [ readStart="2004", readValueType="int16" ]
      Thing data inp2005 [ readStart="2005", readValueType="int16" ]
      Thing data inp2006 [ readStart="2006", readValueType="int16" ]
      Thing data inp2007 [ readStart="2007", readValueType="int16" ]
      Thing data inp2008 [ readStart="2008", readValueType="int16" ]
      Thing data inp2009 [ readStart="2009", readValueType="int16" ]
      Thing data inp2010 [ readStart="2010", readValueType="int16" ]
      Thing data inp2011 [ readStart="2011", readValueType="int16" ]

   }


  Bridge poller holdingRegisters [ start=100, length=28, refresh=6000, type="holding" ] {
      Thing data hol100 [ readStart="100", readValueType="int16" ]
      Thing data hol102 [ readStart="102", readValueType="int16" ]
      Thing data hol103 [ readStart="103", readValueType="int16" ]
      Thing data hol123 [ readStart="123", readValueType="int16", writeStart="123", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol125 [ readStart="125", readValueType="int16", writeStart="125", writeValueType="int16", writeType="holding" ]
      Thing data hol126 [ readStart="126", readValueType="int16", writeStart="126", writeValueType="int16", writeType="holding" ]

   }

  Bridge poller fanRegisters [ start=200, length=3, refresh=6000, type="holding" ] {
      Thing data hol200 [ readStart="200", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data hol201 [ readStart="201", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data hol202 [ readStart="202", readValueType="int16", readTransform="JS(divide100.js)" ]


   }

  Bridge poller timeRegisters [ start=300, length=6, refresh=6000, type="holding" ] {
      Thing data hol300 [ readStart="300", readValueType="int16" ]
      Thing data hol301 [ readStart="301", readValueType="int16" ]
      Thing data hol302 [ readStart="302", readValueType="int16" ]
      Thing data hol303 [ readStart="303", readValueType="int16" ]
      Thing data hol304 [ readStart="304", readValueType="int16" ]
      Thing data hol305 [ readStart="305", readValueType="int16" ]

   }

  Bridge poller ProgSelRegisters [ start=500, length=2, refresh=6000, type="holding" ] {
      Thing data hol500 [ readStart="500", readValueType="int16", writeStart="500", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
 
   }

  Bridge poller ProgUserFuncActRegisters [ start=600, length=7, refresh=6000, type="holding" ] {
      Thing data hol600 [ readStart="600", readValueType="int16", writeStart="600", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol601 [ readStart="601", readValueType="int16", writeStart="601", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol602 [ readStart="602", readValueType="int16", writeStart="602", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol603 [ readStart="603", readValueType="int16", writeStart="603", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol604 [ readStart="604", readValueType="int16", writeStart="604", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol605 [ readStart="605", readValueType="int16", writeStart="605", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
 
   }

  Bridge poller controlRegisters [ start=1001, length=7, refresh=6000, type="holding" ] {
      Thing data hol1001 [ readStart="1001", readValueType="int16", writeStart="1001", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol1002 [ readStart="1002", readValueType="int16", writeStart="1002", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true"  ]
      Thing data hol1003 [ readStart="1003", readValueType="int16", writeStart="1003", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true"  ]
      Thing data hol1004 [ readStart="1004", readValueType="int16", writeStart="1004", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)"  ]
      Thing data hol1005 [ readStart="1005", readValueType="int16" ]
      Thing data hol1006 [ readStart="1006", readValueType="int16", readTransform="JS(divide100.js)" ]
      Thing data hol1007 [ readStart="1007", readValueType="int16" ]

   }

  Bridge poller AirFlowExhMoRegisters [ start=1100, length=2, refresh=6000, type="holding" ] {
      Thing data hol1100 [ readStart="1100", readValueType="int16" ]
      Thing data hol1101 [ readStart="1101", readValueType="int16", writeStart="1101", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]

   }

  Bridge poller AirTempRegisters [ start=1200, length=8, refresh=6000, type="holding" ] {
      Thing data hol1200 [ readStart="1200", readValueType="int16", writeStart="1200", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1201 [ readStart="1201", readValueType="int16", writeStart="1201", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1202 [ readStart="1202", readValueType="int16", writeStart="1202", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1203 [ readStart="1203", readValueType="int16", writeStart="1203", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1204 [ readStart="1204", readValueType="int16", writeStart="1204", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1205 [ readStart="1205", readValueType="int16", writeStart="1205", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
 
   }

 Bridge poller AirQuaRhRegisters [ start=1910, length=4, refresh=6000, type="holding" ] {
      Thing data hol1910 [ readStart="1910", readValueType="int16", writeStart="1910", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol1911 [ readStart="1911", readValueType="int16", writeStart="1911", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]
      Thing data hol1912 [ readStart="1912", readValueType="int16", writeStart="1912", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true", readTransform="JS(divide100.js)", writeTransform="JS(multiply100.js)" ]
      Thing data hol1913 [ readStart="1913", readValueType="int16", writeStart="1913", writeValueType="int16", writeType="holding", writeMultipleEvenWithSingleRegisterOrCoil="true" ]

   }

}

I wonder if the serial cable could be faulty, and the new binding could be more sensitive, (doesnt sound right, but I´m simply out of good ideas here).

Have a look in PaperUI to see you have your expected number of TCP Bridge things.

Not a serial problem, this is about openHAB-gateway communications. I looked hard at the unusual EVEN parity selection, but shrugged, it’s not a serial problem.

Top tip, there is a save config function in its UI somewhere so you could have saved a known working config to your laptop, for restore after fiddling.

If you are convinced it is all openHABs fault, you can use a 3rd party modbus inspector tool in the usual way to address your nilan via the gateway as Modbus-TCP and read a register.

I do. However they are first online and after a few seconds they all goes offline due to the 3 warning and I/O error.
From there things gets messy as some of them come online only to give warning and error and turn to offline again. (this is where my SMA inverters start to poll VERY slow as well).

I´m not fully convinced to be honest… But I´m convinced there is a change from the older binding to this one
And I fear the issue may be relate to either the USR or bad cabling. I have not terminated the serial cable with 120ohm resistance as I should, cause the serial cable is just 5 meters in length. You know… it used to work so why bother :slight_smile:

Honestly, OH has no idea serial is even involved, that’s all the gateway’s business.

All of your TCP Bridge things go offline? Sounds like your network is in trouble. Is this wired or wifi at your host?

User experienced weird issues with USR gateway, telegrams going completely unexpected: Modus Binding crashes after several hours

Eventually he switched to USR-TCP232-410S (same model as you have!) and it resolved all issues…

Have we concluded that only the device behind USR gateway is having trouble or does it also extend to SMA?

My network is all wired

I dont thnik sma has an issue. I thinks its when something mess up on the modbus network it affect my sma devices as well.

IT has been running fine All night with my sma devices only.
So Im pretty sure its the USR gateway.

I run into a problem which looks similar to this one. The error says, that the modbus registers are not reachable. In my case because the values are not there.

I have a modbus to M-BUS adapter. I configured the adapter to read data from M-Bus on poll request. I added some new M-Bus devices and this causes my problem. The adapter takes to long to poll all M-Bus devices and gives an modbus error like you got.

I use a modbus test tool to check availablity of modbus registers every sec. and see the same error with reading modbus registers.

I solved it by configuring my adapter to read values from M-Bus not on request/poll, now in a cycle and my errors are gone.

In the screenshot there is a value “modbusTCP poll” which is not cheked. What does this stands for?

I´m not quite sure as the manual does say. I have tried activate it, and play with the time settings. But it didnt change anything.

Perhaps it is like discussed above and the devices cannot handle modbus queries coming at the “same” time. I mean, current holding registers, input registers etc are polled every 6s but still almost at the same moment.

Please introduce timeBetweenTransactionsMillis=1000 to the tcp thing as a test. Probably good idea to reset device power as well as gateway power

But how come this should have started to become an issue in the 2.5.10 binding, and not before?
My setup has been running for several months without this issue. I only occationally saw ONE timeout reading in every 2-4 minute for the USR gateway.
This seems to have exploded with the latest binding or transport.modbus. The symptoms seems like the binding has become hyper sentivtive for “something is wrong”. And now makes it useless to work with the USR gateway.

I wish I knew modbus better.

I´ll give it a try later when I get back home.

Because things change. Let’s imagine openHAB TCP stack has been improved, and can now pump out queries every 5mS instead of 10mS or something.

I’d leave that alone. The fancier USR gateways are capable of independently polling the serial Modbus devices, and maintaining a data cache in the gateway. A TCP device can come along, issue a read, and get served from cache. For openHAB we can file under “unnecessary error-prone complication”, and I think this is what the parameter refers to.

This is sound advice.

That sounds reasonable. And may well be the cause.

Byt why would I use a tool to check registers on a system which has been running fine. No registers has been changed in the setup?

1 Like

Because you have a problem and it’s not working. You don’t have to do anything about it at all, maybe the pixies will fix it.

In this case, use of a 3rd party tool might confirm that your gateway is basically functional (or not) after having been fiddled about with. Then attention can be focused a bit tighter.

1 Like

I already had this in my bridge setup :frowning:

Huh? I don’t see the parameter here Modbus binding 2.5.10 issues

Can you post full things config just in case please

My bad… I´d mix up timeBetweenReconnecMilis and timeBetweenTransactionsMilis :frowning:
I´ll give it a try now…

Hmm…
It looks like it made it alot worse… Now the error appear even more frequent…

2020-11-06 22:53:45.532 [ERROR] [rt.modbus.internal.ModbusManagerImpl] - Last try 3 failed when executing request (ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]). Aborting. The response did not match the request. Reseting the connection. Error details: org.openhab.io.transport.modbus.exception.ModbusUnexpectedTransactionIdException Transaction id of request (2579) does not equal response (2578). Slave response is invalid. [operation ID 8fab7502-d329-4aa2-9a79-591fd2f7367b]

==> /var/log/openhab2/events.log <==

2020-11-06 22:53:45.543 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol600' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.546 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol601' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.548 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol602' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.552 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol603' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.559 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol604' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.561 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol605' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.562 [hingStatusInfoChangedEvent] - 'modbus:poller:myNilan:ProgUserFuncActRegisters' changed from ONLINE to OFFLINE (COMMUNICATION_ERROR): Error with read: org.openhab.io.transport.modbus.exception.ModbusUnexpectedTransactionIdException: Transaction id of request (2579) does not equal response (2578). Slave response is invalid.

2020-11-06 22:53:45.564 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol600' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

2020-11-06 22:53:45.566 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol601' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

2020-11-06 22:53:45.568 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol602' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

2020-11-06 22:53:45.570 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol604' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

2020-11-06 22:53:45.572 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol605' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

2020-11-06 22:53:45.574 [hingStatusInfoChangedEvent] - 'modbus:data:myNilan:ProgUserFuncActRegisters:hol603' changed from OFFLINE (COMMUNICATION_ERROR): Error (ModbusUnexpectedTransactionIdException) with read. Request: ModbusReadRequestBlueprint@cb9b15[slaveId=30,functionCode=READ_MULTIPLE_REGISTERS,start=600,length=7,maxTries=3]. Description: ModbusUnexpectedTransactionIdException(requestTransactionId=2579, responseTransactionId=2578). Message: Transaction id of request (2579) does not equal response (2578). Slave response is invalid. to OFFLINE (BRIDGE_OFFLINE): No online bridge

I have disabled my two SMA brigde settings while testing this USR connection…

This is my USR bridge connection now:

Bridge modbus:tcp:myNilan [ host="10.4.28.149", port=502, id=30, reconnectAfterMillis=30000, timeBetweenReconnectMillis=1000, timeBetweenTransactionsMillis=1000 ] {

can you give me 30s of logs?

Indeed it looks like the same error still, gateway/slave responds with wrong transaction ID.