I’m also affected by this problem. It started after the update to 2.5.7. I’m om 2.5.8 now, but the problem is still here.
The binding works for max. 24 hours and then just stops. Since I set the log level to DEBUG I no longer see an error message, which was there with the default logging settings (Will see if I can find it somewhere). Now it is just this:
2020-08-30 22:06:51.592 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_AC_VAR_SF channels updated: {modbus:data:SE7K:Registers:I_AC_VAR_SF:number=0}. readValueType=int16, readIndex=Optional[90], readSubIndex(or 0)=0, extractIndex=21 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.593 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_AC_PF channels updated: {modbus:data:SE7K:Registers:I_AC_PF:number=0}. readValueType=int16, readIndex=Optional[91], readSubIndex(or 0)=0, extractIndex=22 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.593 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_AC_PF_SF channels updated: {modbus:data:SE7K:Registers:I_AC_PF_SF:number=0}. readValueType=int16, readIndex=Optional[92], readSubIndex(or 0)=0, extractIndex=23 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.593 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_AC_Energy_WH channels updated: {modbus:data:SE7K:Registers:I_AC_Energy_WH:number=2094373}. readValueType=int32, readIndex=Optional[93], readSubIndex(or 0)=0, extractIndex=24 -> numeric value 2094373 and boolValue=true. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.593 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_AC_Energy_WH_SF channels updated: {modbus:data:SE7K:Registers:I_AC_Energy_WH_SF:number=0}. readValueType=uint16, readIndex=Optional[95], readSubIndex(or 0)=0, extractIndex=26 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.593 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Current channels updated: {modbus:data:SE7K:Registers:I_DC_Current:number=0}. readValueType=uint16, readIndex=Optional[96], readSubIndex(or 0)=0, extractIndex=27 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Current_SF channels updated: {modbus:data:SE7K:Registers:I_DC_Current_SF:number=0}. readValueType=int16, readIndex=Optional[97], readSubIndex(or 0)=0, extractIndex=28 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Voltage channels updated: {modbus:data:SE7K:Registers:I_DC_Voltage:number=0}. readValueType=uint16, readIndex=Optional[98], readSubIndex(or 0)=0, extractIndex=29 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Voltage_SF channels updated: {modbus:data:SE7K:Registers:I_DC_Voltage_SF:number=-1}. readValueType=int16, readIndex=Optional[99], readSubIndex(or 0)=0, extractIndex=30 -> numeric value -1 and boolValue=true. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Power channels updated: {modbus:data:SE7K:Registers:I_DC_Power:number=0}. readValueType=int16, readIndex=Optional[100], readSubIndex(or 0)=0, extractIndex=31 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_DC_Power_SF channels updated: {modbus:data:SE7K:Registers:I_DC_Power_SF:number=0}. readValueType=int16, readIndex=Optional[101], readSubIndex(or 0)=0, extractIndex=32 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.594 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_Temp_Sink channels updated: {modbus:data:SE7K:Registers:I_Temp_Sink:number=0}. readValueType=int16, readIndex=Optional[103], readSubIndex(or 0)=0, extractIndex=34 -> numeric value 0 and boolValue=false. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.595 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_Temp_SF channels updated: {modbus:data:SE7K:Registers:I_Temp_SF:number=-2}. readValueType=int16, readIndex=Optional[106], readSubIndex(or 0)=0, extractIndex=37 -> numeric value -2 and boolValue=true. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.595 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_Status channels updated: {modbus:data:SE7K:Registers:I_Status:number=2}. readValueType=uint16, readIndex=Optional[107], readSubIndex(or 0)=0, extractIndex=38 -> numeric value 2 and boolValue=true. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.595 [DEBUG] [ernal.handler.ModbusDataThingHandler] - Thing modbus:data:SE7K:Registers:I_Status_Vendor channels updated: {}. readValueType=uint16, readIndex=Optional[109], readSubIndex(or 0)=0, extractIndex=40 -> numeric value 65535 and boolValue=true. Registers ModbusRegisterArrayImpl(00 67 00 32 00 00 00 00 00 00 00 00 ff fe 10 25 10 27 10 2f 09 59 09 4d 09 58 ff ff 00 00 00 00 13 86 ff fe 00 00 00 00 00 00 00 00 00 00 00 00 00 1f f5 25 00 00 00 00 00 00 00 00 ff ff 00 00 00 00 80 00 00 00 80 00 80 00 ff fe 00 02 00 00 ff ff ff ff ff ff ff ff 00 00 00 00 ff ff ff ff ff ff ff ff) for request ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3]
2020-08-30 22:06:51.595 [DEBUG] [rt.modbus.internal.ModbusManagerImpl] - Modbus operation ended, timing info: {total: 65 ms, connection: 0, transaction=47, callback=18} [operation ID 860ea78f-6b1d-4b52-ba7c-7e7cd3282621]
2020-08-30 22:06:51.595 [DEBUG] [rt.modbus.internal.ModbusManagerImpl] - Execution of scheduled (5000ms) poll task BasicPollTask@298f7c24[request=ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3],endpoint=ModbusTCPSlaveEndpoint@1cf3e710[address=10.0.0.34,port=502],resultCallback=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@79ce8f44,failureCallback=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@79ce8f44] finished at 1598818011595. Was started at millis: 1598818011529 (=duration of 66 millis)
2020-08-30 22:06:56.867 [DEBUG] [rt.modbus.internal.ModbusManagerImpl] - Executing scheduled (5000ms) poll task BasicPollTask@298f7c24[request=ModbusPollerThingHandler.ModbusPollerReadRequest@686274eb[slaveId=1,functionCode=READ_MULTIPLE_REGISTERS,start=69,length=50,maxTries=3],endpoint=ModbusTCPSlaveEndpoint@1cf3e710[address=10.0.0.34,port=502],resultCallback=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@79ce8f44,failureCallback=org.openhab.binding.modbus.handler.ModbusPollerThingHandler$ReadCallbackDelegator@79ce8f44]. Current millis: 1598818016863
My thing (SolarEDGE SE7K inverter):
Bridge modbus:tcp:SE7K [ host="10.0.0.34", port=502, id=1, timeBetweenTransactionsMillis=150,
timeBetweenReconnectMillis=1000, connectMaxTries=3, reconnectAfterMillis=60000, connectTimeoutMillis=1000 ] { //Tried this with many different settings as recommended in various modbus topics.
Bridge poller Registers [ start=69, length=50, refresh=5000, type="holding" ] {
// Setting polling to 1000 ms sometimes led to strange values in I_AC_POWER
//Thing data C_DeviceAddress [ readStart="68", readValueType="uint16" ] // MODBUS Unit ID
Thing data C_SunSpec_DID [ readStart="69", readValueType="uint16" ] // 101 = single phase, 102 = split phase, 103 = three phase
Thing data C_SunSpec_Length [ readStart="70", readValueType="uint16" ] // 50 = Length of model block
Thing data I_AC_Current [ readStart="71", readValueType="uint16" ] // AC Total Current value
Thing data I_AC_CurrentA [ readStart="72", readValueType="uint16" ] // AC Phase A Current value
Thing data I_AC_CurrentB [ readStart="73", readValueType="uint16" ] // AC Phase B Current value
Thing data I_AC_CurrentC [ readStart="74", readValueType="uint16" ] // AC Phase C Current value
Thing data I_AC_Current_SF [ readStart="75", readValueType="int16" ] // AC Current scale factor
Thing data I_AC_VoltageAB [ readStart="76", readValueType="uint16" ] // AC Voltage Phase AB value
Thing data I_AC_VoltageBC [ readStart="77", readValueType="uint16" ] // AC Voltage Phase BC value
Thing data I_AC_VoltageCA [ readStart="78", readValueType="uint16" ] // AC Voltage Phase CA value
Thing data I_AC_VoltageAN [ readStart="79", readValueType="uint16" ] // AC Voltage Phase A to N value
Thing data I_AC_VoltageBN [ readStart="80", readValueType="uint16" ] // AC Voltage Phase B to N value
Thing data I_AC_VoltageCN [ readStart="81", readValueType="uint16" ] // AC Voltage Phase C to N value
Thing data I_AC_Voltage_SF [ readStart="82", readValueType="int16" ] // AC Voltage scale factor
Thing data I_AC_Power [ readStart="83", readValueType="int16" ] // AC Power value
Thing data I_AC_Power_SF [ readStart="84", readValueType="int16" ] // AC Power scale factor
Thing data I_AC_Frequency [ readStart="85", readValueType="uint16" ] // AC Frequency value
Thing data I_AC_Frequency_SF [ readStart="86", readValueType="int16" ] // Scale factor
Thing data I_AC_VA [ readStart="87", readValueType="int16" ] // Apparent Power
Thing data I_AC_VA_SF [ readStart="88", readValueType="int16" ] // Scale factor
Thing data I_AC_VAR [ readStart="89", readValueType="int16" ] // Reactive Power
Thing data I_AC_VAR_SF [ readStart="90", readValueType="int16" ] // Scale factor
Thing data I_AC_PF [ readStart="91", readValueType="int16" ] // Power Factor
Thing data I_AC_PF_SF [ readStart="92", readValueType="int16" ] // Scale factor
Thing data I_AC_Energy_WH [ readStart="93", readValueType="int32" ] // AC Lifetime Energy Production
Thing data I_AC_Energy_WH_SF [ readStart="95", readValueType="uint16" ] // Scale factor
Thing data I_DC_Current [ readStart="96", readValueType="uint16" ] // DC Current value
Thing data I_DC_Current_SF [ readStart="97", readValueType="int16" ] // Scale factor
Thing data I_DC_Voltage [ readStart="98", readValueType="uint16" ] // DC Voltage value
Thing data I_DC_Voltage_SF [ readStart="99", readValueType="int16" ] // Scale factor
Thing data I_DC_Power [ readStart="100", readValueType="int16" ] // DC Power value
Thing data I_DC_Power_SF [ readStart="101", readValueType="int16" ] // Scale factor
Thing data I_Temp_Sink [ readStart="103", readValueType="int16" ] // Heat sink temperature
Thing data I_Temp_SF [ readStart="106", readValueType="int16" ] // Scale factor
Thing data I_Status [ readStart="107", readValueType="uint16"] // Operating state
Thing data I_Status_Vendor [ readStart="109", readValueType="uint16"] // Vendor-defined operating state and error codes
}
}
Modbus binding:
300 │ Active │ 80 │ 2.5.8 │ org.openhab.binding.modbus
301 │ Active │ 80 │ 2.5.8 │ org.openhab.binding.modbus.sunspec
302 │ Active │ 80 │ 2.5.8 │ org.openhab.io.transport.modbus
Running on Ubuntu 20.04.1 (and before yesterday 18.04.5) in a LXC container on an Ubuntu 18.04.5 host.
I’ll delete the sunspec bundle for now, lets see if that makes any difference.
Edit: After changing something in my thing this error comes up, after which the binding starts to work. Still a NPE is not good I guess: