Remove Space in the ID path for Zooz ZST10 700 Z-Wave Stick name

Has anyone figured out a way to remove the space in the ID path?

I think youā€™ll have to contact Zooz to resolve that, the product string is programmed at the factory.

If you want to take a risk (of bricking your controller), there is a project for programming the EEPROM of the Silabs CP210x. https://github.com/VCTLabs/cp210x-program

It is not a space ā€” or rather, not a normal one. It is unicode non-breaking space character.

Iā€™m not sure what you mean by this, but this string will not work in zwave2mqtt because, as Iā€™ve been told, the ā€˜spaceā€™ between ā€¦ ZST10 and 700_Z-Wave ā€¦

/dev/serial/by-id/usb-Silicon_Labs_Zooz_ZST10 700_Z-Wave_Stick_0001-if00-port0

That forces me to use by-path, which of course breaks when a device is added or removed.

/dev/serial/by-path/pci-0000:00:0c.0-usb-0:5:1.0-port0

The character between ā€œZST10ā€ and ā€œ700ā€ doesnā€™t appear to be a normal ASCII space character (0x20), otherwise it would have been converted to an underscore, like all of the other spaces. The character is something else that looks like a space. The product name is programmed by Zooz, you should report this problem to them.

Sorry, I was traveling so I was a bit terse, but ā€¦ yes, exactly. It is a Unicode non-breaking space character, u00A0. This should generally work in most places as a literal string, but can get confusing really fast (as we see).

Iā€™m using containers with Podman started by systemd, and systemd unit files let you write \u00a0, so

 --device=/dev/serial/by-id/usb-Silicon_Labs_Zooz_ZST10\u00A0700_Z-Wave_Stick_0001-if00-port0:/dev/zwave:rw \

ā€¦ which makes the device /dev/zwave inside the container, making it so zwave2mqtt doesnā€™t have to deal with the complication.

2 Likes

For giggles, I tried adding u00A0 where the space is and didnā€™t work. Not that I was expecting it too.

This is way above my pay gradeā€¦

(Copying from the other threadā€¦ this didnā€™t get moved over. But for people for whom it will be helpfulā€¦)

What exactly you can use as an alternative way to express the sequence will depend on the tooling youā€™re using. In the systemd service file Iā€™m using, \u00A0 (note the \) works because systemd understands that syntax (see systemd.syntax, Quoting ). If youā€™re putting it into the zwave2mqtt config, the same may work (zwave2mqtt stores its config in a json file, and json supports that same syntax), but it might not (something may try to sanitize away ā€œweirdā€ values, becauseā€¦ really thatā€™s terrible and itā€™s a reasonable expectation that device names should not have characters like that).

You should be able to copy and paste the string, depending on your terminal. If that doesnā€™t work, try going to - no-break space (u+00A0) copy and paste - UnicodeĀ® symbol and copying from the box there.

Zooz got back to me with a solution to change the stick product name. Quite simple actually, but does require Simplicity Studio.

In SS, using the Xpress Configurator tool, simply update the Product String to Zooz_ZST10_700_Z-Wave_Stick and hit Program To Device. DO NOT make any other changes.

4 Likes

Super helpful, thank you! Renaming and upgrades to firmware completes successfully with Simplicy Studio.

2 Likes

This worked for meā€¦ I just copied the space from that link and pasted it instead of the space before the 700Z-Wave and it connects now. I was not able to copy/paste it from the settings, hardware in home assistant.

1 Like