Jump to content

Z-Wave Node ID issue


brians

Recommended Posts

Anyone who has used Z-Wave probably has run into the issue when they have to exclude and re-include the same device, the Node ID increments to the next available number. This number is picked by the actual Z-Wave controller itself (not ISY) and the number is stored in its NVRAM.


This results in gaps.
Eg. if you currently have the following devices on ISY...

Quote

Light2 ZW002
Light3 ZW003
Light4 ZW004


If you exclude Light3 and re-include it, rename it, the ID will change to:

Quote

Light3 ZW005


And the devices will be like this on ISY...

Quote

Light2  ZW002
<not used was ZW003>
Light4 ZW004
Light3 ZW005


Programs and scenes break because they reference the old ZW003, so the resolution is to manually go through all the programs and change to the new device which is ZW005.


Z-Wave has a limit of 232 devices, after reaching that limit, it will start at 1 (2 actually, the controller is 1) again and start filling in the gaps. I suppose you could exclude/include the device 232 or so more times to get the counter back where it was but this is not realistic.


Now I wonder if it is possible for  UD to change the way Z-Wave nodes are created by adding in a reference table. There would be 232 entries and when you add a Z-Wave device you would pick a free slot to add, which would contain the actual Node ID. ISY would instead use the slot number in the table and convert back/forth to/from the Z-Wave controller. UD  aready seems to do this for node servers (only has 25 slots)... it is possible to add/remove a Node server from polyglot back into the same slot number and all programs work as before (not sure about scenes because I have not tried this). Initial migration to this method for existing users would be some work however.


Any thoughts if this is possible?

 

 

 

Link to comment
Share on other sites

6 hours ago, brians said:

Anyone who has used Z-Wave probably has run into the issue when they have to exclude and re-include the same device, the Node ID increments to the next available number. This number is picked by the actual Z-Wave controller itself (not ISY) and the number is stored in its NVRAM.


This results in gaps.
Eg. if you currently have the following devices on ISY...


If you exclude Light3 and re-include it, rename it, the ID will change to:


And the devices will be like this on ISY...


Programs and scenes break because they reference the old ZW003, so the resolution is to manually go through all the programs and change to the new device which is ZW005.


Z-Wave has a limit of 232 devices, after reaching that limit, it will start at 1 (2 actually, the controller is 1) again and start filling in the gaps. I suppose you could exclude/include the device 232 or so more times to get the counter back where it was but this is not realistic.


Now I wonder if it is possible for  UD to change the way Z-Wave nodes are created by adding in a reference table. There would be 232 entries and when you add a Z-Wave device you would pick a free slot to add, which would contain the actual Node ID. ISY would instead use the slot number in the table and convert back/forth to/from the Z-Wave controller. UD  aready seems to do this for node servers (only has 25 slots)... it is possible to add/remove a Node server from polyglot back into the same slot number and all programs work as before (not sure about scenes because I have not tried this). Initial migration to this method for existing users would be some work however.


Any thoughts if this is possible?

 

 

 

That's a known limitation of zwave and not something they can change since it's built into the zwave code itself

Link to comment
Share on other sites

53 minutes ago, lilyoyo1 said:

That's a known limitation of zwave and not something they can change since it's built into the zwave code itself

From how I understand how it works is the Z-Wave controller (meaning the USB dongle in this case) determines the node number when including a z-wave device. ISY uses that number for its nodes/devices and you can rename them to something more friendly. However the ISY does not use this friendly name other than for our benefit to keep things organized and recognizable, and uses the actual node number of the device to reference internally (programs etc). I am wondering if there could be one more level of naming reference in between the one used internally and the z-wave node number...  a better explanation for what I am referring to is maybe a zwave node alias. This way you could put any z-wave node ID into an internal ISY node-slot of your choosing.

This may just not be possible or realistic to do because of they way  ISY is designed to work with Z-Wave and the amount of work required and bugs introduced may not justify the benefits. Maybe it just isn't possible at all. 

Link to comment
Share on other sites

5 hours ago, brians said:

From how I understand how it works is the Z-Wave controller (meaning the USB dongle in this case) determines the node number when including a z-wave device. ISY uses that number for its nodes/devices and you can rename them to something more friendly. However the ISY does not use this friendly name other than for our benefit to keep things organized and recognizable, and uses the actual node number of the device to reference internally (programs etc). I am wondering if there could be one more level of naming reference in between the one used internally and the z-wave node number...  a better explanation for what I am referring to is maybe a zwave node alias. This way you could put any z-wave node ID into an internal ISY node-slot of your choosing.

This may just not be possible or realistic to do because of they way  ISY is designed to work with Z-Wave and the amount of work required and bugs introduced may not justify the benefits. Maybe it just isn't possible at all. 

This is all done by the controller itself and it's something UDI has no control over. Siliconlabs designed this into the chip. It works for node servers because those are undefined. There's no protocol requirements that UDI must follow. UDI can do what they want with it

https://www.google.com/url?sa=t&source=web&rct=j&url=https://cn.silabs.com/documents/public/user-guides/INS10244-Z-Wave-Node-Type-Overview-Network-Installation-Guide.pdf&ved=2ahUKEwiy58WexO32AhWDlWoFHXgmCQMQFnoECEgQAQ&usg=AOvVaw1R8d1pxdOmaYU545DVS4Rv

Link to comment
Share on other sites

It could be done using alias-to-ZID mapping. In your ISY programs, you would only use the aliases for Z-Wave devices. The ISY would use the mapping table to translate between the alias and the Z-Wave id. Then, when a device is assigned a new id, you would need to change the id in the mapping table as an additional administration step, leaving the alias the same. 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.


×
×
  • Create New...