Hi!
I’m getting connection errors. Everything works but always the first connection attempt gets Connection refused. Updating to newest build didn’t solve this. @ssalonen might rememeber my case but i’ll paste my .things
file also.
modbus.things
Bridge modbus:tcp:endpointTCP [ host="192.168.1.100", port=502, id=2, connectMaxTries=3, timeBetweenTransactionsMillis=100 ] {
Bridge poller coils [ start=2, length=4, refresh=30000, type="coil" ] {
Thing data do2 [ readStart="2", readValueType="bit", writeStart="2", writeValueType="bit", writeType="coil" ]
Thing data do3 [ readStart="3", readValueType="bit", writeStart="3", writeValueType="bit", writeType="coil" ]
Thing data do4 [ readStart="4", readValueType="bit", writeStart="4", writeValueType="bit", writeType="coil" ]
Thing data do5 [ readStart="5", readValueType="bit", writeStart="5", writeValueType="bit", writeType="coil" ]
}
Bridge poller holding [ start=0, length=14, refresh=30000, type="holding" ] {
Thing data mh4 [ readStart="0", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data ph [ readStart="2", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data phrh [ readStart="3", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data mh1 [ readStart="4", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data mh2 [ readStart="6", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data mh3 [ readStart="8", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data oh [ readStart="10", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data tekn [ readStart="12", readValueType="uint16", readTransform="JS(divide.js)" ]
Thing data teknrh [ readStart="13", readValueType="uint16", readTransform="JS(divide.js)" ]
}
}
openhab.log
15:35:08.639 [DEBUG] [ort.modbus.internal.ModbusManagerImpl] - Executing scheduled (30000ms) poll task PollTaskImpl@7e7482b2[request=ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@3097612e[slaveId=2,functionCode=READ_COILS,start=2,length=4,maxTries=3],endpoint=ModbusTCPSlaveEndpoint@6557e86[address=192.168.1.100,port=502],callback=java.lang.ref.WeakReference@7d5cf1df]
15:35:08.678 [DEBUG] [.wimpi.modbus.net.TCPMasterConnection] - connect()
15:35:08.704 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34818: net.wimpi.modbus.msg.ReadCoilsRequest@49cc5b41
15:35:08.731 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34818
15:35:08.741 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #0
15:35:08.751 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #1
15:35:08.760 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #2
15:35:08.769 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #3
15:35:08.803 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34819: net.wimpi.modbus.msg.ReadCoilsRequest@4a579a86
15:35:08.819 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34819
15:35:08.827 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #0
15:35:08.833 [DEBUG] [ort.modbus.internal.ModbusManagerImpl] - Executing scheduled (30000ms) poll task PollTaskImpl@54423ec1[request=ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@5539e580[slaveId=2,functionCode=READ_MULTIPLE_REGISTERS,start=0,length=14,maxTries=3],endpoint=ModbusTCPSlaveEndpoint@6557e86[address=192.168.1.100,port=502],callback=java.lang.ref.WeakReference@607579f2]
15:35:08.829 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34820: net.wimpi.modbus.msg.ReadCoilsRequest@77725931
15:35:08.835 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #1
15:35:08.874 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34820
15:35:08.883 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #0
15:35:08.875 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #2
15:35:08.892 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #1
15:35:08.891 [DEBUG] [.wimpi.modbus.net.TCPMasterConnection] - connect()
15:35:08.912 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #2
15:35:08.902 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #3
15:35:08.931 [ERROR] [ling.ModbusSlaveConnectionFactoryImpl] - connect try 1/3 error: Yhteys torjuttu (Connection refused). Connection TCPMasterConnection@201e33e6[socket=Socket[unconnected]]. Endpoint ModbusTCPSlaveEndpoint@6557e86[address=192.168.1.100,port=502]
15:35:08.931 [TRACE] [net.wimpi.modbus.util.BitVector ] - Get bit #3
15:35:09.050 [DEBUG] [.wimpi.modbus.net.TCPMasterConnection] - connect()
15:35:09.062 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34821: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@22cf37b1
15:35:09.094 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34821
15:35:09.162 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34822: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@1ad0c490
15:35:09.195 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34822
15:35:09.202 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Sending request with transaction ID 34823: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@3f0202f3
15:35:09.216 [TRACE] [.wimpi.modbus.io.ModbusTCPTransaction] - Received response with transaction ID 34823
While writing this post I tested with different refresh rates. Coil poller with 30000ms and Holding register poller with 20000ms so about every third polling hapens at same time and that’s when i get these connection refused errors. After this I changed rates back to 30000ms and added timeBetweenReconnectMillis=100
setting to .things file but no help.
Seems that my S1200 is a bit slow responder. Is it something in your code or in my settings that’s wrong?
Edit #1
Putting timeBetweenReconnectMillis=1000
seems to work. Feels a bit long time doesn’t it?