ZWave binding updates

Apologies if this was already covered (I did search, but it’s a long thread) but I have tried to follow the instructions, and kept my old controller.
zwave:serial_zstick:157b8d41438 (Type=Bridge, Status=INITIALIZING, Label=Z-Wave Serial Controller, Bridge=null)

(I have a Zwave plus aeonlabs USB stick in a raspberry pi running the latest snapshot).

However when I look in PaperUI I see " ZWave Plus USB Dongle" and in the log I see:

2018-10-31 13:51:09.281 [INFO ] [g.discovery.internal.PersistentInbox] - Added new thing 'zwave:serial_zstick:512' to inbox.

I tried deleting my old controller, and adding this, but I wasn’t sure how to change the thing id using PaperUI (so I wouldn’t have to update my items files). So in the end I added azwave serial controller again using Habmin, with id=157b8d41438, but then I get back in the original situation: I have a serial controller, but PaperUI (and since I see it in the log, presumably openhab itself) wants me to add another dongle.

What am I missing?

Edit: hmm. This controller doesn’t seem to find any things:
zwave:serial_zstick:157b8d41438 (Type=Bridge, Status=INITIALIZING, Label=Z-Wave Serial Controller, Bridge=null)

Maybe I just need to give in and edit my items files…

There was new core functionality added to auto-detect USB devices. That’s what you’re seeing in the Inbox – the system auto-detecting the zwave USB stick. You can ignore the one that was auto-detected.

That means I can’t ever do ‘add all’ though, which is quite annoying. Is there any advantage in using the USB devices? Presumably this new functionality was added for a reason?

You can Ignore and Show Ignored items in the Inbox. Once duplicate controller is Ignored, you should be able to use the Add All functionality.

USB Z-Wave and Zigbee controllers used to have to be manually created. They can now be discovered. You could write down all of the configuration for your existing controller, delete it, and then use the newly discovered one. Or just mark it as Ignored.

Sorry, this was wrong. The error occured between 2.2 and 2.3, at 2.3 I managed to fix it as described in

I have not been able yet to apply the same workaround on 2.4.

I used Openhab 2.3 and the old Zwavebinding. Now I update to the newest Snapshot with this new binding. Everything works fine. Only one device don’t work.

Vision Security ZS5101 Shock Sensor

I have exclude/inklude it, but now it shows me, „unknown device“.

Its a battery device and I have wakeup it, which worked at the old version, but not at the new one.

Has somebody an idea?

Hey all, and thanks for the update!

I followed the Recommended update process as per the first message, and it worked great.

These are the things I tried but that did not work well at all.

  1. defining the devices in .things without defining channels => what a mess, no device ever really worked, they initialize, then they’re ok, then they’re not and the items never worked

  2. installing via paperui worked the best, when I tried removing from paper ui and installing via addons.cfg, it failed and would not work even after a couple of restarts.
    2.a. I was not able to make zwave work at all with that process (addon via addons.cfg), I got the message:

    307 │ Active │ 80 │ 2.4.0.M5 │ org.openhab.binding.zwave
    openhab> java.lang.NoClassDefFoundError: Could not initialize class thrown while loading
    java.lang.NoClassDefFoundError: Could not initialize class thrown while loading
    java.lang.NoClassDefFoundError: Could not initialize class thrown while loading

My plan was to have the devices in .things files, I then gave up that idea and only kept the bridge in a .thing file and had the devices themselves being discovered and added in paperui.

If anyone has pointers about how to make it all work with static .things files for devices, I’d love to know.

here are my things files

Bridge zwave:serial_zstick:zStickController "Z-Wave Serial Controller" [


Thing zwave:device:zStickController:node45 "CWS-3101 Wall Switch" (zwave:serial_zstick:zStickController) @ "Some Room" [node_id=45]
Thing zwave:device:zStickController:node50 "Soft Remote Remote Control" (zwave:serial_zstick:zStickController) @ "Kids Room" [node_id=50]
1 Like

Please see the following thread -:

just saw this on the log by coincidence.
not sure if it is interesting

0:13:21.391 [ERROR] [ave.internal.protocol.ZWaveController] - NODE 50: Restore from config: Error deserialising XML file. com.thoughtworks.xstream.converters.ConversionException:  : ParseError at [row,col]:[427,1]
Message: XML document structures must start and end within the same entity. :  : ParseError at [row,col]:[427,1]
Message: XML document structures must start and end within the same entity.
---- Debugging information ----
message             :  : ParseError at [row,col]:[427,1]
Message: XML document structures must start and end within the same entity.
cause-exception     :
cause-message       :  : ParseError at [row,col]:[427,1]
Message: XML document structures must start and end within the same entity.
class               : org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveDeviceResetLocallyCommandClass
required-type       : org.openhab.binding.zwave.internal.protocol.commandclass.ZWaveDeviceResetLocallyCommandClass
converter-type      : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
path                : /node/endpoints/entry/endPoint/supportedCommandClasses/entry[15]/COMMAND_CLASS_DEVICE_RESET_LOCALLY
line number         : 427
class[1]            : java.util.concurrent.ConcurrentHashMap
converter-type[1]   : com.thoughtworks.xstream.converters.collections.MapConverter
class[2]            : org.openhab.binding.zwave.internal.protocol.ZWaveEndpoint
class[3]            : org.openhab.binding.zwave.internal.protocol.ZWaveNode
version             : 1.4.7

is a qubino din rail dimmer (got 16 of those)

Anyone know what might be causing this?


On the recent versions of openhab / zwave I have this constantly.
After a restart randomly nodes get stuck at REQUEST_NIF … also mains.
Evey restart other nodes are affected. I was thinking my slow Pi2 just can’t handle the 80 zwave devices … however I did not inestigate deeply and it could be another problem.

Hi Chris,

Great work on your zWave binding; I follow your threads and your always so responsive which makes me believe this is your full time job :wink:

Anyway; I’m running OH2.3 on a Synology NAS and I have NOT upgraded to OH2.4 but I’m running your zWave 2.4 M4 build w/o any issues.

Can you point me to where you store your zWave binding downloads so I can get the zWave 2.4 M5.x ?

Best, Jay

It sure feels like it sometimes :slight_smile: .

They aren’t stored anywhere as such - but there’s is the CI server where the builds are done, so the latest build can always be found here.

Thanks a lot for the link, I finally understood (read the docs, read the docs…) what I was doing wrong.
So based on the syntax:

Thing <binding_id>:<type_id>:<thing_id> "Label" @ "Location" [ <parameters> ]

… for the end result I had to:

  • determine the type_id for each device by searching in the cd-jackson database (as per the mentioned thread)
  • for every z-wave device in a .thing file, I had to replace “device” with the value of <thing-type id=<value> from the cd-jackson XML output
    • wrong: Thing zwave:device:zStickController:node5
    • correct: Thing zwave:danfoss_mt02650_00_000:zStickController:node5
  • .things files DO NOT NEED the channels

So now, I have all my z-wave devices defined in .things files and don’t require discovery if I need to restore oh2 again using my saved /etc/openhab2 backup

It is just annoying that PaperUI still discovers the devices using the type-id: device
My z-wave bridge is defined as:

  • Bridge zwave:serial_zstick:zStickController "Z-Wave Serial Controller"...
    And the things discovered in PaperUI are seen as:
  • zwave:device:zStickController:node27

PaperUI uses the zwave:device:... naming which I cannot use in static files. I’ll of course just ignore the device discovery.

Lessons learned though: keep the zwave bridge in a .thing file separate form the devices’. With all the edit work in the devices file, OH2 did not have to initialize the bridge every time I saved it and so it was just quicker to see the outcome in the logs.

when I include the device in “non secure inclusion mode” the device was found correctly. In the secure mode it is an “unknown device”. So how I can include it in secure mode?

According to the manual and the database it does not support secure inclusion.

I didn’t check the manual, but the database shows security is supported. Don’t look at the “security” box in the overview - look at the fact that the SECURITY command class is supported (which apparently it is).

Yes, that is where I looked at. In addition to that there is no hit when searching the manual for “secure” or “security”, so I came to a wrong conclusion. Sorry :sunglasses:

Hmm, When I read it Right:
According to this manual Security is Supported.

Yes, as I said above, it is supported.