[RELEASE] Z-Wave Firmware Updater

thanks much! will this solution work via hubitat firmware updater without any additional hardware? I'm going to read the thread. just sorry, I was sooo lazy reading through. asking is easier... apologies here for just asking out of the blue

1 Like

Yes it will, after you extracted the firmware from the .exe file. I will look the how to up for that as well and link it.

Its here;

Sorry I didn't check in for a while. Yes. I updated it with the very old updater software.

Trying to update my ZEN25. Seems to have worked and is now showing the latest version but this wont go away after several hours. Is it finished??
image

Yeah I dont think you get any other status messages after that. It only takes them a minute or two to update so you should be safe to switch back to the normal driver.

Make sure you check all the settings again, the defaults on the ZEN25 are terribly low and will overload the mesh.

3 Likes

Thanks!

Does anyone have a follow up on the below issue?

dev:142023-08-14 09:24:55.874 PMerrorjava.lang.NullPointerException: Cannot invoke method and() on null object on line 461 (method firmwareStore)
dev:142023-08-14 09:24:55.854 PMinfofirmware total bytes: 0

I've tried hosting my firmware files (ZOOZ Zen72 - ZEN72_V03R20.gbl) in various places, both locally (laptop with python simple http server), on the hubitat itself, dropbox, directly from zooz (https://www.getzooz.com/firmware/ZEN72_V03R20.gbl) and nothing has worked. I consistently get this exact error, and am stuck at "Padding hex bytes..."

Can anyone help me? It seems impossible to update...

I've overridden my DNS settings on the hubitat, disabled my local pihole instance, etc, etc, etc - nothing seems to work. It consistently refuses to download, I see that it grabs the file from my local laptop (python simple http server), but somehow breaks when attempting to download it?

Would love some guidance.

Upload the firmware to Hubitat. Click on the file from the file manager page. Use that link with firmware updater.

1 Like

You are probably using the original updater which does not support .gbl files. There is one for binary files in Bryans repo but I would suggest using this fork instead that fixed a couple of bugs: [BETA] Updated binary firmware updater

1 Like

I've had luck updating many Zooz devices. The earlier models (1.0 or 10.0) can be more difficult because they have weaker Z-wave signals than the 2.0 or 3.0 which usually have either 700 or 800 series Z-wave.

For most devices, I plug them in near my computer and hub to add them to the network and update their firmware. It goes much faster that way. Obviously once installed I am at the mercy of the Z-wave network but they tend work, just much slower.

Once the firmware updates, pressing Configure & Refresh Parameters seems to update the firmware version at the bottom of the device page.

Having trouble getting this to work. Trying to reflash a ZEN52 double relay switch. Tried two different ones, one at V1.1 firmware and another at V1.6. Both didn;t see to work. Last attempt ZEN52 was 18" from Hubitat.

The firmwareUpdateProgress toggles through a couple steps
something about metadata
then downloading firmware
then gets stuck on Padding hex bytes nd never moves beyond this step.

Installed the firmware from this Zooz link:
https://www.getzooz.com/firmware/ZEN52_V01R70.gbl

Current States

  • currentFirmwareVersion : 1.60
  • firmwareFragmentSize : 40
  • firmwareUpdateProgress : Padding hex bytes...
  • lockedBy : None
  • firmwareUploadPercent : null
  • manufacturerId : null
  • firmwareTarget : null

State Variables

  • resyncAll : false
  • lastCheckInDate : 04/05/2024 10:35:26 PM
  • lastCheckInTime : 1712370788575
  • deviceModel : ZEN52
  • group1Assoc : true
  • endPoints : 2

first few lines of driver code:

// v1.00
import groovy.transform.Field

metadata {
definition (name: "Z-Wave Firmware Updater",namespace: "djdizzyd", author: "Bryan Copeland", importUrl: "https://raw.githubusercontent.com/djdizzyd/hubitat/master/Drivers/Z-Wave-Firmware-Updater/zwaveFirmwareUpdater.groovy") {
attribute "currentFirmwareVersion", "string"
attribute "firmwareUpdateProgress", "string"
attribute "firmwareUploadPercent", "string"
attribute "manufacturerId", "string"
attribute "firmwareId", "string"
attribute "firmwareTarget", "number"
attribute "firmwareFragmentSize", "number"
attribute "lockedBy", "string"

    command "clearLock"
    command "getVersionReport"
    command "abortProcess"
    command "updateFirmware", [[name:"firmwareUrl", type: "STRING", description:"Firmware URL"]]
}
preferences {
    input name: "debugEnable", type: "bool", description: "", title: "Enable Debug Logging", defaultVaule: false
}

}

Try the steps here. I documented these steps since there's no other way to update S2-paired devices, but these steps work no matter what security you paired the device with.

I've done dozens of updates using these steps, and this process has never failed me.

[GUIDE] Z-Wave device - how to update firmware using the driver method - :bellhop_bell: Get Help / Devices - Hubitat

Voila it worked! Amazing how if you actually follow the instructions things can work.

Much appreciated. Now onto 35 more devices one by one....

1 Like

Glad to hear it! I know the steps seem kludgy the first time you go thru them, but once you do it a couple/few times, you figure a rhythm.

my error was pasting in the mfgs url to the binary file instead of loading the file on HE and then using that link in the updater. Also inserting the :8080 step in the path.

All set now

1 Like

Hmm, that should not make a difference but maybe your hub was having issues getting a clean download from the Zooz site so the local file worked better. I have used the Zooz urls before and that normally also works.

hmmm not sure. I didn't insert the :8080 on the external url, would that be the difference?

No you only need that when using the hub URL, for some reason it lets the hub grab the file from itself that way. Any external URL should just work as-is.

Adding to the above, it looks like this may have failed for you because you have the "original" updater from the first post. For a GBL file, you'd need the "binary" updater several posts down (or the modified one linked to above). As mentioned above, this shouldn't be related to the URL since both should have worked.

2 Likes

That is probably the key. I swapped to the newer updater (v1.01 from v1.0) per advice from here. So there were three things I did differently that took me from failure to success. I suppose I only needed 1 of the 3 to prevail but I'm just happy it worked out.

Thanks to all who have helped me with my advanced Zooz driver and firmware upgrade steps. Its been incredibly helpful and saved me a lot of thrashing around on my own, Much appreciated.

3 Likes