[RELEASE] Z-Wave Firmware Updater

Oh, ouch. Yeah, based on my reading of many threads on here, other than locks & garage doors, I've seen no compelling reason to secure join devices.

Good luck! If you decide to do it grabbing a crazy long ethernet cable and a big battery might be your best approach for some of your devices. I know, pair in place is best, but thats a heck of a task!

S.

2 Likes

The one thing secure join does is increase traffic between devices. I think the number is 3X as much increase. That can really slow down the hub.

If you are going to delete and re-pair, now is the time before you get 2-3 times that many devices and really slow the hub.

But I would first check each device's property page (Device tab) to see if they truly joined that way. Some may have not, so you may not have to wipe everything and start again.

3 Likes

In theory it should.. The code is in there for secure devices.. But I have not tested on a securely joined device.. May I ask why you chose to join everything securely?

3 Likes

Long story short: It was an accident

Long story: I have been on ST for about 5 or so years and I was growing increasingly frustrated/annoyed with ST, so I looked to move away. Initially, I had HE but didnt get too far with it before diving deep into home assistant. I ended up running HA on a NUC with a nortek stick, but wasn't pleased with the zwave lock options, so I ended up moving my locks to HE. Eventually, all of my zwave came over. At some point, I must have flipped the setting and never changed it back. Along the way, I found inovelli switches and decided to not only change my hub, but also phase out some of my older zwave switches.

From my experiences, theres something off on the secure update code :slight_smile: I've since removed and readied two switches and updated to the 1.44 firmware Inovelli released today.

Thanks for this brilliant tool Bryan @bcopeland ! I've been looking through this thread to see if the instructions for extracting the HEX code for the Aeotec firmware are here somewhere, but I was unable to find them. I hate to ask, but would you be able to extract the HEX for the Dual Nano switch with energy monitoring - AU region please: https://aeotec.freshdesk.com/helpdesk/attachments/6100218799

1 Like

Hey @bcopeland...

Looks like the latest Inovelli .BIN file is indeed fixing issues for some people so we will need to update that for those of us who have their switches. Any chance of a reverse engineer on getting that to work or should we not expect support for that in the future with the Z-Wave Updater in the future?

2 Likes

Yup.

I have been testing the betas. I have 13 dimmers.

I’ve only ever updated with the otz and have been having issues with flickering.

After updating with the bin (using a zstick) the flicker had gone away.

2 Likes

Did you find a solution for the Leviton's... I'm getting the same error for the DZ6HD and DZ15S, it goes through "downloading firmware", "parsing firmware" and then comes to "failed to find matching firmware".

I've tried a couple different ways of linking to the github files... 'copy link address' and also the address of the 'raw' file

copy link address:
H..ps//github.com/djdizzyd/hubitat/blob/master/Drivers/Z-Wave-Firmware-Updater/Leviton-DZ15S_01_20.hex

raw address:
https://raw.githubusercontent.com/djdizzyd/hubitat/master/Drivers/Z-Wave-Firmware-Updater/Leviton-DZ15S_01_20.hex

Thanks for any help.

Edit: Here is the log from the last attempt if it helps.
Annotation 2020-05-28 165231

@medlock.ryan, no I never found a solution.

@bcopeland, have you had any luck with the Leviton hex files located on your github? I kept getting the "failed to find matching firmware" error messase just like the poster above. Appears to be for the Leviton DZ15S switch. Could it have got borked somehow during the conversion from the exe file?

I have a lot of ZEN27 devices to upgrade. I've successfully done the first one, but it dropped off the z-wave network and needed to be re-added. Since the devices are connected to a few things, like google home, and rules, what's the best course of action for not breaking anything now (or when a new upgrade comes out again). Virtual devices had been mentioned, can someone walk me through using them.

  1. Create placeholder virtual devices.
  2. Update your switch/dimmer
  3. If it drops off, exclude it first before adding it back
  4. Replace your placeholder with the real switch.

The first dimmer that you didn’t exclude before adding it back has created a stranded mode that is going to mess with your zwave network.

3 Likes

Stranded mode, what does that mean? The device didn't require being excluded to be added back, and the original device is still registered in Hubitat (even though it hasn't been updated since it fell off).

Also, regarding virtuals, can I swap everything over to them and leave them there as pass-throughs to make life easier later?

Yes because the device was factory reset in the upgrade process. The stranded node is from the perspective of the zwave controller from which you never excluded the device.

And, from personal experience, i guarantee you this is going to cause issues. If you’re lucky, it’ll clean up in the overnight maintenance process. Didn’t for me - I had to add a secondary controller to find and delete the stranded nodes.

1 Like

This message and the three that follow it describe what can happen when a device that's been factory reset isn't excluded before adding it back again.

1 Like

For anyone interested in running a temporary local webserver to serve update hex or otz files for @bcopeland's Z-Wave Firmware Updater, I just found out that this one-line python webserver works fine (python -m SimpleHTTPServer 8080). It will serve whatever files are in the directory that it is executed in. No need to upload files to GitHub if you don't want to.

10 Likes

That's awesome! I was uploading mine to the www folder in my Home Assistant (Supervised) configuration folder, which serves them at /local on that HASS instance, but this is even easier! :slight_smile: (...assuming that you have Python, and as a hint for you macOS users, it's built-in, or at least will be until the next version or two when Apple is likely to remove it by default.)

2 Likes

The newer version of this python one-line is:

python3 -m http.server 8000

I'm able to run this out of my Ubuntu (bash) sub-system on my Windows box.

2 Likes

Funny, I spent an hour trying to remember how to get netcat to do what python does out of the box. I ended up just installing Apache or something...lol

2 Likes

Inovelli Magic Method? I'm having the worst time getting switches (only) to update. Dimmers are OK with this tool.

LZW30 and LZW30-SN both will respond to the tool to the point of uploading fw, tool stops and hangs at "Please wake up your sleepy device" stage. Switch is no-op at this point, must pull the air gap reset on it to restores normal ops.

Switches report between 1.09 and 1.11 fw installed. Flashing to v1.17 via Git.

None are joined as secure.

Should this work? Is there a working method? Thanks!

Logs:

dev:8332020-06-03 10:53:25.212 am debug7A03031E0201223A00002800
dev:8332020-06-03 10:53:25.183 am debugFirmware Descriptor: [wFirmWareCommonSize:32733, wFirmWareBank1Size:31900, wFirmWareBank2Size:31094, wFirmWareBank3Size:29471, manufacturerId:798, firmwareId:513, checksum:32737]
dev:8332020-06-03 10:53:22.115 am infocalculating crc...
dev:8332020-06-03 10:53:16.414 am debugOTZ Headers: [compressedLength:98032, crc16compressed:20657, unCompressedCrc16:7189, scramblingKey:a151903c6e0ff121ed0903cbeff0, firmwareDescriptorChecksum:32737, fastLzLevel:1]
dev:8332020-06-03 10:53:16.365 am infogot otz compressed image reading compression header
dev:8332020-06-03 10:53:16.347 am infofirmware total bytes: 98059
dev:8332020-06-03 10:53:16.343 am infoSorted all the bytes. cleaning up some memory...
dev:8332020-06-03 10:53:16.338 am debugParser: EOF
dev:8332020-06-03 10:53:02.065 am debugParser: 16 bit shift: 0x1
dev:8332020-06-03 10:52:36.831 am debugParser: 16 bit shift: 0x0
dev:8332020-06-03 10:52:36.805 am debugpacking all the bytes...
dev:8332020-06-03 10:52:33.781 am debugfirmwareMdReport: checksum 63878 firmwareId: 513 manufacturerId: 798 maxFragmentSize: null firmwareTargets: 0
dev:8332020-06-03 10:52:33.769 am debugFirmwareMDReport: FirmwareMdReport(manufacturerId:798, firmwareId:513, checksum:63878, firmwareUpgradable:false, numberOfTargets:0, maxFragmentSize:null, firmwareIds:)
dev:8332020-06-03 10:52:33.128 am infoVersionReport- applicationVersion:1.9
dev:8332020-06-03 10:52:33.124 am infoVersionReport- zWaveProtocolVersion:6.4
dev:8332020-06-03 10:52:32.924 am infoFirmwareUpdateMd version:4