Hi there!
I am working on a strange problem. Things and items defined. Config, OH3 and modbus device are working fine - as long as I use just “input” register. At some point I picked a “holding” register from the list and liked to work with that value.
tried a lot. No way to read that holding as 32-bit signed big-endian. start is 230 and length is 2:
Bridge poller holding1 "sailer holding poller 1" [ start=230, length=2, refresh=10000, type="holding" ] {
Thing data water_volume "sailer water-volume (l/min)" [ readStart="230", readValueType="int32" ]
}
activated TRACE:
2023-02-28 18:29:01.335 [TRACE] [rt.modbus.internal.ModbusManagerImpl] - Going execute transaction with request request (FC=READ_MULTIPLE_REGISTERS): 00 00 00 00 00 06 01 03 00 e8 00 02 [operation ID 866e23e6-4691-450f-a9f4-a52993e0af36]
What is a bit irritating:
there is no “transaction identifier” in that data package:
00 00 00 00 00 06 01 03 00 e8 00 02
I used Rapid SCADA Modbus Parser to get more information on that package. I don’t know, if a “transaction identifier” is mandantory for that device.
Using “Modbus poller” with same register everything works perfect for hours. thousands of requests and proper answers.
I also tried “holding” register 232. The same. Not working with openHAB. After some time the modbus device is not responding anymore regarding the input registers. Power cycled that device and then it is working again with the other/input registers.
All logs from the tool “Modbus Poll” show an increasing “transaction identifier”.
Within TRACE of the log there is an “Read timed out”-error:
2023-02-28 18:28:59.329 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusReadRequestBlueprint [slaveId=1, functionCode=READ_MULTIPLE_REGISTERS, start=232, length=2, maxTries=3]). Will try again soon. Error was I/O error, so resetting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: SocketTimeoutException Read timed out [operation ID 866e23e6-4691-450f-a9f4-a52993e0af36]
At this point I would assume, that the device is not answering due to the missing “transaction identifier”. All other information is the same (compared the modbus tcp packages)
I would be very glad if someone could give me an hint how to solve this? Did anyone ever used the modbus tcp binding with a “Sailer FRIWASTA” (‘fresh water station’)?
Thanks,
Dirk