ZWave binding updates

I have now merged the development version of the ZWave binding into master, so it will be available in the 2.4 snapshot version. If you are using the ZWave binding, please read this post as the binding contains some breaking changes so you will need to manually update your configuration.

Firstly though - the major enhancements (there are tons more smaller updates) -:

  • Security has been added using the S0 security class. This should allow all devices supporting security to be included into the binding securely.
  • Transaction code has been rewritten to hopefully improve the way transactions are managed.
  • The way associations work has been updated. This is a very messy area in ZWave as there are 2 overlapping command classes, each with multiple versions that all work very differently. This fluidity in the specification means that there are many devices that don’t work exactly as expected - hopefully this will improve the situation for most devices at least (see more information below on this).
  • The notification (alarm) command class has been improved to reduce reliance on the database to define all supported events.
  • Color command class has been improved.
  • UoM (Units of Measure) has been added to some reports - eg temperature units are now handled automatically depending on your unit/location preferences.
  • Nightly heal is added

This binding will require that existing things are deleted, and re-added so that the binding picks up the latest thing definitions . You don’t need to exclude and re-include the devices from the network, and in most cases the devices should look the same to the user so channels should be the same (the database is the same for all versions).

Note that there is now an automatic dongle discovery in the binding. This can be ignored, however if you have auto approve enabled, then it’s possible that this new controller will automatically be enabled and you probably will be best to use it.

The Recommended update process is as follows -:

  1. Backup - always a good idea when upgrading your system :sunglasses:.

  2. If on the release or testing version of OH and on an apt/yum based install, change to the snapshot release repo as the source.

  3. If you are not already running 2.4 snapshots, then upgrade OH using the procedure for your platform.

  4. Ensure that your default region is set so that temperates etc are properly configured. Note that thermostats will not work if this is not set.

  5. Remove all Zwave Things except for the thing representing the Controller. If the controller is accidentally deleted, it should be recreated with the same ThingID, so that the channels do not change. This can be found in the channel info of an items file, or in a backup Thing.json file. If Things are manually configured in .thing files, they can be moved to another directory and then moved back to pull in the updated Thing definitions.

  6. Uninstall the Zwave binding though PaperUI or the Karaf console. How to do this depends on how it is currently installed. If manually installed, delete jar, then uninstall through Karaf, if it is still shows up with list -s | grep zwave . If installed through a UI or the console (a jar was never dropped into addons), uninstall though a UI or the console.

  7. Install the Zwave binding through PaperUI or the Karaf console.

  8. Go to the Inbox and scan for Zwave devices.

  9. Accept the nodes as they appear.

  10. If necessary, perform whatever wake up steps that are needed for battery powered devices so the binding can figure out what it is.

The last point above is generally optional, however it is worth noting that all devices will initially be unknown as the XML files that the binding uses to persist information about the device will be recreated. Mains devices should reappear pretty quickly, but battery devices will take time - the exact duration will depend on the wakeup interval configured for the device (normally, this is in the region of a few hours). You can speed this up by manually waking up the devices (check the manual for each device to learn how to do this). Note that there are a few devices that may not wake up at all by themselves (eg Minimote and Wallmote) and these must be woken manually for them to be discovered.

Note that if you delete the controller thing, and you have previously been using the secure binding, you will need to exclude and re-include secure devices unless you make note of the security key.

One further point to note is that this binding significantly changes the way associations are configured. This area is really very messy in ZWave as there are 2 association command classes, and each one of these has a number of different versions that are all significantly different. On top of this, due to the fluid nature of the spec, many manufacturers have implementations that are non-compliant to any version - in all, this makes working out how to configure associations a bit of a nightmare! If you find associations are not working, then it is recommended to exclude the device, and add it back again so that it is reset and reconfigured with the new binding. If this doesn’t work, then we can look at what is happening in the debug logs.

For those wanting some background or reference material, feel free to read the following thread (it’s not really recommended unless you can’t sleep at night :slight_smile: ).

Thanks to all those who have been testing this - hopefully it will ensure that the pain of the upgrade is minimal :wink: .

Switching from 2.3 stable to 2.4 snapshot (and back)
Switching from Z-Wave development to snapshot binding
ZWave binding migration to development version
Using Security with z-wave devices
OH2 Z-Wave refactoring and testing... and SECURITY
[SOLVED] ZWave binding not working since openhab2-2.4.0-snapshot
Aeon Labs Multisensor 6, suddenly no longer detected, and not in database
Fibaro Smoke sensor FGSD-002 ZW5 V.3.3 unknown device
BasicUI not updating items after migration to Aeon zstick Gen5
Neo coolcam z-wave devices
Not able to change codes on Yale lock (YRD446)
[SOLVED] After update to OH 2.4 - Fibaro Roller Shutter 2 doesn't send command / scene IDs
State change from 100 to 0 and back to 100
Z-wave OH 2.4 Release nodes not communicating or unknown
NorthQ Q-Gas z-wave database update
[SOLVED] Problem using Eurotronic Spirit radiator
Z-TRM2fx device database update
ZWave Node XML Files
Recalcitrant CT100s set setpoint and then unsets immediately... wat?
How update Z-wave binding?
Neo coolcam z-wave devices
My experience upgrading from openHAB 2.3.0-1 to 2.4.0-1
Zwave offline after upgrade from 2.3 to 2.4
Z-wave device all become "UNINITIALIZED - HANDLER_CONFIGURATION_PENDING" after upgrade
[SOLVED] ZWave Binding - Openhab 2.4
Share Z-wave dongle over IP (USB over IP using ser2net / socat ) guide
ZWave Enerwave ZW15SM stuck at Node Initializing: Manufacturer
Item state not correctly updating after ItemCommand 'ON'
Schlage Lock and Zwave snapshot binding [Solved]
Zwave Z-stick changed name
Migrate ZWave from FHEM to openHab (same PI & Controller)
[SOLVED] [Z-Wave] OH2.4.0.S1443 - No temp values from Spirit Thermostat
Update to latest zwave 2.4 snapshot stick and devices are now grey in habmin
After z-wave 2.4 upgrade POPP 004001 no longer reporting battery level every hour
FGK001 stops working after (re)inclusion with Z-Wave-DEV-Binding
Fibaro Flood Sensor not possible to add as a Z-wave device
Z-Wave device association MCO Home
[Z-Wave] Zooz ZEN21 appears as Unknown with 2.4 Snap
[SOLVED] - ZD2102 Window Sensor: Open event not recognized
Zwave problem: polling aborted due to exception
Using a Fortrezz flow meter (new device)
[SOLVED] Eurotronic Spirit Z-Wave Plus & external temperatures
Fibaro Dimmer Issues after upgrade
Zcombo smoke/CO detectors not sending z-wave command when triggered from smoke
Leviton Vizia RF+3 (VRCS4) Scene Controller - not sure how to set up
Battery Drain - Danfoss - Pulling every few seconds
Error 404 when trying to add Discovered Z-Wave Thing
Rebuild zwave mesh network
My struggle with Zwave.. HEEEEELP
Fibaro Roller Shutter FGRM-222 with Venetian Blinds - Lamellas Position
Weak z-wave network
RollerShutter2 FGR-222
Heiman DX1CG-Z CH4 gas sensor won't announce alarm
QUBINO ZMNHXD1 not included despite in Z-Wave Database
"ZWave Plus USB Dongle" in my Inbox since Build 1358
Things with Battery do not react
Eurotronic Spirit Z-Wave Plus doesn't work
zWave Broken. Again
Help with Recommendation
Repeated UI configuration mismatch with multiple z-wave devices
[SOLVED] Polling radiators with the new z-wave binding
Openhab2 2.4.0-M2
[SOLVED] Danalock V3 - Z-Wave
Homeseer MS-100+ appears to have misassigned events
[SOLVED] Home Energy Meter HEM G3 AEON Labs GEN5 ZW095 do not report automatically
ZD2102-5 (Vision Door Sensor) only generates CLOSED state
[Solved] Zwave Binding stops working over night
Updates to thermostat revert to previous value within milliseconds
ZWave Switches not updating OpenHAB
New zwave device fails, attempts to fix leads to all new thing names, breaking item links and rules
Heatit thermostat - channel needed in Z-wave database for ON/OFF state tracking
Odd issue with Zwave, wondering if I am the only one
Aeotec Multisensor 6 temperature units doesn't stay set
Zigbee and zwave manual install script
ZWave controller / nodes stuck at INITIALIZING
Starting an upgrade of 2.3 to 2.5 - cutover mybzwave
ZWave: COMMAND_CLASS_SWITCH_BINARY for endpoint 2 not found
LightwaveRF Binding Updated
FGS211 Zwave Item events not firing
ZWave Configuration Parameters out of sync
Error installing Cloud Connector: "Could not resolve module"
Problem including Kwikset 910; Secure Inclusion Question
Z-wave secure inclusion... from the binding?
Fibaro double switch sometimes ignores commands
Cannot include MS-P220 Dimmer
DWZWAVE25 Z-Wave Door/Window Sensor----open/closed not working
Zwave Binding - Door Lock not working
Zwave Errors - ThingHandler.handleCommand()
Problem with openHAB after restarting - no UIs, nothing really work

Hi Chris,

i made the upgrade and it works very good.
I dont know whats different but my z-weather is working again. It was not unknown … it was simple there.
The last year with many updates and with a fresh installation the z-weather never worked and now i have all values.

Thank you,

1 Like

Many thanks for all your work on this - it is hugely appreciated. Even those who don’t use zwave security will (in my experience) find the new binding significantly faster and more reliable.


1 Like

Just to be sure, this is should also work together with 2.3 stable and not just 2.4?

Yes. Maybe :sunglasses:

1 Like

Worked for me with a little glitch. After scanning for new devices i found a new controller, while the old one was still online. I have only six devices so removing the old controller and setting up an enw one was no problem.

1 Like

I got that one too a while ago (have been running the dev version), I just ignored it and continued using the old controller Thing. So for anyone else reading, you don’t really need to switch controller Thing :wink:


This is correct - the new controller will likely appear on Linux systems as there is an auto detection of USB devices available under Linux now. When upgrading, it’s probably best to ignore this to avoid issues with names of channels etc.


People on 2.3 and the latest binding have reported 500 errors when configuring zwave devices.

Ah, okay, thx. I saw those posts but did not catch the root cause behind it.

Me either… I spent some time searching and couldn’t locate a definitive cause, but the solution seemed to always be an upgrade to an OH snaphot build.

1 Like

Now that dev is merged into master, I wanted to revisit how I upgrade to the latest version of the zwave binding without updating the rest of openHAB.

Simply using bundle:update org.openhab.binding.zwave from the karaf console is not working for me.

The only thing I found to work is to explicitly provide the exact location of the jar in the bundle:update command. Like this.

openhab> list -s | grep zwave
227 │ Active   │  80 │ 2.x.0.old-date     │ org.openhab.binding.zwave

openhab> bundle:update org.openhab.binding.zwave     

openhab> list -s | grep zwave
227 │ Active   │  80 │     │ org.openhab.binding.zwave
1 Like

TMK, bundle:update should pull down the latest. Do you get the latest if you uninstall and reinstall? I’d test, but I’m still using manual installs.

I tried that earlier today and it didn’t work either.

@sihui I see this issue you opened a while back is still open. To your knowledge, is using uninstall/install to update the version of a binding still broken?

I tested again and realized a whole mess:

Let’s start with the current state:

openhab> bundle:list|grep -i zwave
256 │ Active   │  80 │     │ ZWave Binding

Then I executed

openhab> bundle:update org.openhab.binding.zwave

and got

openhab> bundle:list|grep -i zwave
256 │ Active   │  80 │     │ ZWave Binding

So this did not work.

Then I tried

bundle:update "ZWave Binding"

and got the same version again.

openhab> bundle:uninstall org.openhab.binding.zwave

gives an empty karaf screen, but the binding is still showing as installed in PaperUI. Although it does not work anymore :sunglasses:

I did not try to restart openHAB, maybe that solves the PaperUI problem.

Next try:

openhab> bundle:install org.openhab.binding.zwave
Bundle IDs:
Error executing command: Error installing bundles:
        Unable to install bundle org.openhab.binding.zwave: org.osgi.framework.BundleException: Error reading bundle content.

No luck.

So I hit the uninstall button again in PaperUI and the blue mark is gone. Then I installed the zwave binding through PaperUI and it shows:

openhab> bundle:list|grep -i zwave
264 │ Active   │  80 │     │ ZWave Binding

So actually NOTHING works :rofl:

Nothing at all in the logs, btw.

Edit: ahh, damn, it looks like there is no newer zwave snapshot than

But isn’t this the most current version? I just updated to build 1357 about an hour ago, and that’s the zwave version I got with that build.

Oops. Nm. I just saw your edit.

1 Like

Just done the update, but no longer see any neighbors in the individual things, and don’t see the network map in Habmin. Is this expected?


Did you

To the letter!