Z-Wave switch sending state updates, but not able to be toggled via z-wave

Tags: #<Tag:0x00007efec51548f0>

Hello all,
I have been installing a lot of inovelli z-wave switches lately on my openhabian 2.5 (RPi4, RaZzberry hat) system.
An odd circumstance I have run across is a on/off ‘red’ switch (LZW-31SN) that sends events to the network (I see if it is manually turned on/off, if the scene changes, what the energy consumption is, etc), but I cannot toggle it on or off from openhab (PaperUI or habanel). In these panels, I can see the power status change, so it does seem that it is connected.

I didn’t see any errors pop up in the log until I tried to change the LED color. That error (below) seems to indicate that a handler is’t installed, although the device appears to be recognized, receives energy consumption and power state information, etc.

2020-09-24 18:06:50.753 [ERROR] [st.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:a204e4d4:node38/config'

java.lang.IllegalStateException: Thing with UID zwave:device:a204e4d4:node38 has no handler attached.

	at org.eclipse.smarthome.core.thing.internal.ThingRegistryImpl.updateConfiguration(ThingRegistryImpl.java:95) ~[?:?]

	at org.eclipse.smarthome.io.rest.core.internal.thing.ThingResource.updateConfiguration(ThingResource.java:438) [bundleFile:?]

	at sun.reflect.GeneratedMethodAccessor1459.invoke(Unknown Source) ~[?:?]

	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]

	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]

	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) [bundleFile:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) [bundleFile:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) [bundleFile:?]

	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:160) [bundleFile:?]

	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) [bundleFile:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) [bundleFile:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) [bundleFile:?]

	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) [bundleFile:?]

	at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326) [bundleFile:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) [bundleFile:?]

	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) [bundleFile:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:315) [bundleFile:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:297) [bundleFile:?]

	at org.glassfish.jersey.internal.Errors.process(Errors.java:267) [bundleFile:?]

	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) [bundleFile:?]

	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305) [bundleFile:?]

	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154) [bundleFile:?]

	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473) [bundleFile:?]

	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427) [bundleFile:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388) [bundleFile:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341) [bundleFile:?]

	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228) [bundleFile:?]

	at com.eclipsesource.jaxrs.publisher.internal.ServletContainerBridge.service(ServletContainerBridge.java:76) [bundleFile:?]

	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:852) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:544) [bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceServletHandler.doHandle(HttpServiceServletHandler.java:71) [bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1581) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1307) [bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.HttpServiceContext.doHandle(HttpServiceContext.java:293) [bundleFile:?]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:482) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1549) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1204) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) [bundleFile:9.4.20.v20190813]

	at org.ops4j.pax.web.service.jetty.internal.JettyServerHandlerCollection.handle(JettyServerHandlerCollection.java:80) [bundleFile:?]

	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.Server.handle(Server.java:494) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:374) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:268) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:367) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:782) [bundleFile:9.4.20.v20190813]

	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:918) [bundleFile:9.4.20.v20190813]

	at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]

Configuration information per PaperUI:

dbReference	1113
defaultAssociations	1
manufacturerId	031E
manufacturerRef	0002:0001
modelId	LZW30-SN
vendor	Inovelli
zwave_beaming	true
zwave_class_basic	BASIC_TYPE_ROUTING_SLAVE
zwave_class_generic	GENERIC_TYPE_SWITCH_BINARY
zwave_class_specific	SPECIFIC_TYPE_POWER_SWITCH_BINARY
zwave_deviceid	1
zwave_devicetype	2
zwave_frequent	false
zwave_lastheal	2020-08-23T09:41:14Z
zwave_listening	true
zwave_manufacturer	798
zwave_neighbours	15
zwave_nodeid	38
zwave_plus_devicetype	NODE_TYPE_ZWAVEPLUS_NODE
zwave_plus_roletype	ROLE_TYPE_SLAVE_ALWAYS_ON
zwave_routing	true
zwave_secure	false
zwave_version	1.9

Any suggestions?

Thanks

And this error is not reliably triggered, it seems:

I again tried setting the LED color, blink rate, etc, and no error was triggered.

The previous error, in the context of a lot of use (state change, and commands sent) demonstrates no other errors triggered.

2020-09-24 18:04:47.560 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:04:48.875 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 10.5 to 0

2020-09-24 18:04:51.081 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 1.0 to 2.0

2020-09-24 18:04:51.160 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from OFF to ON

2020-09-24 18:04:52.840 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 0 to 6.8

2020-09-24 18:04:54.061 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 2.0 to 1.0

2020-09-24 18:04:54.158 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:04:54.871 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 6.8 to 0

2020-09-24 18:04:57.393 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_switch_binary' received command ON

2020-09-24 18:04:57.396 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_switch_binary predicted to become OFF

2020-09-24 18:06:50.753 [ERROR] [st.core.internal.thing.ThingResource] - Exception during HTTP PUT request for update config at 'things/zwave:device:a204e4d4:node38/config'

java.lang.IllegalStateException: Thing with UID zwave:device:a204e4d4:node38 has no handler attached.

2020-09-24 18:07:23.363 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 1.0 to 2.0

2020-09-24 18:07:23.460 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from OFF to ON

2020-09-24 18:07:24.874 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 0 to 9.2

2020-09-24 18:07:26.875 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 9.2 to 10.5

2020-09-24 18:07:28.576 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 2.0 to 1.0

2020-09-24 18:07:28.660 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:07:28.858 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 10.5 to 0

2020-09-24 18:07:35.258 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_switch_binary' received command ON

2020-09-24 18:07:35.261 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_switch_binary predicted to become OFF

2020-09-24 18:07:45.962 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_config_decimal_param5' received command 85

2020-09-24 18:07:45.965 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_config_decimal_param5 predicted to become 170

2020-09-24 18:07:54.279 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 1.0 to 2.0

2020-09-24 18:07:54.377 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from OFF to ON

2020-09-24 18:07:56.281 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 2.0 to 1.0

2020-09-24 18:07:56.369 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:08:01.576 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 1.0 to 2.0

2020-09-24 18:08:01.670 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from OFF to ON

2020-09-24 18:08:02.871 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 0 to 3.7

2020-09-24 18:08:03.672 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 2.0 to 1.0

2020-09-24 18:08:03.769 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:08:04.873 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 3.7 to 0

2020-09-24 18:08:09.241 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_switch_binary' received command ON

2020-09-24 18:08:09.243 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_switch_binary predicted to become OFF

2020-09-24 18:18:10.868 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_switch_binary' received command ON

2020-09-24 18:18:10.871 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_switch_binary predicted to become OFF

2020-09-24 18:18:36.445 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_switch_binary' received command OFF

2020-09-24 18:18:36.450 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_switch_binary predicted to become OFF

2020-09-24 18:18:55.516 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_config_decimal_param5' received command 212

2020-09-24 18:18:55.518 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_config_decimal_param5 predicted to become 170

2020-09-24 18:19:19.525 [ome.event.ItemCommandEvent] - Item 'zwave_device_a204e4d4_node38_config_decimal_param8' received command 2

2020-09-24 18:19:19.529 [nt.ItemStatePredictedEvent] - zwave_device_a204e4d4_node38_config_decimal_param8 predicted to become 0

2020-09-24 18:21:09.381 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 1.0 to 2.0

2020-09-24 18:21:09.479 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from OFF to ON

2020-09-24 18:21:10.867 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 0 to 4.9

2020-09-24 18:21:12.076 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_scene_number changed from 2.0 to 1.0

2020-09-24 18:21:12.177 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_switch_binary changed from ON to OFF

2020-09-24 18:21:12.879 [vent.ItemStateChangedEvent] - zwave_device_a204e4d4_node38_meter_watts changed from 4.9 to 0

What version of 2.5? That device database entry was last updated for OH 2.5,7.

Sorry, yes.
2.5.7 release build

The no handler error means that there was a problem during startup, or something is not configured correctly. It’s hard really to say a lot more - maybe the debug logs would help here though - please check the binding docs on configuring this.

1 Like

Thanks.
FYI, I still plan on doing a deep dive on this issue.
I have since installed my other LZW-31SN switches, and they all seem to have this same problem
The other ones - the ‘black’ line LZW-31, as well as the red and black dimmers all seem to work OK.
I can use the switch from the wall, and the state changes (switch and scene) are sent from the switch to openhab successfully. I cannot change the state of the switch from openhab, however (nor the other parameters, it seems).

I have my plate full currently, but will likely do an exclude on one, set debug logging, then re-include it and watch.

Anyway, I haven’t forgotten, the problem is still there, and I will get to this.

You do not need to do that. Inclusion and exclusion just occur between the device and controller.

Set debug logging and then either restart the binding or OpenHAB. Another option would be to reboot.

Note that if you want to reinitialise the device, there is a “reinitialise” option for each device in the configuration. This will perform the interview and configuration in the same way as if the device was newly included.

In some cases an exclusion and re-inclusion may be needed, but it’s pretty rare.

1 Like

Perhaps in the future there could be some helpful text briefly describing the menu options for the user. :wink:

Sure - feel free to propose something. I think that “reinitialise device” should be self explanatory - we could write “reinitialises and reconfigures the device” underneath, but I wouldn’t really want to get into any significant detail as it’s outside of the scope of the user.

I’m always open to suggestions though if someone wants to improve the docs :slight_smile: