Zwave Errors - ThingHandler.handleCommand()

Openhab 2.3 (Docker) on Odroid C2. Aeotec Zwave USB Stick. 14 Nodes

New items added, they all seem to be looking corrent in paper ui (online) and all get their hand coded items linked. But when trying to operation I get a error:

e[0me[31m08:12:13.355 [ERROR] [rnal.common.AbstractInvocationHandler] - An error occurred while calling method 'ThingHandler.handleCommand()' on 'org.openhab.binding.zwave.handler.ZWaveThingHandler@b3556e': null
java.lang.NullPointerException: null
	at org.openhab.binding.zwave.internal.converter.ZWaveBasicConverter.receiveCommand(ZWaveBasicConverter.java:121) [217:org.openhab.binding.zwave:2.3.0]
	at org.openhab.binding.zwave.handler.ZWaveThingHandler.handleCommand(ZWaveThingHandler.java:878) [217:org.openhab.binding.zwave:2.3.0]
	at sun.reflect.GeneratedMethodAccessor123.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at org.eclipse.smarthome.core.internal.common.InvocationHandlerSync.invoke(InvocationHandlerSync.java:59) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at com.sun.proxy.$Proxy168.handleCommand(Unknown Source) [217:org.openhab.binding.zwave:2.3.0]
	at org.eclipse.smarthome.core.thing.internal.profiles.ProfileCallbackImpl.handleCommand(ProfileCallbackImpl.java:75) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at org.eclipse.smarthome.core.thing.internal.profiles.SystemDefaultProfile.onCommandFromItem(SystemDefaultProfile.java:49) [108:org.eclipse.smarthome.core.thing:0.10.0.oh230]
	at sun.reflect.GeneratedMethodAccessor122.invoke(Unknown Source) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.smarthome.core.internal.common.AbstractInvocationHandler.invokeDirect(AbstractInvocationHandler.java:153) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at org.eclipse.smarthome.core.internal.common.Invocation.call(Invocation.java:53) [101:org.eclipse.smarthome.core:0.10.0.oh230]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

I’ve tried deleting the node14.xml, deleting the item in paperui (and commenting out the items) then re-add, and/or restart, to no avail. This error keeps coming back.

I have a really large log file with debug turned on and you can see the node there when looking through the zwave log viewer.

Where can I go to post the log/help get some diagnostics.

So I had a look in habmin, and was able to add teh switch_binary channel without any problems…this is a dual unit, and the two individual switches are what give me an issue, but but the both channel seems to work.

Here are my items:

Switch zwave_switch_ballroom_spotlights "Ballroom Spot Lights" <light> (g_zwave_switch, g_outside_lighting) {channel="zwave:device:a5365e91:node14:switch_binary" }
Switch zwave_switch_ballroom_spotlight_north "Ballroom North Spot Lights" <light> (g_zwave_switch, g_outside_lighting) {channel="zwave:device:a5365e91:node14:switch_binary2" }
Number zwave_switch_ballroom_spotlight_north_kwh "Ballroom North Spot Electric meter [%.1f kWh]" (g_zwave_energy,g_energy_kwh) {channel="zwave:device:a5365e91:node14:meter_kwh2"}
Number zwave_switch_ballroom_spotlight_north_watts "Ballroom North Spot Electric meter [%.1f watts]" (g_zwave_energy,g_energy_watts,g_energy_watts_sum) {channel="zwave:device:a5365e91:node14:meter_watts2"}
Number zwave_switch_ballroom_spotlight_north_amps "Ballroom North Spot Electric meter [%.1f amps]" (g_zwave_energy) {channel="zwave:device:a5365e91:node14:meter_current2"}
Number zwave_switch_ballroom_spotlight_north_volts "Ballroom North Spot Electric meter [%.1f v]" (g_zwave_energy)  {channel="zwave:device:a5365e91:node14:meter_voltage2"}

Switch zwave_switch_ballroom_spotlight_south "Ballroom South Spot Lights" <light> (g_zwave_switch, g_outside_lighting) {channel="zwave:device:a5365e91:node14:switch_binary1" }
//Number zwave_switch_ballroom_spotlight_south_kwh "Ballroom South Spot Electric meter [%.1f kWh]" (g_zwave_energy,g_energy_kwh) {channel="zwave:device:a5365e91:node14:meter_kwh1"}
//Number zwave_switch_ballroom_spotlight_south_watts "Ballroom South Spot Electric meter [%.1f watts]" (g_zwave_energy,g_energy_watts,g_energy_watts_sum) {channel="zwave:device:a5365e91:node14:meter_watts1"}
//Number zwave_switch_ballroom_spotlight_south_amps "Ballroom South Spot Electric meter [%.1f amps]" (g_zwave_energy) {channel="zwave:device:a5365e91:node14:meter_current1"}
//Number zwave_switch_ballroom_spotlight_south_volts "Ballroom South Spot Electric meter [%.1f v]" (g_zwave_energy)  {channel="zwave:device:a5365e91:node14:meter_voltage1"}

I’ve tried commenting these out, and adding via habmin (with a new item) and still get the same result.

Could it be those channels haven’t been read from teh device properly? Dunno I’m guessing here.

Its an Aeotec Nano Dual Relay: “ZW132 Dual Nano Switch with Energy Metering”

There were some changes made to the database entry for this device in October 2018, which is several months after the 2.3 release. I’m not sure if the changes are relevant to the problem you’re having, but they do seem to involve the command classes that would affect the switch channels.

I’m not sure what to suggest. I suppose you could try updating to 2.4 stable or 2.5 M1. If you decide to do that, you need to delete and readd all your zwave things as described here. Given that degree of change, a backup of your 2.3 installation would be a good idea in case you need to go back.

Yeah I just wondered if I had something stuck in the a config somewhere that somebody would remind me of. But I think I’d nuked everything that is relating to an item (jsondb entries, node14.xml, items files, paperui item).

No I’m not ready to go 2.4 because of the mqtt binding, I haven’t made all the changes I need to support that change in binding, and I also saw a few issues reported on zwave so was holding off.

I think I’ve managed to get around it, by having the single switch which seems to work at least.

So if the DB definition is changed, isn’t that what populates the node14.xml? And so if I have another one of these devices (which I do - node10) could I not copy the xml from node10 to node 14?

I believe the node14.xml is populated based on information the binding queries from the device.

The database populates the thing type file, which is included in the zwave jar, and is where the channels are defined.

So if the DB is in the jar…and this hasn’t changed between adding the two devices (unless i went 2.2 to 2.3 in that period), they should have the same definition?
Ok so there’s no way I can for the same definition from the node10 to the node14 it sounds like.

I’ll have to start testing 2.4/2.5 in ernest.