Identify ZWaveJS2MQTT settings from HA? (unique_id?)

I’m finally moving to the new ZWaveJS2MQTT integration. Everything is working, but I am struggling to identify the same settings I’m familiar with in the ZWaveJS2MQTT Control Panel to the entities created within HA.

I.E., I have several AEON Labs ZW132’s - each have dual switches and a ton of configuration parameters. Most parameters are actually in triple - a -0 for the dual switch as a whole, -1 for S1 (switch 1), and -2 for S2 (switch 2). The ZWaveJSMQTT Control Panel shows a configuration of [3-37-0-currentValue] Current value, for example - which I can immediately identify as Node 3, parameter 37 (0x25), and -0 for the switch as a whole.

After these were linked into HA, I’m now struggling how to identify which HA entities relate back to which ZW parameters. I found a round-about way through the UI to see the HA device from a HA entity, from where I can then see the ZW Device ID (node #). However, how can I determine which ZW parameter each entity is associated to?

If I look into HA’s core.entity_registry file, I can find a given entity_id, and then an associated unique_id - which appears as 1234567890.3-37-0-currentValue, for example. Here, 3 is my ZW node ID, and 37-0 is the configuration parameter. This is critical for me to determine that the -0 here is the dual switch as a whole (vs. -1 or -2 for S1, or S2, respectively). However, how can I determine the same through the HA UI? Or alternatively, efficiently rename (script/API?) the HA entity IDs so that I can recognize them?

Each one of these dual switches (w/ energy monitoring) is pulling in 19 entities into HA. I have well over 100 entities here that I need to determine how to better recognize / manage / rename - even just for going through and assigning friendly HA “names” to.

Thanks!

The entities are named by the endpoints in numerical sequence. By default, sensor.foo is endpoint 0, sensor.foo_1 and sensor.foo_2 are endpoints 1 and 2 respectively. If you have multiple devices with the same name, then I guess they’ll just get stacked on either other, sensor.foo_2, etc, but if you name them uniquely in z2m prior to adding HA, they’ll have unique entity names and the pattern will hold. If you name the device in HA, the entities will follow that name, which helps to disambiguate them.

You can download the Device diagnostic file and it contains the entities and value IDs for that device, which is the same information as in the entity registry, but easier to access IMO.

I’m not aware of any way in the UI to get unique IDs or do it programmatically, although I’d be happy to hear about it from someone else. The time to write a custom script to name them might take longer than just doing it manually.

1 Like

From what I understand z2m is not able to pick up the device frendly name from HA and when changing (friendly) name in z2m this change will not be reflected in HA?

I just realized another issue: When I exclude a device in z2m it is not removed in HA. Is it supposed to be like this?

If you reload the integration, or restart HA, the friendly names will be picked up. That is, unless you named them in HA.

You can exclude from HA or Z-Wave JS UI, in either case the device is removed from HA.

All my devices was renamed in HA when using z-wave js. The problems was found after migrating to zwavejs2mqtt (z-wave JS UI) using this guide: Switching Z-Wave JS Addons with Minimal Downtime! Z-Wave JS (Official) to Z-Wave JS UI (Community).

I’m only able to exclude devices from within zwavejs2mqtt, exlusion in HA is disabled:

I’ve tried restarting HA and zwavejs2mqtt, even rebooted the host. I have not tried manual soft reset or disable soft reset. My controller is a Z‐Stick Gen5 USB (ZW090).

Another thing I just realized was the “Z-Wave JS is searching for devices” status in HA. I’m not sure, but I think this came up after i excluded a device in zwavejs2mqtt.