I've downloaded the EU version of the latest Aeotec Nano Dimmer (v2.03) from aeotecs support site. Changed the name of the .ex_ file to .exe.
When I try to update the old device (v1.2?) I get the message: Error while calling api beginFirmwareUpdate: Unable to extract firmware from file: This does not appear to be a valid Aeotec updater (invalid firmware length)!
What am I doing wrong?
@AlCalzone Sugestions here?
Source code: https://github.com/zwave-js/zwavejs2mqtt/blob/master/lib/ZwaveClient.js#L2219
@atterdal send me the file please (and you don't need to rename either)
The .exe file's in that zip. Thank you!
I believe that EXE is the standalone firmware update w/ an EXE designed to be used as an executable whilst the Aeotec stick is plugged into your PC. Ie, it is not the raw hex version you would need for a firmware update through a controller like ZWaveJS2MQTT.
Not for this particular one, but I have found there are people on various forums that have extracted the hex firmware out of the exe and posted the file for download to use.
@scott7685 zwave-js supports extracting the raw firmware from Aeotec updater exes.
MIND = BLOWN @AlCalzone
That is phenomenal. I have used it to upload the extracted hex but have never tried a full exe
@atterdal seems like that file had another variation that I haven't encountered yet. The linked PR should fix this.
There's a standard for everything I guess. Thank you so much!
There's a standard for everything I guess
Not when it comes to reverse-engineering 馃槄
@AlCalzone Faced the same with TriSensor, I will try to test with your PR
It seems that it's the same issue with v3.02 EU firmware of Aeotec ZW132. Please see the firmware below:
https://aeotec.freshdesk.com/helpdesk/attachments/6120512641
Found it - just a matter of allowing spaces in the embedded firmware name. Fix is on the way.
I've pulled the latest Docker image (master, updated 8 hours ago) but I still get the same error message.
Is the Docker not in sync with this repo?
@atterdal Docker image is sync with zwavejs2mqtt master branch, and latest zwave-js __release__
Too be safe I waited for new release and updated to latest master on docker. Still get this message when trying to update:
zwavejs2mqtt | 2021-02-17 13:42:47.495 INFO ZWAVE: Failed to start the update: Invalid manufacturer or firmware id! beginFirmwareUpdate {
zwavejs2mqtt | success: false,
zwavejs2mqtt | message: 'Failed to start the update: Invalid manufacturer or firmware id!'
zwavejs2mqtt | }
Is it related to the node I'm trying to update register as "Unkown product 111" from "Unkown Manufacturer 134"?

Hmm, my test case with current node-zwave-js master still works. So there's probably some version mismatch.
It says "App version: 1.1.1" "Zwavejs Version: 6.4.0"
You did load the exe from the zip file above?
@robertsLando maybe another artefact of the duplicate dependencies due to zwave-js-server?
Yes, same .exe as I sent before. Is it expected that the node shows up as "Unkown product 111" and "Unkown manufacturer 134"?
@robertsLando maybe another artefact of the duplicate dependencies due to zwave-js-server?
I'm waiting for the new beta 7 release, that should be fixed then
@atterdal just to be sure, are you using master or dev tag ?
@robertsLando master
Ok that should have the latest things so. Sincerly I dunno what's wrong here :( Could be related to the mess with zwave-jjs server deps but need to wait a new beta release
Hi!
@robertsLando - I have a bunch of Heltun Devices that i need to firmware update, and was hoping that
ZWaveJSMQTT would help me to do. I can use my firmware update files in the ZWave.me application, but am unable to update through ZwaveJSmqtt. No issues adding them to my controller, but when i try a OTA update it gives me
"Error when calling API befinFirmwareUpdate: Unable to extract firmware from file: Could not parse HEX firmware file!"

Attached the .ota file zipped if you can see anything that makes the update crash?
Hi!
@robertsLando - I have a bunch of Heltun Devices that i need to firmware update, and was hoping that
ZWaveJSMQTT would help me to do. I can use my firmware update files in the ZWave.me application, but am unable to update through ZwaveJSmqtt. No issues adding them to my controller, but when i try a OTA update it gives me
"Error when calling API befinFirmwareUpdate: Unable to extract firmware from file: Could not parse HEX firmware file!"
Attached the .ota file zipped if you can see anything that makes the update crash?
And - as @atterdal above, my device is also "unknown" manufacturer by zwavejsmqtt.

Is there a way to make zwavejs read the manufacturer xml from the device? Zwave.me can read this. :)
@johanschelin can you open a new issue for this in https://github.com/zwave-js/node-zwave-js please?
For the record, using zwjs2mqtt 5.2 zwjs 7.10, was successful in updating .exe firmware to Aeotec HEM-G5.