[RELEASE] Z-Wave Firmware Updater

Just curious, did you hit 'configure' after you changed the driver back?

S.

1 Like

[quote="anil.jain, post:1110, topic:38237"]
now it is stuck at device flashing for more than 1 hour with the new driver[/quote]

It actually only takes a few minutes to flash, but there's no message afterwards. Have you tried excluding/including? Maybe resetting the switch?

yes i did but nothing happened :frowning:

When you join it and it asks for a Security Level, which level do you pick? I was having issues with my Zooz switch, and they recommended joining at Level 0. I was able to successfully reflash my switch after that.

how do you do that?

Exclude the device, and include it again. On my Zooz, it would ask me what security level I wanted, and I clicked the bottom choice, 0 Security Level. I don't know if your device will make that request or not, but it's worth a try.

tried that also no luck with that also. running out of idea's now

Have you reset the device? I'm sure it's different for each manufacturer. On my Zooz, you press the switch up 3 times and hold it 10 seconds on the third time. My Inovelli's have you switch up 3 times and down 3 times (iirc).

tried that also for leviton it is press the top for 14 second till the light start blinking yellow and red then tap the top again and it will reset it to factory default. same version 1.15 after hard reset

When trying to update my Inovelli Fan + Light Switch (with S0 and the new updater), it always gets stuck on "Padding Hex Bytes", and shows this error in the log:
java.lang.NullPointerException: Cannot invoke method and() on null object on line 457 (firmwareStore)

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:

image

Once again, here is my post upthread summarizing:

2 Likes

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

4 Likes

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

4 Likes