[RELEASE] Z-Wave Firmware Updater

From the programmer, earlier in this thread:

You will need to exclude and re-include without secure joining in order to use this firmware updater. It’s hanging because it can’t send S0 traffic.

I'm pretty sure everyone has been saying S0 is what it should be. S2 is what it isn't supposed to be. I think S0 means no security. Can you double-check?

Either way, I also tried with all the "S#" unchecked, and got the same error.

That's the ancient encrypted communication. Used before Z-Wave Plus S2 (door looks, etc. that needed more security). From what I gather, it isn't very good--and it has high overhead. The experts can say more about this. :slight_smile:

No, for this driver you want NONE, after the driver if possible you want S2, SO is bad news on large networks and if possible (hard to do on C7) should be avoided unless required (locks). S2 is the same as NONE but with security (in traffic) so is great. S0 is high traffic and can bring down your network if not managed.

I feel I'm doing everything you guys are saying. Here is a recording...

I don’t have your device, so I don’t know the format of your OTA firmware file, which determines which of the two versions of the updater you should use. However, if it’s a .hex file, the binary updater (the new updater) is broken for .hex files, and you need to use the original version linked in the first post in this thread.

This could not be more wrong. Here’s a concise explanation from Mike Maxwell, the Hubitat hardware guy:


Once again, here is my post upthread summarizing:


Running into Cannot invoke method and() on null object on line 461 (firmwareStore) as well trying to update an Inovelli LZW36.

  • The switch is joined with ALL of the security options unchecked
  • It is ~5ft from the hub
  • It is a brand new c7 hub, and this is the only device paired to it.
  • Specifying https://files.inovelli.com/firmware/LZW36/Beta/LZW36_1.36.gbl as the firmware URL, which I verified downloads without redirects/prompts via wget

The error below is from trying to use the zwaveFirmwareUpdater.groovy

dev:372020-10-07 01:05:21.947 pm errorjava.lang.IndexOutOfBoundsException: toIndex = 8 on line 103 (parse)
dev:372020-10-07 01:01:32.475 pm errorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 461 (firmwareStore)
dev:372020-10-07 01:01:32.454 pm infofirmware total bytes: 0
dev:372020-10-07 01:01:32.451 pm infoSorted all the bytes. cleaning up some memory...
dev:372020-10-07 01:01:32.385 pm debugpacking all the bytes...
dev:372020-10-07 01:01:30.641 pm debugfirmwareMdReport: checksum 0 firmwareId: 3585 manufacturerId: 798 maxFragmentSize: null firmwareTargets: 0
dev:372020-10-07 01:01:30.634 pm debugFirmwareMDReport: FirmwareMdReport(manufacturerId:798, firmwareId:3585, checksum:0, firmwareUpgradable:false, numberOfTargets:0, maxFragmentSize:null, firmwareIds:[])
dev:372020-10-07 01:01:30.446 pm infoVersionReport- applicationVersion:1.34
dev:372020-10-07 01:01:30.442 pm infoVersionReport- zWaveProtocolVersion:7.13
dev:372020-10-07 01:01:30.266 pm infoFirmwareUpdateMd version:5

I've also looked at the zwaveBinaryUpdater.groovy driver but I can't find anything from Inovelli on what the firmwareTarget value should be and don't want to just randomly try values there.

Have you tried asking inovelli support or the inovelli community?

I just updated one on Monday and ran into the same issue you did. Inovelli has the wrong updater posted. Use this one

Firmware target value should be zero

When it finally shows 100% like this, it's done.Screen Shot 2020-10-05 at 6.23.35 PM

Switch the driver back, then press Save Device, then Save Preference and you should see the new firmware version.
Screen Shot 2020-10-05 at 6.31.12 PM


That was it! I'll file a support ticket with Inovelli about their docs being out of date.


It took about 2 hours to finish.


Took 16 minutes for me, but it is also the only device on the hub and is only a few feet from the hub.

1 Like

I also did the update from my C-4, not my C-7. Forgot about that huge difference.

Has anyone ever successfully excluded a Zooz device after doing a firmware update? I always have to force remove it from the device page and then do a factory reset on the device before re-including it. I'm not sure how exactly it happens, but I keep reading about creating phantom nodes by force removing devices. Is there something else I should be doing after updating?

Any time you update the firmware you should factory reset the device regardless of whether or not you had to forcefully remove it.

A secondary controller is really helpful here, un-pair, firmware upgrade, re-pair.

You can find out if you have any ghost nodes by checking settings, zwave details, then look and see if you have any devices besides the first that have nothing in the cluster column.

1 Like

Yes, I've successfully excluded every Zooz device that I've updated the firmware on, with nothing but the hub. May take a few tries, and I've found it useful for the hub to be close to the device.



@bcopeland Hi! Were you able to figure out how to update the WD200. Mine is on version 5.11 and I would like to update it to version 5.14. There is a problem with one of the leds getting stuck turned on. If I set it to off it stays off for 1 second and gets back to on again.

Anybody has the latest hex firmware file for the Leviton DZ6HD?

Thanks! Just updated the docs with a specific page for Fan/Light and specific page for the Dimmer.

Thanks all for bringing this up!


I have a few of these in my house. I emailed their support a few days ago. They said 1.20 is the latest version. If you bought yours recently as I did they should already have it (I confirmed that mine did).