I’m having issues with my new Modbus TCP binding … similar … after 20 to 30 hours the raspberry pi system crashes and needs a hard reboot.
The Modbus Binding version as follows … binding-modbus - 2.4.0
The previous Modbus binding version 1.x ran for months.
I have 2 systems presently setup with new settings and if (when) they crash I’ll post errors.
Seems like a memory leak … anybody else experiencing similar with Modbus 2.x ?
==> /var/log/openhab2/openhab.log <==
2020-01-09 13:13:03.068 [ERROR] [wimpi.modbus.io.ModbusTCPTransaction] - execute try 1/1 error: I/O exception: SocketTimeoutException Read timed out. Request: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@10323a6 (unit id 1 & transaction 20508). Address: /192.168.8.120:8522
2020-01-09 13:13:03.085 [ERROR] [wimpi.modbus.io.ModbusTCPTransaction] - execute reached max tries 1, throwing last error: I/O exception: SocketTimeoutException Read timed out. Request: net.wimpi.modbus.msg.ReadMultipleRegistersRequest@10323a6 (unit id 1 & transaction 20508). Address: /192.168.8.120:8522
2020-01-09 13:13:03.091 [WARN ] [rt.modbus.internal.ModbusManagerImpl] - Try 1 out of 3 failed when executing request (ModbusPollerThingHandlerImpl.ModbusPollerReadRequest@1a331f0[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=1180,length=15,maxTries=3]). Will try again soon. Error was I/O error, so reseting the connection. Error details: net.wimpi.modbus.ModbusIOException I/O exception: SocketTimeoutException Read timed out [operation ID 54d7eb9c-1956-4746-88b7-8394bf0d48c7]
==> /var/log/openhab2/events.log <==
The modbus.cfg setup as follows
poll=300
# Following are external 'Input' regs
tcp.slave1.connection=192.168.8.120:8512
tcp.slave1.id=1
tcp.slave1.start=1100
tcp.slave1.length=8
tcp.slave1.type=holding
tcp.slave1.valuetype=uint16
# Following are for external 'write' regs
tcp.slave2.connection=192.168.8.120:8512
tcp.slave2.id=1
tcp.slave2.start=1001
tcp.slave2.length=15
tcp.slave2.type=holding
tcp.slave2.valuetype=uint16
# Following are internal 'Switch' regs
tcp.slave3.connection=192.168.8.120:8512
tcp.slave3.id=1
tcp.slave3.start=1031
tcp.slave3.length=10
tcp.slave3.type=holding
tcp.slave3.valuetype=uint16
# Following is for Temp and Lighting Control regs
tcp.slave4.connection=192.168.8.120:8512
tcp.slave4.id=1
tcp.slave4.start=1150
tcp.slave4.length=10
tcp.slave4.type=holding
tcp.slave4.valuetype=uint16
# Following are internal 'Time Zone' regs
tcp.slave5.connection=192.168.8.120:8512
tcp.slave5.id=1
tcp.slave5.start=1170
tcp.slave5.length=10
tcp.slave5.type=holding
tcp.slave5.valuetype=uint16
# Following are internal Tint Float
tcp.slave6.connection=192.168.8.120:8512
tcp.slave6.id=1
tcp.slave6.start=1180
tcp.slave6.length=5
tcp.slave6.type=holding
tcp.slave6.valuetype=float32_swap
and Things setup file
Bridge modbus:tcp:iwr2a [ host="192.168.8.120", port=8522, id=1 ] {
Bridge poller iwr2a_slave1 [ start=1100, length=8, refresh=500, type="holding" ] {
Thing data iwr2a_s1_000 [ readStart="1101", readValueType="uint16", writeStart="1101", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_001 [ readStart="1102", readValueType="uint16", writeStart="1102", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_002 [ readStart="1103", readValueType="uint16", writeStart="1103", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_003 [ readStart="1104", readValueType="uint16", writeStart="1104", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_004 [ readStart="1105", readValueType="uint16", writeStart="1105", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_005 [ readStart="1106", readValueType="uint16", writeStart="1106", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_006 [ readStart="1107", readValueType="uint16", writeStart="1107", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_007 [ readStart="1108", readValueType="uint16", writeStart="1108", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_008 [ readStart="1109", readValueType="uint16", writeStart="1109", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s1_009 [ readStart="1110", readValueType="uint16", writeStart="1110", writeValueType="uint16", writeType="holding" ]
}
Bridge poller iwr2a_slave2 [ start=1001, length=18, refresh=500, type="holding" ] {
Thing data iwr2a_s2_000 [ readStart="1001", readValueType="uint16", writeStart="1001", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_001 [ readStart="1002", readValueType="uint16", writeStart="1002", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_002 [ readStart="1003", readValueType="uint16", writeStart="1003", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_003 [ readStart="1004", readValueType="uint16", writeStart="1004", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_004 [ readStart="1005", readValueType="uint16", writeStart="1005", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_005 [ readStart="1006", readValueType="uint16", writeStart="1006", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_006 [ readStart="1007", readValueType="uint16", writeStart="1007", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_007 [ readStart="1008", readValueType="uint16", writeStart="1008", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_008 [ readStart="1009", readValueType="uint16", writeStart="1009", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_009 [ readStart="1010", readValueType="uint16", writeStart="1010", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_010 [ readStart="1011", readValueType="uint16", writeStart="1011", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_011 [ readStart="1012", readValueType="uint16", writeStart="1012", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_012 [ readStart="1013", readValueType="uint16", writeStart="1013", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_013 [ readStart="1014", readValueType="uint16", writeStart="1014", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_014 [ readStart="1015", readValueType="uint16", writeStart="1015", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s2_015 [ readStart="1016", readValueType="uint16", writeStart="1016", writeValueType="uint16", writeType="holding" ]
}
Bridge poller iwr2a_slave3 [ start=1031, length=15, refresh=500, type="holding" ] {
Thing data iwr2a_s3_000 [ readStart="1031", readValueType="uint16", writeStart="1031", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_001 [ readStart="1032", readValueType="uint16", writeStart="1032", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_002 [ readStart="1033", readValueType="uint16", writeStart="1033", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_003 [ readStart="1034", readValueType="uint16", writeStart="1034", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_004 [ readStart="1035", readValueType="uint16", writeStart="1035", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_005 [ readStart="1036", readValueType="uint16", writeStart="1036", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_006 [ readStart="1037", readValueType="uint16", writeStart="1037", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_007 [ readStart="1038", readValueType="uint16", writeStart="1038", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_008 [ readStart="1039", readValueType="uint16", writeStart="1039", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s3_009 [ readStart="1040", readValueType="uint16", writeStart="1040", writeValueType="uint16", writeType="holding" ]
}
Bridge poller iwr2a_slave4 [ start=1050, length=15, refresh=500, type="holding" ] {
Thing data iwr2a_s4_000 [ readStart="1050", readValueType="uint16", writeStart="1050", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_001 [ readStart="1051", readValueType="uint16", writeStart="1051", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_002 [ readStart="1052", readValueType="uint16", writeStart="1052", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_003 [ readStart="1053", readValueType="uint16", writeStart="1053", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_004 [ readStart="1054", readValueType="uint16", writeStart="1054", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_005 [ readStart="1055", readValueType="uint16", writeStart="1055", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_006 [ readStart="1056", readValueType="uint16", writeStart="1056", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_007 [ readStart="1057", readValueType="uint16", writeStart="1057", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_008 [ readStart="1058", readValueType="uint16", writeStart="1058", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s4_009 [ readStart="1059", readValueType="uint16", writeStart="1059", writeValueType="uint16", writeType="holding" ]
}
Bridge poller iwr2a_slave5 [ start=1170, length=15, refresh=500, type="holding" ] {
Thing data iwr2a_s5_000 [ readStart="1170", readValueType="uint16", writeStart="1170", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_001 [ readStart="1171", readValueType="uint16", writeStart="1171", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_002 [ readStart="1172", readValueType="uint16", writeStart="1172", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_003 [ readStart="1173", readValueType="uint16", writeStart="1173", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_004 [ readStart="1174", readValueType="uint16", writeStart="1174", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_005 [ readStart="1175", readValueType="uint16", writeStart="1175", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_006 [ readStart="1176", readValueType="uint16", writeStart="1176", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_007 [ readStart="1177", readValueType="uint16", writeStart="1177", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_008 [ readStart="1178", readValueType="uint16", writeStart="1178", writeValueType="uint16", writeType="holding" ]
Thing data iwr2a_s5_009 [ readStart="1179", readValueType="uint16", writeStart="1179", writeValueType="uint16", writeType="holding" ]
}
Bridge poller iwr2a_slave6 [ start=1180, length=15, refresh=500, type="holding" ] {
Thing data iwr2a_s6_000 [ readStart="1180", readValueType="float32_swap" ]
}
}
The system usually crashes within a few hours of the first errors being logged.
Following is system setup and present memory …
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
Last login: Thu Jan 9 06:08:27 2020 from 192.168.8.22
###############################################################################
################# openHABianPi ################################################
###############################################################################
## Ip = 192.168.8.25
## Release = Raspbian GNU/Linux 9 (stretch)
## Kernel = Linux 4.19.58-v7+
## Platform = Raspberry Pi 3 Model A Plus Rev 1.0
## Uptime = 1 day(s). 4:50:19
## CPU Usage = 12.47 % avg over 4 cpu(s) (4 core(s) x 1 socket(s))
## CPU Load = 1m: 1.11, 5m: 1.01, 15m: 1.11
## Memory = Free: 0.05GB (12%), Used: 0.41GB (88%), Total: 0.46GB
## Swap = Free: 0.05GB (58%), Used: 0.04GB (42%), Total: 0.09GB
## Root = Free: 11.23GB (80%), Used: 2.68GB (20%), Total: 14.53GB
## Updates = 56 apt updates available.
## Sessions = 1 sessions
## Processes = 116 running processes of 32768 maximum processes
###############################################################################
Welcome to __ _____ ____ _
____ ____ ___ ____ / / / / | / __ )(_)___ _____
/ __ \/ __ \/ _ \/ __ \/ /_/ / /| | / __ / / __ `/ __ \
/ /_/ / /_/ / __/ / / / __ / ___ |/ /_/ / / /_/ / / / /
\____/ .___/\___/_/ /_/_/ /_/_/ |_/_____/_/\__,_/_/ /_/
/_/
openHAB 2.4.0-1 (Release Build)
Thanks