Inovelli LZW31-SN firmware update does not complete due to 'waiting for activation' status
See original GitHub issueDescribe the bug
Updating firmware on Inovelli LZW31-SN results in result 0xFD (OK_WaitingForActivation). The activation never occurs, the node is refreshed and the update does not appear to succeed.
Device information
Inovelli LZW31-SN, current firmware version is 1.47. Updating to v1.52
Last Known Working Configuration
-
New device
-
Previously working device (node-zwave-js)
- Which library version/docker image/adapter version?
- Have you made any recent configuration changes to the device? Describe.
-
Previously working device (other platform)
- Which platform? Z-Wave PC Controller 5
- Have you made any recent configuration changes to the device? No
Installation information
How did you install node-zwave-js
?
-
zwavejs2mqtt
(latest) docker image -
zwavejs2mqtt
(dev) docker image - ioBroker.zwave2 adapter
- Pkg
- Manual Docker build
node-zwave-js
branch: masterzwavejs2mqtt
branch: master
- Manually built (as described in the docs)
- Other:
To Reproduce Steps to reproduce the behavior:
- Initiate ‘Begin Firmware Update’ for node on the internal Control Panel web page.
- Select Target 0 & otz file
- Wait for update to complete
- Observe Controller Status reports completion with status code 0xFD
- Refresh node
- Observe node firmware is not updated
Additional context
Logfile: Could not successfully start a firmware update with the logging enabled. Will continue to try. Even after restarting the docker container and waiting for all nodes to complete the interview stage, I received a number of errors (firmware update in progress, node does not support firmware update [though it seemed to be identified and healthy])
Issue Analytics
- State:
- Created 3 years ago
- Comments:14 (11 by maintainers)
Top GitHub Comments
I was able to update Target 1 on mine no problem, that .bin file should just be firmware. Its the same file you would pass when using the Zwave PC controller 5.
After digging into this a little further, I think the problem is that ‘activation’ option in FirmwareUpdateMetaDataCCRequestGetOptions does not appear to get set. If activation is undefined, FirmwareUpdateMetaDataCCRequestGet serialize will not add the payload[9] word with the appropriate bit set.
I don’t really have experience with TypeScript, but I couldn’t find any place in the code where the value is set, and it does not appear to have a default. From the comment in Node.ts, it appears the expectation is that this bit will be set to 0 (ie. activate immediately). As a test, I set ‘activation: false’ in the call to requestUpdate (Node.ts). With this change, the firmware status returns 0xFF (and update is successful). Is this an acceptable change? On the surface, the change seems reasonable because there are other checks in requestUpdate to ensure command 4 (or higher) is supported.
However, target 1 does not update. It still reports error 7 (which may be a separate issue). I tried removing power from the switch, re-interviewing it, and updating target 1 again but I only get status 7, so more digging will be required.