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