Plans to join Home Assistant's built-in OTA firmware update?

Yeah that’s the strange thing. Mine is showing 1.61 needed for both targets. All of my switches of this model are on 1.47 on target 0 and 1.41 on target 1.

No clue how to get it to use 1.45 for target 1.

But yeah, the software definitely only checks target 0 and assumes both are the same firmware.

I was able to update target 1 specifically to 1.45 by using the firmware update under advanced in zwavejs2mqtt. Otherwise it was always trying to use 1.61 for both targets. If I did the 1.61 on target 0 it would consider itself up to date, even though target 1 was still out of date on 1.41, not 1.45.

Strange. I just checked my logs:

2022-09-16 10:05:56.928 INFO ZWAVE: Node 10: value updated: 134-0-libraryType 3 => 3
2022-09-16 10:05:56.931 INFO ZWAVE: Node 10: value updated: 134-0-protocolVersion 6.4 => 6.4
2022-09-16 10:05:56.934 INFO ZWAVE: Node 10: value updated: 134-0-firmwareVersions 1.48,1.41 => 1.48,1.41
2022-09-16 10:05:56.941 INFO ZWAVE: Node 10: value updated: 134-0-hardwareVersion 1 => 1
2022-09-16 10:05:57.589 INFO ZWAVE: Success zwave api call getAvailableFirmwareUpdates [
  {
    version: '1.61',
    changelog: 'Fixed - Dimmer sending duplicate reports in certain scenarios while being controlled by certain hubs.',
    files: [
      {
        target: 1,
        url: 'https://files.inovelli.com/firmware/LZW31-SN/Beta/1.61/LZW31-SN_1.45.bin',
        integrity: 'sha256:2a338a5f501746b69c91489efe1cb4b8b3d62a29501779943bf90625582693f1'
      },
      {
        target: 0,
        url: 'https://files.inovelli.com/firmware/LZW31-SN/Beta/1.61/LZW31-SN_1.61.otz',
        integrity: 'sha256:e07cb9972bfe88e143c72c9b6ed88a640b9d969fbf09d6c1a4625f711979b541'
      },
      [length]: 2
    ]
  },
  [length]: 1
]
2022-09-16 10:06:38.359 INFO ZWAVE: Calling api beginOTAFirmwareUpdate with args: [
  10,
  {
    target: 1,
    url: 'https://files.inovelli.com/firmware/LZW31-SN/Beta/1.61/LZW31-SN_1.45.bin',
    integrity: 'sha256:2a338a5f501746b69c91489efe1cb4b8b3d62a29501779943bf90625582693f1'
  },
  [length]: 2
]
...flashing...
...interviewing...
2022-09-16 10:09:13.436 INFO ZWAVE: Node 10: value added 10-134-0-protocolVersion => 6.4
2022-09-16 10:09:13.437 INFO ZWAVE: Node 10: value added 10-134-0-firmwareVersions => 1.48,1.45
2022-09-16 10:09:13.438 INFO ZWAVE: Node 10: value added 10-134-0-hardwareVersion => 1
2022-09-16 10:09:13.444 INFO ZWAVE: Node 10 ready: Inovelli - LZW31-SN (Red Series Dimmer)
2022-09-16 10:09:13.469 INFO ZWAVE: Node 10: interview COMPLETED, all values are updated
2022-09-16 10:13:07.628 INFO ZWAVE: Calling api beginOTAFirmwareUpdate with args: [
  10,
  {
    target: 0,
    url: 'https://files.inovelli.com/firmware/LZW31-SN/Beta/1.61/LZW31-SN_1.61.otz',
    integrity: 'sha256:e07cb9972bfe88e143c72c9b6ed88a640b9d969fbf09d6c1a4625f711979b541'
  },
  [length]: 2
]
...blahblahblah...
2022-09-16 13:03:35.716 INFO ZWAVE: Node 10: value added 10-134-0-protocolVersion => 6.4
2022-09-16 13:03:35.717 INFO ZWAVE: Node 10: value added 10-134-0-firmwareVersions => 1.61,1.45
2022-09-16 13:03:35.718 INFO ZWAVE: Node 10: value added 10-134-0-hardwareVersion => 1
2022-09-16 13:03:35.725 INFO ZWAVE: Node 10 ready: Inovelli - LZW31-SN (Red Series Dimmer)
2022-09-16 13:03:35.752 INFO ZWAVE: Node 10: interview COMPLETED, all values are updated

It definitely found the correct files for the correct targets and installed them just fine (when I did target 1 before target 0) and I started at versions 1.48 and 1.41.

On the latest Home Assistant release, I’m getting prompted to update my series Red Dimmer. When I tried to apply the update, it stopped at 50%. I’m running just the ZWave JS, not ZWave JS MQTT. So I guess that’s a step in the right direction. Hopefully it will get sorted out soon.
I have a bunch of Red series switches and a bunch of gen1 dimmers and switches, but none of them are prompting for an update yet.

I have a dimmer with version 1.57 on endpoint 0, and 1.45 on endpoint 1. Homeassistant shows that 1.57 as the installed version, and an update available to 1.61. So far, great!

But when I do the date, I see in the zwavejs logs that it downloads the 1.45 image and then applies it to endpoint 0. After transferring the data to the dimmer, the dimmer rejects the update as invalid.

EDIT: It’s possible I’m misreading my logs. If I have time to go read through them in more detail I’ll post again, but otherwise assume this is user error.

I also ran into the problem where the install fails half-way. It seems like others have success with the red switches, but also see a problem with the red dimmers. See my Hassio post here:

https://www.reddit.com/r/homeassistant/comments/xgr9od/zwave_firmware_upgrade_fails_for_all_inovelli/?utm_source=share&utm_medium=ios_app&utm_name=iossmf

So, my guess here is that doing the dimmer firmware upgrade though HA is just broken. I did mine through zwavejs2mqtt directly, and apparently that route at least sort of works (if you know to do the two targets in the correct order).

Please upload the zwavejs driver logs, set to the Silly level, so that we can take a look. We only loosely monitor this forum so it’s better to open zwavejs issues at the HA GitHub or the zwavejs GitHub, depending on the issue.

It appears that the HA folks are aware of this issue.

2 Likes

I was misreading my logs. The mapping of 1.61 to endpoint 0 and 1.45 to endpoint 1 is done correctly. The bug is with homeassistant’s firmware update handling. I’ve retested several times on various HA releases, and it seems to be getting better. Unfortunately I can’t easily try the latest version (2022.9.5) because the build job which publishes it to docker failed because of a 502 downloading a dependency. That only happened a few hours ago, so I’m hoping someone retries it soon.

I’m not at all blocked on “how to get my devices running the latest firmware”. A few years ago I debugged and fixed an off-by-one error in the hubitat zwave firmware updater that only surfaced when the firmware file size was a multiple of 40 bytes, or something like that. I’m basically just trying to help debug the “easy way” via home assistant, to improve the feature for those less comfortable doing it the hard way. I might even end up downgrading some of my dimmers so I can re-test upgrades.

I’d like to see homeassistant recognize the multiple firmware targets and provide the ability to update only the ones that need updating. Right now it’s trying to upgrade both targets when only one needs updating. I’ll raise this in a github issue if necessary once I’ve gotten a chance to see how the latest version behaves.

I haven’t tried it out yet, but this fix for multiple firmware update files is now in Home Assistant release 2022.9.5.

I’m actually thrilled to see this showing up. I literally have 13 dimmers that I haven’t installed mainly because I didn’t want to bother with powering them, using a different zwave stick to perform the update via the Silicon Labs app and all that, then moving them into HomeAssistant to use.

Yes, I know it’s dumb, and I should have figured out how to do it in HomeAssistant, but I’m HA is fairly easy to muck something up and disturb the normal household operations tempo. :slight_smile:

I did just notice that some of the LZW31-SN dimmers I have installed already are now showing fully updated at v1.57 and the other day I could swear they were keen to be updated to v1.61
image

Looks like the update got moved to the “Beta” channel in Z-Wave JS: fix: move LZW31-SN update to the beta channel by AlCalzone · Pull Request #23 · zwave-js/firmware-updates · GitHub

Excellent find! Thanks!

I am on the latest HA release (2022.9.6), but I am no longer getting prompted for Inovelli dimmer updates, despite the fact that I do have some that are on older versions. When I go into specific dimmers and check for OTA updates, none are found. Sadness.

I think the updater only does stable releases. I’m not sure you can select beta firmware.

I’ll submit 1.57 as a stable entry at the firmware upgrade service. Thanks!

Not sure I did it correctly, but I created a pull request for 1.57:

Target 1 url is incorrect. It has 1.61 and 1.45.
Link should be : https://files.inovelli.com/firmware/LZW31-SN/1.57/LZW31-SN_1.45.bin

Good catch! Thanks!

1 Like