Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Zwave-JS-UI rejects OTA firmware file that Simplicity Studio is happy to program #6690

Closed
3 tasks done
TheKorn2 opened this issue Mar 1, 2024 · 13 comments
Closed
3 tasks done
Labels
cannot fix ❌ This is something out of our control - like invalid device behavior

Comments

@TheKorn2
Copy link

TheKorn2 commented Mar 1, 2024

Checklist

  • I am not using Home Assistant. Or: a developer has told me to come here.
  • I have checked the troubleshooting section and my problem is not described there.
  • I have read the changelog and my problem is not mentioned there.

Deploy method

Snap

Z-Wave JS UI version

zwave-js-ui: 9.9.0.09b107a

ZwaveJS version

zwave-js: 12.4.4

Describe the bug

AEON labs ZW095 Gen5 HEM... OTZ update file supplied directly from Aeotec is rejected with "Unable to extract firmware from file: No EOF record at end of file" message.

Load OTZ file in Simplicity Studio and it's more than happy to load it and program the end device with it.

To Reproduce

Select a node (preferably a zw095, but should be trigger-able by just about anything). Go to advanced, firmware update, begin. Select attached OTZ file (which has been zipped for upload to github, but should be unzipped before attempting).

See unhappy message.
firmware_woes

Expected behavior

ZW095_HEM_G5_2P_200A_US_V1_33.zip

OTA update should proceed.

Additional context

No response

@TheKorn2 TheKorn2 added the bug Something isn't working label Mar 1, 2024
@TheKorn2 TheKorn2 changed the title Zwave-JS-UI rejects OTA firmware file that Simplicity Studio is happy to program OTA Zwave-JS-UI rejects OTA firmware file that Simplicity Studio is happy to program Mar 1, 2024
@robertsLando
Copy link
Member

cc @AlCalzone

@robertsLando robertsLando transferred this issue from zwave-js/zwave-js-ui Mar 4, 2024
@apella12
Copy link
Contributor

apella12 commented Mar 5, 2024

On an unrelated note, your screen shot shows FW 1.37 which is the latest (I believe) and your file appears to be for FW1.33. Are you sure you want to do this? ;-)

@TheKorn2
Copy link
Author

TheKorn2 commented Mar 5, 2024

@apella12 I have more than one. One is limited to 1.33 max, the other can handle 1.37. (I already upgraded both with SS.)

@duylong
Copy link

duylong commented Mar 5, 2024

I had a similar problem when I did my Aeotec updates. It seems to me that this is a problem with the otz file provided. Depending on the module, some files pass, others do not. I finally went through their EXE to do the update (Zensys.*).

@robertsLando
Copy link
Member

Zwave-js expects OTZ to be in Intel HEX format

@TheKorn2
Copy link
Author

TheKorn2 commented Mar 5, 2024

@duylong The funny thing is the 1.37 update goes through just fine, but the 1.32 and 1.33 updates get kicked back. I wouldn't expect they'd change formats between those, but I guess anything is possible. (I have all of these if they'd help.)

@robertsLando
Copy link
Member

The only one that can tell you something about this is @AlCalzone

@AlCalzone
Copy link
Member

I'll look at the files when I find the time. If you can share both (one working, one not), that's definitely helpful.

@TheKorn2
Copy link
Author

TheKorn2 commented Mar 6, 2024

@AlCalzone And with a waive of the magic wand... This one updates just fine with zwave-js. (previous one is the one that gets kicked out.)
ZW095_HEM_G5_2P_200A_US_V1_37.zip

@TheKorn2
Copy link
Author

TheKorn2 commented Mar 6, 2024

This one also gets rejected.
ZW095_HEM_G5_2P_200A_US_V1_32.zip

@kpine
Copy link
Contributor

kpine commented Mar 6, 2024

v1.32 and v1.33 are technically invalid Intel HEX files:

tail -n3 ZW095_HEM_G5_2P_200A_US_V1_37.otz
:107FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:01800000037C
:00000001FFtail -n3 ZW095_HEM_G5_2P_200A_US_V1_33.otz
:107FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
:107FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:01800000037Ctail -n3 ZW095_HEM_G5_2P_200A_US_V1_32.otz
:107FE000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFA1
:107FF000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF91
:01800000037C

The node.js HEX parser fails because the End of File (EOF) record :00000001FF is missing. https://en.wikipedia.org/wiki/Intel_HEX#Record_types

Maybe PC Controller has a workaround for this and allows the file EOF to indicate the same.

@AlCalzone AlCalzone added bug Something isn't working cannot fix ❌ This is something out of our control - like invalid device behavior and removed bug Something isn't working labels Apr 8, 2024
@AlCalzone
Copy link
Member

AlCalzone commented Apr 8, 2024

Yeah, I don't think it's worth going through the trouble to work around this.

@Aeotec-ccheng FYI, this seems like an easy fix on your side - see the comment above mine.

@AlCalzone AlCalzone closed this as not planned Won't fix, can't repro, duplicate, stale Apr 8, 2024
@AlCalzone AlCalzone removed the bug Something isn't working label Apr 8, 2024
@Aeotec-ccheng
Copy link
Contributor

I'll forward it up the teams - thanks @kpine @AlCalzone .

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
cannot fix ❌ This is something out of our control - like invalid device behavior
Projects
None yet
Development

No branches or pull requests

7 participants