Speeding up device firmware updates

So I've spent a lot of time today prepping new Inovelli switches for use. I have a test rig where I can power them up, add them to the network, perform updates and configure them before putting them in to production use. (This approach keeps the WAF high)

During this adventure, I spent a silly amount of time attempting firmware updates. I've been using the built in Device Firmware Updater which I love due to it's simplicity for someone like me. BUT... today I had several upgrade attempts fail and I have another that is taking hours to run. (27% after 4 hrs.) My test rig is only 6 unobstructed feet from my HE. I'm not sure what else I can do to speed up the process.

I'm using a C7 on 2.2.9.130.

I was hoping that the wisdom of this community could help me find a more reliable and time-efficient way to do Z-wave OTA firmware updates.

  1. Does the security with with the device was joined to the z-wave mesh matter? (A switch that I joined with S0 did seem to go faster than the one joined with S2).
  2. Would I be better off using a laptop with a z-stick to perform these updates? (Does anyone have a good guide for this?)
  3. Is there a difference between the built in Device Firmware Updater app and the Z-wave Firmware Updater by Bryan Copeland?
  4. I don't suppose there's a non-z-wave-ota way to update devices? (These are switches that haven't been installed yet).
  5. Anything else?

Thanks in advance!

The best tips I've seen involve keeping the device close to the hub. You might have better luck without security, but S0 will likely be worse than S2, so I would definitely avoid that if you can. That being said, any way should be theoretically possible. I haven't seen anyone confirm this, but I can only assume that keeping your Z-Wave network relatively non-busy during this time (e.g., limiting chatty devices, like some power meters can be), if not the hub in general, could also be helpful.

That being said, if you're willing to use a Z-Wave stick with Z-Wave PC Controller, that has almost always been faster in my experience. (Part of the reason is also likely that I create a separate network, so it's not doing anything else, and I'm able to get the PC close to the device, but it could be that it's just a faster implementation for whatever reason.) If you don't have a PC but do have a Raspberry Pi, a VM, a Docker environment, or something else you could run ZWaveJS2MQTT on (basically a control pane for ZWaveJS, which this really uses underneath), that can also be used to perform OTA updates--something that Mac and Linux users might want to consider.

The differences between the Device Firmware Updater app and the Z-Wave Firmware Updater "community" driver should be minimal, aside from the fact that the former is a built-in app with a but more polished and intuitive interface. The latter requires temporarily switching to the driver and finding a way to host the file yourself (the hub can work--File Manager can do it--but I'd use port 8080 in the URL rather than the default of 80). But Bryan wrote both, so they are likely quite similar.

I haven't seen a Z-Wave device that supports non-OTA update methods, but I don't doubt that some may exist. All devices I've updated have only supported OTA to my knowledge. (Some DIY Zigbee devices I've used do require a wired connection with special software to update/change their firmware, but these are few and far between--and, of course, not Z-Wave.)

tl;dr If you're willing to do it, Z-Wave PC Controller (or perhaps ZWaveJS2MQTT) with a USB Z-Wave stick is probably the way to go--and as an added bonus, it's handy to have for things like ghost removal should you run into that problem.

4 Likes

I firmware update my Inovelli switches with a Homeseer stick as a secondary controller and Z-Wave PC Controller. Takes about 30 minutes per switch (25 minutes for the main code, and a few minutes for the LED bar code). And thats with S2 enabled.

Thanks for the feedback and ideas @bertabcd1234 and @coreystup . Last night after reading through all 1300+ messages in the Z-wave updater topic, I found several notes saying that it either didn't work or struggled with S2. So I stopped the update, excluded the S2 switch and re-included it using S0. Then the device firmware updater was able to finish in a reasonable amount of time. So that definitely helps. Now I can re-join it using S2.

That being said, it sounds like I'll be learning how to use the PC Controller software as I have 6 more switches to go and I need a more reliable and timely method.

Thanks guys!

Do you mean S0 or no security? There is a difference. In general, S0 is the worst way to have something paired. It increases Zwave traffic by 3x and if done with too many devices can overwhelm the Zwave network.

1 Like

Honestly, I'm not exactly sure. The pairing dialog has changed from with 2.2.9 and it either allows for S2 or it doesn't. You don't get the 4 checkbox dialog like you used to.

After something is paired how do you tell?

That being said, I paired it without S2 just so the firmware update would succeed in a reasonable amount of time. I have every intention of excluding it and re-including it using something better than S0. My understanding is that full S2 should really only be used on access control devices like locks. I'm still learning how to navigate these waters effectively.

Here's what the z-wave details page has for that switch.

The column with "None" is what you are looking for there. If you hit "Skip," it should pair with no security. The dialog with the checkboxes would have let you choose S0 and/or any form(s) of S2. Old dialog or new dialog, "Skip" should let you pair without security (which, as mentioned above, is quite different from S0), and it looks like that's what happened above--so if that was your goal, it worked! :smiley:

The other way to tell is on the device page under "Device Details." If you see an "S2" field there at all, it means it paired with security. If you see "S2: 128", that means it paired with only S2. Other values are some combination of one or more S2 grants and possibly S0; they just take some work to de-code. The Z-Wave Details page in your screenshot is probably the easiest way since it shows you the highest grant and the one the hub will use for communication with the device.

2 Likes

Awesome, Thanks for the clarification. Yes, I clicked "Skip". I was hoping for something between S0 and S2 access control. But neither of those 2 extremes.

1 Like