zwave-js / node-zwave-js

Z-Wave driver written entirely in JavaScript/TypeScript
https://zwave-js.github.io/node-zwave-js/
MIT License
749 stars 598 forks source link

800 Series Z-Wave Controller Support Tracker #5257

Closed blhoward2 closed 6 months ago

blhoward2 commented 1 year ago

Update (2024-04-02)

800 series controllers are fully supported as of https://github.com/zwave-js/node-zwave-js/releases/tag/v12.4.4.

NVM Backup/Restore requires a firmware based on Z-Wave SDK 7.19.0 or higher.

Experimental Long Range support is available in https://github.com/zwave-js/node-zwave-js/releases/tag/v12.5.0, which is being released now

PeteRager commented 6 months ago

@bryanklingner - I'd like to understand the steps between taking the backup and restoring to new stick. Did remove the gen5? Did you select the new stick in the UI before restore? Did you shutdown zwavejsui? Any other details would be helpful.

zacs commented 6 months ago

AFAIK restarting Z-Wave JS UI is enough to get the correct label to display for the controller.

That's correct, at least for me!

AlCalzone commented 6 months ago

@PeteRager

Oh and make sure your Aeotec Gen5 has firmware 1.2 before starting all this.

bryanklingner commented 6 months ago

@bryanklingner - I'd like to understand the steps between taking the backup and restoring to new stick. Did remove the gen5? Did you select the new stick in the UI before restore? Did you shutdown zwavejsui? Any other details would be helpful.

Updated my steps to explain when I shutdown and rebooted the server, though I doubt this is strictly necessary.

jum0n commented 6 months ago

Just had the same success here migrating from a Aeotec 5+ to Zooz. I did update my Zooz ZST32 LR to FW: v1.20 SDK: v7.19.3 (was on 1.1/7.18.3). I see a message in Zwave JS UI that says: "Controller firmwares based on Z-Wave SDK 7.19.3 have a bug that causes the controller to randomly hang during transmission until it is restarted. It is currently unclear if this bug is fixed in a later firmware version."

Are lockups an issue for anyone that migrated? Is there a newer firmware?

zacs commented 6 months ago

Are lockups an issue for anyone that migrated? Is there a newer firmware?

Just an anecdote, but mine started going absolutely haywire yesterday. I'm seeing 25-50% dropped RX and constant controller unavailable issues. Reboots and power cycles don't fix it. I suppose it's related to 7.19.3 but I've been on that for several weeks and it has been rock solid. Unsure what root cause really is.

image

asayler commented 6 months ago

I can confirm that the 7.19.3 firmware remains buggy. It falls into the state @zacs shows above on at least a weekly basis for me (and sometimes every few days). Sometimes zwave js can recover automatically (presumably by soft restarting the controller), but other times I have to power cycle the system, to get it back. I keep hoping Zooz puts out a fix, but the issue has been present for 6 months with no fix thus far. See #6260, #6316, and #6300.

AlCalzone commented 6 months ago

Silabs said they have a fix for the lockup in 7.21.2 which is scheduled for mid April.

darkbasic commented 6 months ago

@AlCalzone the lockup issue is 800 series only or does it affect 700 series as well?

AlCalzone commented 6 months ago

Both AFAIK

notrackingme commented 6 months ago

Hi. I am trying to get Long Range to work and have been unsuccessful. Has anyone been able to? Thanks!

AlCalzone commented 6 months ago

Are you using the Z-Wave JS UI beta release with LR support? And have you set your controller to the USA Long Range region?

notrackingme commented 6 months ago

Hi @AlCalzone. Ah. I believe the issue is that I am not using the beta. Can you please tell me how to switch to the beta or direct me to the instructions? Thanks!

AlCalzone commented 6 months ago

@robertsLando can you answer that?

robertsLando commented 6 months ago

@notrackingme If you are using docker just use the test tag instead of latest

PR ref: https://github.com/zwave-js/zwave-js-ui/pull/3545

TheKorn2 commented 6 months ago

I can confirm that the 7.19.3 firmware remains buggy. It falls into the state @zacs shows above on at least a weekly basis for me (and sometimes every few days).

@asayler I've completely given up on my 800 series controller at this point and migrated back to my gen5 stick. Mine was in that state multiple times per day, got tired of manually resetting it. Since I've ditched it for the 500 series controller, it's been smooth sailing!

fpytloun commented 6 months ago

I just tried to backup RaZberry 7 Pro and restore on Zooz 800 GPIO and got this error. Running latest firmware/SDK on both controllers and latest zwave-js-ui.

Error while calling restoreNVM: Did not find a matching NVM 500 parser implementation! Make sure that the NVM data belongs to a controller with Z-Wave SDK 6.61 or higher. (ZW0280)
AlCalzone commented 6 months ago

What's "latest" SDK specifically? 7.19.x or higher should work.

fpytloun commented 6 months ago

@AlCalzone I updated Zooz 800 to SDK 7.19.3 before attempting to restore. Backup file was generated on SDK 7.20.0 (RaZberry 7 Pro). So I assumed that will work but I hit that error above 🤔

zwave-js-ui: 9.9.1.f6dff21
zwave-js: 12.4.4

I can see in the code that it tries to parse as 700 series NVM, it returns NVM_InvalidFormat so it fallbacks to 500 series parsing: https://github.com/zwave-js/node-zwave-js/blob/4229045c84c6c38676c94ec0f3f66ce6f69e516b/packages/nvmedit/src/convert.ts#L1367

Is there a way how to debug exported NVM backup?

AlCalzone commented 6 months ago

You can send the backup files to my email. I'll take a look when I'm back at work next week.

evanfoster commented 6 months ago

I've been using the test tag for a few days now and it's been working fantastically. I bricked my ZAC93 GPIO module in my Homeseer Z-NET G3 trying to upgrade the firmware through zwave-js, but that's probably my fault for using such a weird and unsupported configuration (the G3 shipped with a 700 series controller originally). I managed to reflash it directly over serial (I hate XMODEM) and I'm happy to report that there are no problems. I'd love it if I could upgrade a device to LR if I already paired it with SmartStart, but I've just been re-pairing stuff that supports LR. Here's my controller stats after a few days:

Screenshot_20240331-205613

Really pleased with this. I was already using an 800 series controller so I didn't have to do any of the migration that other folks have dealt with in this thread.

AlCalzone commented 6 months ago

@evanfoster I assume that the controller wasn't actually "bricked", but stuck in bootloader mode and Z-Wave JS didn't fully recognize this - some newer bootloaders have a slightly different "menu" structure. You should be able to recover by starting Z-Wave JS in "bootloader only" mode (see settings). The issue might be related to https://github.com/zwave-js/node-zwave-js/issues/5356 - I'll continue investigation there.

AlCalzone commented 6 months ago

800 series support is considered complete, I'll close this issue. Any remaining bugs will be tracked in their own issues.

jtscott commented 6 months ago

This is awesome, thanks so much for all your work. Just to confirm after upgrading to this zwave-js release, setting the right LR frequency, and generating LR keys, any pre-existing 800 LR devices need to be excluded/re-included via smart start to take advantage?

robertsLando commented 6 months ago

Zui 9.10 is out with LR support 🎉

AlCalzone commented 6 months ago

any pre-existing 800 LR devices need to be excluded/re-included via smart start to take advantage?

Correct. Also, including ZWLR devices only works via SmartStart. Scan the QR code, switch the protocol to Long Range, then enable the provisioning entry.

jtscott commented 6 months ago

Thanks Al, I migrated two Zooz switches over lunch. One ZEN77 800LR and one ZEN76 800LR and both went fine! They setup as “beaming unsupported”, I assume this was expected since it would be redundant or otherwise not needed for such devices to do so now?

AlCalzone commented 6 months ago

Honestly, I'm not sure here but I assume since ZWLR doesn't have direct associations (yet?), mains-powered end devices don't beam - they don't need to communicate with FLiRS devices.

frixo3190 commented 6 months ago

@PeteRager

  • Create backup on the old stick
  • Swap sticks, configure path to the new one
  • Optional: make a backup of the new stick in case you want to restore to that state
  • Restore the backup of the old stick onto the new one
  • Optional: Restart Z-Wave JS UI if the incorrect label bothers you

Oh and make sure your Aeotec Gen5 has firmware 1.2 before starting all this.

Hi

I have a HUSBZB-1 Gen 5 (SDK: v6.51.7), the backup nvm works. Do you think I Can restore the NVM on a Zooz Gen 8 without brick/crash it ? My question is about the sdk of my gen 5: sdk 6.51.7, very low.

Thanks

PeteRager commented 6 months ago

Unlikely, The SDK is too old. While you can back it up you won't be able to restore it, zwave will refuse to because it won't be able to convert the NVM format.

frixo3190 commented 6 months ago

Okay thanks for your reply

millercentral commented 4 months ago

Silabs said they have a fix for the lockup in 7.21.2 which is scheduled for mid April.

I noticed that 7.21.3 GA SDK was released by Silcon Labs a couple of weeks ago, but Zooz hasn't released a ZST39 firmware based on it (nor the 7.21.2 before it) yet. Looking at the release notes for 7.21.3 from SiLabs, there were two interesting points:

  1. The controller lockup issue (identified as ID 1227385) is still listed in the Known Issues section. I guess this fix targeting 7.21.2 never happened?
  2. This release of the Gecko SDK (GSDK) will be the last with combined support for all EFM and EFR devices, except for patches to this version as needed. Starting in mid-2024 we will introduce separate SDKs -- I have no idea if this means anything for the Zooz controller or ZwaveJS in general.

Anyway, seems like the wait for a fix to the controller lockup issue continues...

kpine commented 4 months ago

The controller lockup topic is being discussed at https://github.com/zwave-js/node-zwave-js/discussions/6512.