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:

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?