I’m getting the same error on all of my 20 devices, unfortunately no errors in debug log:
2017-10-11 16:31:22.817 [ERROR] [st.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:15ca6a108b9:node10/config' for thing 'zwave:device:15ca6a108b9:node10': null
zwave development binding version 2.2.0.201710012213
This is how it looks in PaperUI: the association group is bound to node 1 (which in fact is the controller). Trying to set it to “openHAB Controller” via PaperUI gives again the same error in openhab.log.
I can confirm this behaviour. I noticed that one of my dimmers did not update its state in the UI when I switched it manually by physical switch. So I decided to have a look at the associations if association group 1 for controller updates was set to the controller. In Habmin it shows that it apparently is set correctly:
So obviously one of the two is not telling the truth. The reporting from PaperUI would explain the dimmer’s behaviour (assocaition group 1 is initial, not set to controller).
However it is indeed not possble to set the association neither with Habmin nor with PaperUI.
The exception in OHLOG is:
2017-10-11 20:30:55.845 [ERROR] [ome.io.rest.core.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:ZWOG:node160/config' for thing 'zwave:device:ZWOG:node160': java.math.BigDecimal cannot be cast to java.lang.Integer
The items that I have that through errors when saving associations (newly added or had the associations removed and readded) are missing <endpoint>0</endpoint> in the associationGroups section of the xml. In spot checking some of my other devices, I am finding some others that I do not recall touching that are also missing <endpoint>0</endpoint>. The jsondb file shows the same as the xmls.
The missing endpoint is perfectly ok in itself. There are just different ways to set associations (multichannel, or the normal association class, and the multichannel has 2 options in itself).
Really it’s hard to say what’s happening without the log showing the error, which appears to be an issue. I’ll see if I can find this tonight.
For all zwave devices, I can create and modify everything I’ve tried, except for group_1. I get the error when trying to modify group_1, or even trying to create it when it does not exist. One thing I noted was that if a device has {"group_1":["node_1_0"]} and I send the same, there is no error, but the configuration changes to {“group_1”:[“node_1”]}. Sending it a second time gets the 500 error.
For non-wave devices, it was mixed results. I can modify Network Health devices as I wish, even with group_1. For Zigbee devices, I get a 200 response but nothing is changed in the configuration, no matter what I try to create or modify.
Understood… I was curious to test out the REST UI for configuration of Things, so tested this out while playing with it.
So the next question then - does group_1 in all your devices allow multiple nodes in the group, or are they all lifeline type groups that only allow 1 node?
If instead of {"group_1":["node_1_0"]} you use {"group_1":"node_1_0"} what happens? Both formats should work and both will be used.
Ok, thanks. Not sure if it helps too much, but I’ll take a look at the code in this area and see if I can spot something before we get decent logging added…
@chris , in version 2.2.0.201710012213, were you possibly working in an area that could cause these errors for one of my newly added devices? They could very well be self inflicted though (ugly story) .
After an OH startup (before initialized):
2017-Oct-13 01:58:34.997 [ERROR] [eclipse.smarthome.core.thing.internal.ThingManager] - Exception occurred while initializing handler of thing 'zwave:device:07cb40a2:node91': java.lang.NullPointerException
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122) [?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:206) [?:?]
at org.eclipse.smarthome.core.common.SafeMethodCaller.callAsynchronous(SafeMethodCaller.java:194) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:83) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:67) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager.doInitializeHandler(ThingManager.java:633) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager.initializeHandler(ThingManager.java:568) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager.registerAndInitializeHandler(ThingManager.java:955) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager.thingUpdated(ThingManager.java:443) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:217) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:140) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:1) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:183) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:1) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:57) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutUpdatedElement(AbstractProvider.java:81) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:126) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractRegistry.update(AbstractRegistry.java:215) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager$2.run(ThingManager.java:302) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
at java.util.Collections$UnmodifiableMap.<init>(Collections.java:1446) ~[?:?]
at java.util.Collections.unmodifiableMap(Collections.java:1433) ~[?:?]
at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveConfigurationCommandClass.getParameters(ZWaveConfigurationCommandClass.java:189) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.updateNodeProperties(ZWaveThingHandler.java:1485) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.bridgeStatusChanged(ZWaveThingHandler.java:494) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.initialize(ZWaveThingHandler.java:177) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManager$6.call(ThingManager.java:636) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManager$6.call(ThingManager.java:1) ~[?:?]
at org.eclipse.smarthome.core.common.SafeMethodCaller$CallableWrapper.call(SafeMethodCaller.java:181) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
... 3 more
After an OH startup (after initialized):
2017-Oct-13 17:46:25.066 [ERROR] [eclipse.smarthome.core.thing.internal.ThingManager] - Exception occurred during notification about bridge status change on thing 'zwave:device:07cb40a2:node91': null
java.lang.NullPointerException: null
at java.util.Collections$UnmodifiableMap.<init>(Collections.java:1446) [?:?]
at java.util.Collections.unmodifiableMap(Collections.java:1433) [?:?]
at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveConfigurationCommandClass.getParameters(ZWaveConfigurationCommandClass.java:189) [219:org.openhab.binding.zwave:2.2.0.201710012213]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.updateNodeProperties(ZWaveThingHandler.java:1485) [219:org.openhab.binding.zwave:2.2.0.201710012213]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.bridgeStatusChanged(ZWaveThingHandler.java:494) [219:org.openhab.binding.zwave:2.2.0.201710012213]
at org.eclipse.smarthome.core.thing.internal.ThingManager$9.run(ThingManager.java:787) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
at java.lang.Thread.run(Thread.java:748) [?:?]
After changing a Label in Habmin:
2017-Oct-13 02:29:30.744 [ERROR] [eclipse.smarthome.core.thing.internal.ThingManager] - Exception occurred while calling thing updated at ThingHandler 'org.openhab.binding.zwave.handler.ZWaveThingHandler@6ac2236d': java.lang.NullPointerException
java.util.concurrent.ExecutionException: java.lang.NullPointerException
at java.util.concurrent.FutureTask.report(FutureTask.java:122) [?:?]
at java.util.concurrent.FutureTask.get(FutureTask.java:206) [?:?]
at org.eclipse.smarthome.core.common.SafeMethodCaller.callAsynchronous(SafeMethodCaller.java:194) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:83) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.SafeMethodCaller.call(SafeMethodCaller.java:67) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingManager.thingUpdated(ThingManager.java:423) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyTrackers(ThingRegistryImpl.java:217) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:140) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.notifyListenersAboutUpdatedElement(ThingRegistryImpl.java:1) [107:org.eclipse.smarthome.core.thing:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:183) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractRegistry.updated(AbstractRegistry.java:1) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListeners(AbstractProvider.java:57) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractProvider.notifyListenersAboutUpdatedElement(AbstractProvider.java:81) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.core.common.registry.AbstractManagedProvider.update(AbstractManagedProvider.java:126) [100:org.eclipse.smarthome.core:0.9.0.201709260841]
at org.eclipse.smarthome.io.rest.core.internal.thing.ThingResource.update(ThingResource.java:347) [117:org.eclipse.smarthome.io.rest.core:0.9.0.201709260841]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [159:org.glassfish.jersey.core.jersey-common:2.22.2]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [160:org.glassfish.jersey.core.jersey-server:2.22.2]
at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [157:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [157:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [157:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [157:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [157:org.glassfish.jersey.containers.jersey-container-servlet-core:2.22.2]
at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [17:com.eclipsesource.jaxrs.publisher:5.3.1.201602281253]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:845) [87:org.eclipse.jetty.servlet:9.3.14.v20161028]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584) [87:org.eclipse.jetty.servlet:9.3.14.v20161028]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [173:org.ops4j.pax.web.pax-web-jetty:6.0.6]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:548) [84:org.eclipse.jetty.security:9.3.14.v20161028]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:226) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:284) [173:org.ops4j.pax.web.pax-web-jetty:6.0.6]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512) [87:org.eclipse.jetty.servlet:9.3.14.v20161028]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [173:org.ops4j.pax.web.pax-web-jetty:6.0.6]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.Server.handle(Server.java:534) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:320) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [86:org.eclipse.jetty.server:9.3.14.v20161028]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:273) [78:org.eclipse.jetty.io:9.3.14.v20161028]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:95) [78:org.eclipse.jetty.io:9.3.14.v20161028]
at org.eclipse.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93) [78:org.eclipse.jetty.io:9.3.14.v20161028]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303) [89:org.eclipse.jetty.util:9.3.14.v20161028]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148) [89:org.eclipse.jetty.util:9.3.14.v20161028]
at org.eclipse.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136) [89:org.eclipse.jetty.util:9.3.14.v20161028]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671) [89:org.eclipse.jetty.util:9.3.14.v20161028]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589) [89:org.eclipse.jetty.util:9.3.14.v20161028]
at java.lang.Thread.run(Thread.java:748) [?:?]
Caused by: java.lang.NullPointerException
at java.util.Collections$UnmodifiableMap.<init>(Collections.java:1446) ~[?:?]
at java.util.Collections.unmodifiableMap(Collections.java:1433) ~[?:?]
at org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveConfigurationCommandClass.getParameters(ZWaveConfigurationCommandClass.java:189) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.updateNodeProperties(ZWaveThingHandler.java:1485) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.bridgeStatusChanged(ZWaveThingHandler.java:494) ~[?:?]
at org.openhab.binding.zwave.handler.ZWaveThingHandler.initialize(ZWaveThingHandler.java:177) ~[?:?]
at org.eclipse.smarthome.core.thing.binding.BaseThingHandler.thingUpdated(BaseThingHandler.java:190) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManager$4.call(ThingManager.java:427) ~[?:?]
at org.eclipse.smarthome.core.thing.internal.ThingManager$4.call(ThingManager.java:1) ~[?:?]
at org.eclipse.smarthome.core.common.SafeMethodCaller$CallableWrapper.call(SafeMethodCaller.java:181) ~[?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) ~[?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) ~[?:?]
... 1 more
Nope - not touched anything in the configuration management for a while. My guess is that there may be an issue with XMLs and the list isn’t loading correctly.