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 -:
Backup - always a good idea when upgrading your system .
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.
If you are not already running 2.4 snapshots, then upgrade OH using the procedure for your platform.
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.
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.
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.
Install the Zwave binding through PaperUI or the Karaf console.
Go to the Inbox and scan for Zwave devices.
Accept the nodes as they appear.
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 ).
Thanks to all those who have been testing this - hopefully it will ensure that the pain of the upgrade is minimal .