This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

How to do a full network discovery?

Hi All

I will try to explain my problem. I need to join a ZigBee Network, and once joined, I need a way to know how many devices are there on the network, what kind of devices they are, profiles, descriptors, and so on.

I thought that "ZDP_MgmtNwkDiscReq" would do this, because of the name (network Discovery), but this command checks for the presence of any network, and gives you some info about PAN ID, channel, stack profile, zigbee version, if is it possible to join or not.... this is not what I need.

Do you know if there is an "automatic" way of doing this? I have been reading the ZigBee standard and didn't found anything, but the truth is that this is a big standard, maybe I missed something usefull!

If there is no "automatic" way of doing this.... how do you think I should proceed? Maybe a System_Server_Discovery_req to find Primary Discovery Cache Devices, and then asking for Cache entries?

Thanks in advance!

  • There is no automatic way of doing this and it is unrealistic. In general, there is a host that connects to coordinator via UART or SPI interface and this host will keep the device info that has joined the network. May I have why you want to do that? Maybe we can find you some alternatives.

  • Hi Yikai, thanks for your answer

    I am actually trying to implement a gateway to Ethernet. The idea is to have a device that should be able to connect to an existing network, gain knowledge about it (all the devices that are present, which kind of profile are they implementing, and so on), and show that info to a remote device (maybe a PC, maybe a Smartphone).

    With this, the remote device could send messages to members of the network and control them remotely.

    I guess this could be easier if this gateway was the coordinator of a new network, because we could get all the "device announcement" messages and store that info, this could be my back-up plan. But I would like to try to make an algorithm to scan the network, maybe with "ZDP_MgmtLqiReq", and retrieving the neighbor tables? Once I have all the known addresses, I should ask for node descriptor to each device.

    Do you think is possible?

  • Yes, it might work. You can try to send ZDP_MgmtLqiReq to coordinator first and receive neighbor list from coordinator. Then, you can apply ZDP_MgmtLqiReq recursively to those devices on the neighbor list. Good luck.