Firmware Updater App Problems/Bugs

I've been breaking z-wave so I thought I'd unload all the oddities I have seen thus far:
The firmware update app has odd behaviour if the firmware version query fails.


If you click on the button, it goes directly to try and query the last device I last selected:

Next, you see the error that it couldn't get the device to respond to the firmware version query.

Since this is a battery powered device that wakes up only every x minutes, this is a bit expected. However, the system already knows the firmware version:
image

I would suggest that the system should first use firmwareVersion if it is available, and maybe re-verify it as a pre-flash check

Suggestions for the UI:

  • I think the main page should show any pending, completed or ongoing actions with an "upload images" button in the top. This way, the user can easily return to the page and see that their upload is progressing or has maybe already completed.
  • The status is shown as percent, which looks good, but I'd love to see an advanced dropdown showing x of y bytes transferred and ETA. The objective is to identify a stalled firmware update or just one that is going to take a day or two...
  • I think the flash process should be as follows:
    Which type of device would you like to update:
    (shows a list of all devices so they can pick one)
    User Picks the device
    (Shows all the other devices with that type and their related firmware version - or pending - in which case it queues the request to read it and update that firmwareversion field.)
    User picks one or more devices to flash.
    User picks the file to flash
    System flashes 1 or more in turn.

The reason I suggest this is that owners tend to purchase multiples of the same type of device. For example, I have 3 identical repeaters. Now, which ones did I update so far?

1 Like

Only if the driver puts it there, and there is no standard method of doing so (though newer built-in drivers have a convention for what they've been doing--still not any requirement that has to be followed, whether a built-in or custom driver). There is also no convention for if/when this is updated, so it could be out of date. IMHO, relying on this information the firmware updater app--where it would be good to know for sure the actual version on the device (and the specific target if it has more than one)--would not be good, and the current behavior is more desirable for me.

Can't speak to the rest, but I'm sure the right people will see this and decide. :smiley:

1 Like

I have seen on my Zooz and Jasco devices that I did a firmware update, and the info on the Device Settings page was still the old firmware number. It was correct via Firmware Updater.

The fix appears to be to remove and re install these, but I am too lazy to do so. So I agree that the Firmware Updater should be the final authority of versions.

3 Likes

Drivers all seem to only query the firmware versions on initial pairing. They do the ManufacturerSpecific query on initialize() and that's it. The refresh() action usually doesn't bother asking again.

If firmware version tracking/logic was to be implemented at a higher-than-just-informational level, it might make sense to make it its own Capability. Then the workflow and API would be defined.

3 Likes

Yes, it would be nice if there were a consistent interface with the drivers. The firmware update tool appears to query the firmware version, but the problem is devices that only wake up every so often. After flashing it is also necessary to re-query the version.