Z-Wave is a mesh network, that means that nodes assist each other with routing commands to other nodes. For this to operate properly, the controller must know which nodes are in contact with other nodes. This information is obtained through a process called "Neighbor Discovery". When a device is added to the network the controller instructs the node to perform this process. The node then reports all the nodes that are in direct range of the added device. The controller then builds its own table of "routes" which are the possible routes it could use the reach the node. Normally, you do not have to be concerned with this process as its automatic. However, if you add and remove many devices, this information can become stale and the controller could develop many bad routes.
Routing prior to Z-Wave +
Prior to Z-Wave+, having accurate routes was more important. The routes were only obtained by this neighbor discovery process. HomeSeer has the ability to manually start a network wide discovery which would update all the neighbor information. HomeSeer also had a feature named "Z-Health" which ran the discovery automatically. This feature has been removed. With Z-Wave+ a new feature was added to the Z-Wave protocol called an "explorer frame". If the controller cannot reach a device it sends out an explorer frame that will discover a route to the destination. This allows the controller to find new routes on the fly. Because of this, performing a manual optimization is normally not necessary and hence one of the reasons the Z-Health feature was removed.
Issues with Optimizing
When a network is large, say over 60 nodes, optimizing the entire network can be problematic. The process takes a very long time. Z-Wave cannot do normal functions during this process. The controller can sometimes get into a bad state requiring it to be restarted. When too many routes are discovered the controller has a hard time finding the best one. It can sometimes pick a route that is not the best and can sometimes fail.
For these larger networks its best to NOT do a full optimize. After some internal testing, the following process has fixed many networks by removing excessive routes:
Routing prior to Z-Wave +
Prior to Z-Wave+, having accurate routes was more important. The routes were only obtained by this neighbor discovery process. HomeSeer has the ability to manually start a network wide discovery which would update all the neighbor information. HomeSeer also had a feature named "Z-Health" which ran the discovery automatically. This feature has been removed. With Z-Wave+ a new feature was added to the Z-Wave protocol called an "explorer frame". If the controller cannot reach a device it sends out an explorer frame that will discover a route to the destination. This allows the controller to find new routes on the fly. Because of this, performing a manual optimization is normally not necessary and hence one of the reasons the Z-Health feature was removed.
Issues with Optimizing
When a network is large, say over 60 nodes, optimizing the entire network can be problematic. The process takes a very long time. Z-Wave cannot do normal functions during this process. The controller can sometimes get into a bad state requiring it to be restarted. When too many routes are discovered the controller has a hard time finding the best one. It can sometimes pick a route that is not the best and can sometimes fail.
For these larger networks its best to NOT do a full optimize. After some internal testing, the following process has fixed many networks by removing excessive routes:
- Clear all routes. To do this, from the Z-Wave plugin back up your Z-Wave interface, then restore it. (NOTE: UZB sticks or Z-Nets with UZB sticks DO NOT support restoring Z-Wave backups) This erases the interface which removes all the nodes and routes. Then do a restore which restores all the nodes. Restart the plugin and ensure that you can still control nodes that are close to the controller.
- At this point the controller has NO routes and will only use direct communication. Run a node connectivity test and see if it can reach all your nodes. If so, you are done, you do not need to optimize anything.
- If you get some failures on the connectivity test, find a Z-Wave+ node that is in the center of your home, maybe a wall switch. Optimize just that node. That node will then become a repeater for any node that is out of range of the controller. Picking a Z-Wave+ node ensures that this node routes at the fastest speed possible.
- Run the connectivity test again. If it passes, you are done, if it fails, pick another node to optimize. Repeat until you have good connectivity.
- Z-Wave devices are available in 3 different speeds, 9.6Kbps, 40Kbps, 100Kbps. If your network has mixed speed devices try to not optimize non 100K devices. There are some bugs in some of the older Z-Wave firmware where it will attempt to route at the wrong speed. Not using slower speed devices in routing will remove this possibility.
- If routing is kept to 100K devices you be assured that your network will run as fast as possible. Imagine if an older 9.6K device was in the center of your network and used in most routing. This would slow down the entire network.
- If you have ALL Z-Wave+ devices your network it should "self heal" in that the explorer frame should find all the needed routes and you should not have to optimize any nodes. However, its rare to have a network that is 100% Z-Wave+.
- A single device may be optimized from the Z-Wave tab in the root device properties.
- How can you tell if a node is Z-Wave+? From the Z-Wave plugin menu in HomeSeer select "Node Information". Find the version section for the node and look at the ZDK version #. If it starts with "6", like 6.81, then its a Z-Wave+ node. Also, check the speed, it its 100K, its most likely Z-Wave+.
Comment