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

jamesduke commented 1 year ago

Got it, thank you for the update!

Lumute commented 1 year ago

I had a case open with Zooz asking for a firmware update for the ZAC93, they just sent me firmware 1.20 based on 7.19.3, so I decided to play with this a little, I would like to eventually migrate my network on a HA Yellow with UZB-7 to this module in order to free the USB port...

I wanted to attempt the NVM backup/restore way first using Simplicity Studio but the problem is their Linux version only works on Ubuntu up to 18.04 LTS and I just just got into problem after problem trying to get a working image of this old Ubuntu version on my Pi 4, finally gave up...

So I tried with Z-Wave JS, I was able to upgrade the ZAC93 firmware without any issue, Backed up NVM from my lab network UZB-7 (7.18.2) and restore to the ZAC93 (7.19.3) and got this error:

2023-07-27 16:41:14.023 INFO Z-WAVE: Controller status: Convert NVM progress: 100%
2023-07-27T20:41:14.104Z CNTRLR Turning RF on...
2023-07-27 16:41:14.121 INFO Z-WAVE: 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) restoreNVM undefined

Upgraded the firmware on the UZB-7 to 7.19.3 just in case and tried again, same error...

Is this a limitation of Z-Wave JS? would this be possible using Simplicity Studio if I were able to get this environment running? some people have mentioned that currently this is not possible but then why would they put in the firmware release notes that it is?

Anyway, I know there is a workaround with a bunch of switcheroos but then it also requires simplicity studio to do it... I'm ok waiting if this is something that will eventually be available...

cwoodhouse commented 1 year ago

@kramttocs and @asayler My problems with the ZST39 started with HA update 2023.06 as well. Lost contact with about half my devices. I could include and control devices if very close to controller. I am suspecting a power issue? But some nodes come in loud and clear - shouldn't the mesh make up for a weak controller signal? Frustrated. I don't want to downgrade to my series 500 Aeotec controller.

calanthe23 commented 1 year ago

I too have experienced the same issues as @cwoodhouse describes, aligning with the same update/time frame. Not trying to "me too" the thread, but did want to note my experience to indicate that it is not isolated.

Lumute commented 1 year ago

Today I received a USB to UART adapter, connected the ZAC93 to my Windows PC and updated Simplicity Studio and Z-Wave PC Controller to the latest version and ZAC93 is detected and works well. I then tried backing up the NVM from the UZB-7 (7.19.3) and restoring it to the ZAC93 (7.19.3) and although it seemed to have completed successfully the devices/nodes didn't show up, like it didn't restore anything...

notrackingme commented 1 year ago

Hi. Are there any updates on LR support? Thank you!

Turner-Home commented 1 year ago

I have the ZAC93 LR GPIO module from Zooz. Currently FW 1.00, and when I ask there is apparently no new FW for the GPIO module. Not sure the difference with the USB Stick.

skynet01 commented 1 year ago

Today I received a USB to UART adapter, connected the ZAC93 to my Windows PC and updated Simplicity Studio and Z-Wave PC Controller to the latest version and ZAC93 is detected and works well. I then tried backing up the NVM from the UZB-7 (7.19.3) and restoring it to the ZAC93 (7.19.3) and although it seemed to have completed successfully the devices/nodes didn't show up, like it didn't restore anything...

Soo.. just to be clear... the thing they said in the release notes for 7.19.3 was fixed (restore NVM backup from 500/700 -> 800) is not actually fixed using their own Simplicity Studio app. Where you able to do it some other way other than doing the shifty thingy way. ... I just ordered the zooz 800 usb stick and now getting a buyer's remorse.

Lumute commented 1 year ago

Soo.. just to be clear... the thing they said in the release notes for 7.19.3 was fixed (restore NVM backup from 500/700 -> 800) is not actually fixed using their own Simplicity Studio app. Where you able to do it some other way other than doing the shifty thingy way. ... I just ordered the zooz 800 usb stick and now getting a buyer's remorse.

Correct, I tried multiple times and didn't work for me. I decided to wait until the 800 series is better tested and more popular before attempting to switch again...

VACIndustries commented 1 year ago

I have also tried to migrate from ZST10 (500 series) to ZST39 (800 series). Unfortunately there is no shift option in the PC Controller (it is greyed out) for my ZST10. I am thinking this is because for some reason the device does not have "RealPrimary" set. Regardless, I'll be returning the ZST39 to Amazon until there's a viable way to migrate since manually reincluding 80 devices is not realistic.

rmf1981 commented 1 year ago

Hi All - reading back through the comments here while considering a Z-wave dongle purchase.

For someone who is going to be excluding and re-including all my devices (moving from Homeseer to HAss) - would you recommend a 800 series at this point?

Seems that most of the issues being discussed have to do with migrating to the newer series....

thanks

cybergrimes commented 1 year ago

For someone who is going to be excluding and re-including all my devices (moving from Homeseer to HAss) - would you recommend a 800 series at this point?

That's what I did 4 months ago. No issues.

txwindsurfer commented 1 year ago

I also migrated from 2 Nortek HUSBZB-1 sticks to Zooz ZST39 in one location on HA Blue and to ZAC93 on HA Yellow at another location by excluding and including all devices. Went smoothly and did have any problems. Running fine for about 1 month. I was never going to be able to back up the HUSBZB sticks easily so this was an easy choice for me.

cwoodhouse commented 1 year ago

@rmf1981 After the ZwaveJS-UI was fixed, everything went fine for me. I think if you are rebuilding from scratch, you should use the latest version so as to future-proof your install. I have 2 ZST39 sticks. I update both to latest fw, rebuilt on one, backup up NVM and restored to the other and I can just swap them back and forth - a true hot swappable backup. Looking forward to the LR devices. It is interesting to look at the technical documentation of the chip in ZST39. It's amazing how complex it is.

renlor16 commented 1 year ago

I upgraded to the ZST39 a few weeks ago by excluding and including all devices. After upgrading I experienced an increase in the "dead node" issue. The issue seems to have resolved itself in the past couple weeks. A dead node now shows up very infrequently. I'm not sure why it's fixed, just happy it is.

rmf1981 commented 1 year ago

@cybergrimes @txwindsurfer @cwoodhouse - Thanks for the advice.

Unfortunately I'm in a mess. Decided halfway through excluding/including devices that I wanted to use Zwave JS UI instead of JS. I reset the ZST39, deleted HA and reinstalled on a new VM.

Since then, nothing but problems - huge issues including/excluding. Given that the HA install is clean, is there a way to "factory reset" the ZST39? I have PC Controller running but it's not clear to me.

asayler commented 1 year ago

Quick update here -- I just completed an OTW firmware update of my ZAC93 800-series GPIO controller using the 1.20 (SDK 7.19.3) firmware Zooz posted at https://www.support.getzooz.com/kb/article/1158-zooz-ota-firmware-files/. The first attempt failed and dropped the controller into a boot loop, but I was able to recover by following the steps at https://community.home-assistant.io/t/failed-to-recover-from-bootloader-please-flash-a-new-firmware-to-continue/604864 to put the controller in bootloader-only mode and repeat the update. I did have to fully power cycle the unit to get the controller to correctly come up in bootloader mode. Once in bootloader mode, the second OTW update attempt worked (although the update status bar never filled in). This was all performed on a HA Yellow running HAOS 10.4 and HA 2023.9.2 with Z-wave JS UI 8.25.1 + driver 11.14.2.

I can confirm that the 7.19.3 SDK seems to have resolved the issue where NVM backups were blank files. I haven't tested a restore yet, but the NVM backups now produce 40KB files, which seems more reasonable.

philgrocks commented 1 year ago

For what it is worth… I did the update on Home assistant 2023.9.2 and it worked the first time.

On Sep 19, 2023, at 10:45 PM, Andy Sayler @.***> wrote:

Quick update here -- I just completed an OTW firmware update of my ZAC93 800-series GPIO controller using the 1.20 (SDK 7.19.3) firmware Zooz posted at https://www.support.getzooz.com/kb/article/1158-zooz-ota-firmware-files/. The first attempt failed and dropped the controller into a boot loop, but I was able to recover by following the steps at https://community.home-assistant.io/t/failed-to-recover-from-bootloader-please-flash-a-new-firmware-to-continue/604864 to put the controller in bootloader-only mode and repeat the update. I did have to fully power cycle the unit to get the controller to correctly come up in bootloader mode. Once in bootloader mode, the second OTW update attempt worked (although the update status bar never filled in). This was all performed on a HA Yellow running HAOS 10.4 and HA 2023.9.2 with Z-wave JS UI 8.25.1 + driver 11.14.2.

I can confirm that the 7.19.3 SDK seems to have resolved the issue where NVM backups were blank files. I haven't tested a restore yet, but the NVM backups now produce 40KB files, which seems more reasonable.

— Reply to this email directly, view it on GitHub https://github.com/zwave-js/node-zwave-js/issues/5257#issuecomment-1727008485, or unsubscribe https://github.com/notifications/unsubscribe-auth/AJLON4TGV3C5N3MFFCYACKDX3J7HZANCNFSM6AAAAAATAOQXMQ. You are receiving this because you are subscribed to this thread.

Turner-Home commented 1 year ago

I also was able to update ZAC93 to OTA 1.20 using Home Assistant 2023.9.2 with a Home Assistant Yellow PoE edition (rev 1.3). To ensure a success, I did "reboot" the HA Yellow from the Developer Tools menu prior to performing the upgrade. That may not be required, but was the process I used.

asayler commented 1 year ago

After completing the ZAC93 upgrade, I've started to see the controller fall into a state where it fails to transmit ever 6-12 hours, and stays that way until it is power cycled. Has anyone else who updated their ZAC93 seen similar? If so, I opened #6300 for comments.

Hedda commented 12 months ago

Note! They sell two different variants of Zooz 800 Series USB Stick; one for US/CA/MX RF region for LR + one for EU/UK RF region.

Can we assume that they both use same firmware and that the only difference is the predefined RF region configured on them?

Anyway, currently there is only an LR (Long Range) RF region available/supported for the US (United States of America). LR (Long Range is unfortunately not yet available/supported in other RF regions (this is a limitation set in the firmware from Silicon Labs).

Also see the related discussion on all Zooz 800 Series USB Sticks and GPIO Header/HAT modules here -> https://github.com/zwave-js/node-zwave-js/discussions/5615

blhoward2 commented 12 months ago

I'm not sure you can assume the only difference is the predefined region. Aeotec told us before that they have different filters and the range would suffer with theirs.

Hedda commented 12 months ago

I'm not sure you can assume the only difference is the predefined region. Aeotec told us before that they have different filters and the range would suffer with theirs.

Then that makes me wonder if there really are two hardware models with different boards that uses different antenna filters?

On the Zooz official website they only mentions the Z-wave Long Range product and no info on there being two different models:

https://www.getzooz.com/zooz-zst39-z-wave-long-range-usb-stick/

The Smartest House (approved reseller/distributor redirected from Zooz) does however offer/sell an optional EU/UK variant of it:

https://www.thesmartesthouse.com/products/zooz-800-series-z-wave-long-range-usb-stick-zst39

blhoward2 commented 12 months ago

The Smartest House isn't their distributor, it's the same company. That's Zooz too.

jtbraun commented 11 months ago

A question for the maintainers on long range support:

I've spent the weekend hacking, and have probably 80-90% of the driver work done to make LR devices work. If I include the device into the network outside of ZWaveJS (in simplicity studio), and then startup zwave-js, I can see the node, and get reports from it (which fail to decode/authenticate because the security keys are different between the controllers).

I've almost got smart start working for inclusion in zwave-js, but I've run into an issue where public keys and nonces are exchanged, and then almost immediately an Security2CCMessageEncapsulation/Security2CC_CannotDecode occurs, resulting in "failed bootstrapping" and removal of the node. A log of a single inclusion attempt here: zwave_s2.log

I'm new to zwave, and totally unfamiliar with S2. Hopefully someone else on the team can look at this and give me a pointer to some things to try/look at to resolve this. For all I know the DSK I provided was wrong (though I would expect inclusion just wouldn't start because the DSK mis-matched)?

As far as submitting a pull request, I want to get this working, there's some cleanup to do, and then I'll probably throw something up for review to get some comments on naming, how to pass in some arguments, etc.

Oddly, the spec says that the regular AddToNetwork(AnyNode) can set protocol=1 to force long-range inclusion, but it seems that at least the ZST39 requires that LR nodes go through the S2 key exchange. Maybe that's an unwritten rule in all ZWave LR? Maybe that's just Zooz's implementation because all of their LR products are S2-capable? Unknown.

jtbraun commented 11 months ago

S2 errors

Ah, Security2CC.ts's getAuthenticationData() includes the sending/destination node IDs as bytes, and I'll bet there's some sort of "no, use 16 bit IDs" somewhere...

... confirmed! Fixing that, I managed to smart-start-include a long range node as nodeId256!

20:13:10.410 CNTRLR « [Node 256] received CentralScene notification {
                          "nodeId": 256,
                          "ccId": "Central Scene",
                          "ccCommand": "0x03",
                          "payload": "0x048002"
                      }
20:13:10.411 DRIVER   all queues busy
20:13:10.413 SERIAL » 0x011f00a900010100119f0390008537ae7397d3f95306dbd624e72400000000003 (33 bytes)
                      9
20:13:10.414 DRIVER » [Node 256] [REQ] [SendDataBridge]
                      │ source node id:   1
                      │ transmit options: 0x24
                      │ callback id:      0
                      └─[Security2CCMessageEncapsulation]
                        │ sequence number: 144
                        │ key:             0xdda415256006027530b2d9548c898f93
                        │ IV:              0xc034d504d319328575117bacbe
                        │ ciphertext:      0x8537ae7397
                        │ auth data:       0x00010100ece6c0dc00119000
                        │ auth tag:        0xd3f95306dbd624e7
                        │ security class:  S2_Authenticated
                        └─[SupervisionCCReport]
                            session id:          9
                            more updates follow: false
                            status:              Success
                            duration:            0s
20:13:10.419 SERIAL « [ACK]                                                                   (0x06)
20:13:10.421 SERIAL « 0x010401a90152                                                       (6 bytes)
20:13:10.421 SERIAL » [ACK]                                                                   (0x06)
20:13:10.422 DRIVER « [RES] [SendDataBridge]
                        was sent: true
20:13:10.424 DRIVER   all queues idle
blhoward2 commented 11 months ago

Great work so far. Please make a separate issue (or open a PR) about integrating this so that this thread doesn't get hijacked.

jtbraun commented 11 months ago

You bet, happy to. It's going to need a few rounds of suggestions/work. My time is limited during the week, I'll try to get it cleaned up and in a PR for review in the next few days.

Hedda commented 11 months ago

Note! They sell two different variants of Zooz 800 Series USB Stick; one for US/CA/MX RF region for LR + one for EU/UK RF region.

Can we assume that they both use same firmware and that the only difference is the predefined RF region configured on them?

Anyway, currently there is only an LR (Long Range) RF region available/supported for the US (United States of America). LR (Long Range is unfortunately not yet available/supported in other RF regions (this is a limitation set in the firmware from Silicon Labs).

Also see the related discussion on all Zooz 800 Series USB Sticks and GPIO Header/HAT modules here -> #5615

I'm not sure you can assume the only difference is the predefined region. Aeotec told us before that they have different filters and the range would suffer with theirs.

FYI, I send a qustion to Zooz Support Team and got a reply from them stating that is it the same hardware with different firmware:

"The ZST39 US/EU/UK uses the same hardware. The only difference is the frequency in the firmware. This is different from the Aeotec 700 series stick because the 800 series chip has already integrated the internal filter. The hardware of the 800 series will be the same for all frequencies. The 700 series does not have an internal filter. "

Turner-Home commented 11 months ago

Are there different versions of the ZAC93 LR GPIO HAT? Or is that only one device that relies on the software to ensure US/EU/UK frequency compliance?

millercentral commented 11 months ago

Is it still not possible to migrate from a 700-series controller (Aeotec 7 Stick in my case) to the Zooz ZST39 800 stick via nvram backup/restore?

Hedda commented 11 months ago

Are there different versions of the ZAC93 LR GPIO HAT? Or is that only one device that relies on the software to ensure US/EU/UK frequency compliance?

It is the same for all Z-Wave 800 Series controllers, RF region can be changed via software, but note that they still label/mark the product and box differently for each region as they are pre-configured in firmware from the factory.

Users are not allowed to use the wrong frequancy for any region and that is why they are still sold pre-configured in firmware, however you can now easily change the region and the same hardware will work in all regions.

The point is that the manufacturer can now have a single production line manufacturing the exact same hardware for all regions, they then just need to change the RF region in the firmware configuration and slap a different label marking the frequency configured before selling it.

To stay legal regions also require certification with independent testing that show that the product that is to be sold does not out-of-the-box transmit/emit frequencies that are not to be used for that product in the region for which it is meant to be sold in.

Raketemensch commented 10 months ago

My 800 ZST39 LR stick is very flaky, and I cannot add a Zooz ZEN15 switch to it for more than 5 seconds before I get notified that "Power Switch has been factory reset and removed from the Z-Wave network."

Sometimes it will go into a loop and re-add the device up to 9 times. When added it works perfectly, it gets usage readings and I can control the switch, but after 5 seconds it is declared dead and that notification appears.

Hedda commented 10 months ago

My 800 ZST39 LR stick is very flaky

Tip; for troubleshooting it can be a good idea to take some basic actions rule weird, flaky or intermittent symptoms as such are commonly caused by power issues and/or EMF/EMI/RMI interference problems, so the best practice is to connect your Z-Wave Controller radio adapter via a powered USB 2.0 hub () as well as a long shielded USB extension cable for it to get it a little bit away from other electric devices or wires (including computer peripherals such as external harddrives and any wires to those).

Recommend getting for example this one -> https://www.amazon.com/AmazonBasics-Port-USB-Power-Adapter/dp/B00DQFGJR4 and also a shielded USB extension cable for the Z-Wave Controller radio adapter so that you can relocate that a little way away from walls and ceilings too, such as for example this one -> https://www.amazon.com/AmazonBasics-Extension-Cable-Male-Female/dp/B00NH11PEY/

Anyway, it usually makes it easier to troubleshoot if already ruled out power issues and/or EMF/EMI/RMI interference problems.

Note! For best result it should really be a USB 2.0 hub (as USB 3.x / USB 4.x is known to cause EMF/EMI/RMI interference so can be very bad to use for radio adapters), and use a suited external power-supply to the USB hub (and be sure that it too is not kept close to the Z-Wave Controller radio adapter). Normally USB 3.0 have the largest interference impact on the 2.4 GHz frequency range so it does not always affect sub-GHz radios such as Z-Wave, however it is better to be safe than sorry, and as a bonus you can also put your Zigbee and Thread (Matter) radio controllers on that same USB 2.0 hub as a preventive meassure on those too.

PS: Pro-tip; if you want to relocate your radio dongels a longer distance then you should know that you can buy inexpensive USB adapters that can convert any RJ45 Ethernet cable into a very long USB extension cable (recommendation then is to use a shielded "STP" Ethernet cable such as a Cat6 or better/higher). Check out for example this one -> https://www.amazon.com/Cat6%EF%BC%8CSNLLMZI-Extender-Extension-Connector-Adapter/dp/B08FMLGNQN and this one -> https://www.amazon.com/SHANFEILU-Extension-Ethernet-Splitter-Connector/dp/B0B2K4QWL9

hawk259 commented 10 months ago

My 800 ZST39 LR stick is very flaky, and I cannot add a Zooz ZEN15 switch to it for more than 5 seconds before I get notified that "Power Switch has been factory reset and removed from the Z-Wave network."

Which ZEN15 do you have? I have four ZEN15 v2, I believe they are the 700 version, and they have been very stable with a 800 ZST39 LR. The key to mine being stable is adding them with no security. If I add mine with security, my version only supports S0, they are OK for a period of time and then they and most of the time the whole network freaks out and disappears/locks.

I am running the latest docker image with a ZW090, ZST10 and ZST39. The latest image has fixed the dead node issue and has been extremely stable for all three sticks. The only issue I have is I can not run things with S0 security on the ZST10 and ZST39, but I have been slowing replacing my older stuff so it is not an issue. Both S2 un-authenticated and authenticated work fine.

Raketemensch commented 10 months ago

I resolved my issue by running on an rPi instead of in a container. It must've been some USB flakiness or latency, as pings would time out and the system would mark the switch as Dead.

RyanWor commented 10 months ago

I resolved my issue by running on an rPi instead of in a container. It must've been some USB flakiness or latency, as pings would time out and the system would mark the switch as Dead.

Do you mean you are running your zstick completely separate of your HA/HAOS host?

mcondren commented 10 months ago

Just did the ZST39 1.20 firmware upgrade to go to the 7.19.3 SDK using the OTW functionality in the UI. Threw a timeout error but was successful. Can confirm empty NVM backups seem to be fixed. Did a backup through the UI on 1.10 firmware and the resulting file was 0KB. After 1.20/7.19.3 upgrade I tried again and the resulting NVM backup file was 41KB.

skynet01 commented 10 months ago

Can anyone confirm if the new firmware now allows you to migrate from 500 /700 stick to 800 without issues?

mikejhill commented 10 months ago

Can anyone confirm if the new firmware now allows you to migrate from 500 /700 stick to 800 without issues?

It does not appear to be supported in Z-Wave JS yet... I'm seeing the same error others were seeing back in June: https://github.com/zwave-js/node-zwave-js/issues/5257#issuecomment-1582575909. image

Previous comments read to me like the firmware supports it, so might just be something missing on the Z-Wave JS side.

Environment:

Scoop2389 commented 10 months ago

My 800 series stick firmware: SDK: v7.19.3 FW: v1.20

Conversion from my 500 series stick to the new stick (Zooz ZST39LR) was not supported when I last tried and the firmware has not been updated since then. I used this method to migrate from the 500 series to the 800 series without using nvm backup/restore.

PeteRager commented 10 months ago

1.20 was released in July so this is not a newish release

Scoop2389 commented 10 months ago

My understanding is that the NVM conversion from a different series controller is exclusive to Z-Wave JS UI, and it does not have a conversion built yet for converting to an 800 series controller.

AlCalzone commented 10 months ago

Correct. I only had a non-upgradable re-release version of the stick until recently, so I wasn't able to work on the migration routine.

gabemcg commented 10 months ago

Any update on support for LR on the 800 stick?

kpine commented 10 months ago

Any update on support for LR on the 800 stick?

https://github.com/zwave-js/node-zwave-js/discussions/6518#discussioncomment-7697552

But don't expect anything soon. https://github.com/zwave-js/node-zwave-js/issues/6521

notrackingme commented 10 months ago

LR support is greatly needed and I hope can be made a higher priority. Thank you.

blhoward2 commented 10 months ago

It's not that it's not a priority, but it's not going to be as high of a priority as alcalzone's kids. He's on parental leave. A contributor already did a ton of work towards LR, but he presumably has a life too so it's taken some time to finalize, as can be expected.

gabemcg commented 10 months ago

It's not that it's not a priority, but it's not going to be as high of a priority as alcalzone's kids. He's on parental leave. A contributor already did a ton of work towards LR, but he presumably has a life too so it's taken some time to finalize, as can be expected.

Congratulations to Him! Family first!

ExodusC commented 10 months ago

I didn't see this posted anywhere, but there is supposedly a new firmware on the way that supports NVM restore onto the ZST39LR from earlier controllers. I don't know if this is the right thread, but I figured I might as well offer up what I found out.

I had written to Zooz distributor The Smartest House out of curiosity. According to them:

"We have verified with Silabs, and they have promised a firmware update that will provide NVM backup and restore functionality between chip versions with an ETA of approximately 4 weeks. If you'd like, I can add you to the waitlist and we can reach out once we have confirmed the firmware fully resolves the migration issue?"

That's just what their support told me, so I'm guessing they're getting a lot of requests about this (and probably a lot of attempted warranties).