I have a question about a setup with my XBee Pro S2B modules. I want to have a couple of networks, each with their own PANID, consisting of one coordinator, a number of routers, and a number of end devices. They are working in API escape mode.
Now, I want to be able to send packets from the end devices to a certain router. One time it may be router 1, next time router 2. But the XBee modules in the routers may be replaced when defective, & the 16bit PANID is self-chosen by the coordinator, so I only know for sure what their 64bit PANID & NodeID are (they can be configures upon replacement). The 64bit PANID is the same for all routers, so I can only address them uniquely using their NodeID.
But as far as I can see I can only address a certain node using the 64bit manufacturing address and the 16bit random generated and not static network address. So how do I send a packet to a certain device, being sure that it is indeed being sent to that device? Or is my setup wrong?
I do know one solution to this: broadcast all messages and filter them in the devices using a filter element in the payload. But that generates quite some overhead and I would like to avoid that.
Davy Van Rossem
You only need to send the data to the Modules 64 bit MAC address. providing that node is within the network, the modules will figure out how to get it there. After all that is why the 64 bit Destination / Mac address function exists.
But my problem is that the Router to which I want to send my info might get defective and be replaced. At that moment, I want the end device to still send its info to the new router, without reprogramming the end device with the new MAC address. Is this possible?
No-one who has an answer to this? It seems strange that it wouldn’t be possible, but if someone would know for sure it isn’t, please let me know.
If you want to send it to a specific node, the only other option is to use the NI and DN commands. Otherwise it is not possible to do what you want.
Try the document “90002173_P_900HP_MODULE.pdf”, section “XBee-PRO 900HP network link establishment and maintenance” pg 104.
For future reference, if anyone has the same problem, I found a solution: I overlooked the ND & DN functionalities. Those can be used to discover all nodes (ND) or a node with a specific node identifier (DN) upon which these nodes will reply with their 16bit & 64bit addresses. These can be stored locally in a data table in the end device. It can take up to 6 seconds before a reply is received (configurable but may create problems with ND if it is lowered with lots of devices).
Now, I won’t known upfront to which router a specific end device may need to send a certain message (the NI of the router will be issued to the end device and then it will have to send the message within 200ms) so every X minutes I will make the end devices do an ND, store all node info locally (only routers, disregard other end devices, I can filter this based on NI), and then I will know all addresses.
Davy Van Rossem
Ow, sorry, I didn’t see your answer. As you can read in my reply I found it out myself in the meantime, but many thanks for your help. That was indeed the answer I needed.