openhab / openhab-addons

Add-ons for openHAB
https://www.openhab.org/
Eclipse Public License 2.0
1.88k stars 3.59k forks source link

[modbus] Can't set Modbus SunSpec Thing refresh to '0' in text file #16480

Open proggprod opened 8 months ago

proggprod commented 8 months ago

Expected Behavior

When editing a Modbus SunSpec Thing in a text file, I should be able to set the refresh to '0' and the Thing should update in the UI and not throw any errors.

Current Behavior

When trying to change the refresh interval of a Modbus Sunspec thing to '0' in a text file, I get an error and the thing does not update. The Thing sometimes also goes from ONLINE to UNKNOWN or HANDLER_INITIALIZING_ERROR

2024-03-03 19:34:42.292 [ERROR] [org.openhab.core.internal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.initialize()' on 'org.openhab.binding.modbus.sunspec.internal.handler.InverterHandler@450396e2': null java.lang.IllegalArgumentException: null at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleWithFixedDelay(ScheduledThreadPoolExecutor.java:671) ~[?:?] at org.openhab.core.common.ThreadPoolManager$UnstoppableScheduledExecutorService.scheduleWithFixedDelay(ThreadPoolManager.java:295) ~[bundleFile:?] at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.registerRegularPoll(ModbusManagerImpl.java:805) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.registerPollTask(AbstractSunSpecHandler.java:333) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.startUp(AbstractSunSpecHandler.java:153) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.initialize(AbstractSunSpecHandler.java:121) ~[?:?] at jdk.internal.reflect.GeneratedMethodAccessor86.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) [bundleFile:?] at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at java.lang.Thread.run(Thread.java:840) [?:?] 2024-03-03 19:34:42.300 [ERROR] [org.openhab.core.thing.internal.ThingManagerImpl] - Exception occurred while initializing handler of thing 'modbus:inverter-single-phase:solaredge1:se6000h': null java.lang.IllegalArgumentException: null at java.util.concurrent.ScheduledThreadPoolExecutor.scheduleWithFixedDelay(ScheduledThreadPoolExecutor.java:671) ~[?:?] at org.openhab.core.common.ThreadPoolManager$UnstoppableScheduledExecutorService.scheduleWithFixedDelay(ThreadPoolManager.java:295) ~[bundleFile:?] at org.openhab.core.io.transport.modbus.internal.ModbusManagerImpl$ModbusCommunicationInterfaceImpl.registerRegularPoll(ModbusManagerImpl.java:805) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.registerPollTask(AbstractSunSpecHandler.java:333) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.startUp(AbstractSunSpecHandler.java:153) ~[?:?] at org.openhab.binding.modbus.sunspec.internal.handler.AbstractSunSpecHandler.initialize(AbstractSunSpecHandler.java:121) ~[?:?] at jdk.internal.reflect.GeneratedMethodAccessor86.invoke(Unknown Source) ~[?:?] at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?] at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?] at org.openhab.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:147) [bundleFile:?] at org.openhab.core.internal.common.Invocation.call(Invocation.java:52) [bundleFile:?] at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) [?:?] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) [?:?] at java.lang.Thread.run(Thread.java:840) [?:?]

Possible Solution

Steps to Reproduce (for Bugs)

1. 2.

Context

Your Environment

lsiepel commented 2 months ago

What do you expect to happen when it is set to 0? AFAIK this is not documented. For sure it should not lead to an exception but rather a thing offline with configuration_error