I will be attempting to use the ZB modules to form a ClusterTree network with up to 500 ENDs. There will be up to Qty 10 mains powered repeaters (ROUTERS) forming the tree. There will be one mains powered COORD. The ENDs are mobile and will be moving in and out of the network daily. I need the ENDs to cyclically sleep for about 10 sec.
Is it possible to use the ND command to reliably obtain all the ENDs that are currently within the network (even with the ENDs only waking up every 10 sec)?
How long does it take to receive the list of ENDs after executing the ND command (i.e. is this data a ‘table’ in the COORD and ROUTERs that is obtained in less than 1 sec typ) ?
When a new mobile END enters the network, how long does it typ. take to associate to it’s ROUTER parent and update the END client list available via the ND command? Does the stack automatically take care of this?
If the mobile END is not in the network RF cloud, will it still only wakeup every 10 sec and look for a parent… therefore not killing the battery of the END while it has left the network?
Do I need to use API mode (instead of transparent mode) for any reason? (i.e. will the ND command be reliable and provide a valid END list every time).
Just one quick note. The most “children” under a mains powered router is 10. Thus you will need at least 50 “always awake” routers.
#1 - The ND command should reliably return the end devices in the network. You should probably send the ND command a couple of times to get a complete list.
#2 - The ND command is a broadcast that routers and the coordinator will buffer (until another broadcast is received). When the end devices wake from sleep (within 10 seconds), they should get the ND broadcast from their parent. They will then delay a random time before sending their ND response. The random time is based on the NT value of the device that sent the ND command. NT is measured in 100ms units and defaults to 60 (6 seconds). In your scenario, with NT=0x3C (60), it could take up to 16 seconds for an end device to respond (10 seconds to wake + a random delay up to 6 seconds). Be sure not to send any other broadcasts when sending the ND command - a router or coordinator will only buffer the most recent broadcast it receives for its end device children.
The routers / coordinator do not have a list that stores ND data - the ND responses are sent by each device that receives the ND.
#3 - When the end device joins a network, it should be able to respond to ND immediately.
#4 - If an end device does not have a parent, it will scan all SC channels for a valid network. If a failure occurs, it will sleep between scan attempts.
#5 - If you have a single device that talks to (or collects data from) the other devices, you are generally better off using the API for that device.
Hope that helps!
- Yes, it is incorrect. The number of remaining end device children a device can allow can be read by issuing the NC command. In ZB, it is 10 on the coordinator and AT routers, and 12 on API routers.
Once NC=0 and a router/coordinator cannot allow any more joins, additional end devices must be within range of a router/coord that is allowing end devices to join.
The 10-12 child limit is mostly a function of balancing RAM. There is a finite amount of RAM that must be shared among the end device child table, packet buffer space, UART buffers, routing tables, etc. Also, keep in mind that since a router must buffer packets for its end device children, increasing the number of end device children a single router has can require more RAM to buffer packets for the additional children.
any complete info of how deep can zb modules operate with the max. numbers of end devices? thnaks… just like in series one as i know it can go up to 5 network deep with x6 routers in coordinator and x14 end devices in evry routers…
The maximum depth is dependent upon the NH and BH commands of the firmware used.