Right now as far as I get the SW version ID does not update after using "Device Firmware updater", even though there are well-documented get version commands. After the update, I see the old version number. However, if I fetch the version it reports a new version. The only way to update the version is exluding\including the device which could break a lot of things when everything is set. Ideally it updater should update the device info, or alternatively, I would love to see the "fetch device version and update info" button.
This will depend on the driver, as that information is populated by the driver code and not anything inherently part of the platform. The behavior is also not standardized (no requirement for it to be called any specific thing, "zero padded" or not--or even to be there at all; the most common convention I've seen is for it to be put into "Data" under "Device Details"). If you have a specific device in mind, someone may know how make that driver fetch (and parse) a new report. Re-inclusion shouldn't be necessary.
But yes, long-term, it may be nice for this to be standardized more as any modern Z-Wave device--and even many older ones--report this information.
If it has one, did you try hitting the Configure button in the device settings tab? (Not all drivers do)
I would also try a reboot of the hub, sometimes a full power down (using the Settings menu) pulling the cord from the wall, and booting makes a difference.
I have only done a few firmware updates, but I seem to remember that it corrected itself after a time. Maybe the overnight maintenance does something?
this is inovelly red series switch with driver from here: Hubitat/Drivers/inovelli-dimmer-red-series-lzw31-sn.src/inovelli-dimmer-red-series-lzw31-sn.groovy at master · InovelliUSA/Hubitat · GitHub
and it updates on version update event :
Summary
def zwaveEvent(hubitat.zwave.commands.versionv1.VersionReport cmd) {
if (debugEnable) log.debug "${device.label?device.label:device.name}: ${cmd}"
if(cmd.applicationVersion != null && cmd.applicationSubVersion != null) {
def firmware = "${cmd.applicationVersion}.${cmd.applicationSubVersion.toString().padLeft(2,'0')}"
if (infoEnable) log.info "${device.label?device.label:device.name}: Firmware report received: ${firmware}"
state.needfwUpdate = "false"
createEvent(name: "firmware", value: "${firmware}")
} else if(cmd.firmware0Version != null && cmd.firmware0SubVersion != null) {
def firmware = "${cmd.firmware0Version}.${cmd.firmware0SubVersion.toString().padLeft(2,'0')}"
if (infoEnable != false) log.info "${device.label?device.label:device.name}: Firmware report received: ${firmware}"
state.needfwUpdate = "false"
createEvent(name: "firmware", value: "${firmware}")
}
}
Seems like "refresh" on the device page made a trick. I will add this info to the first post.