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.

Unknown device discovery

If an unknown device joins the network how does a coordinator know what type of device it is and what it can do?

 

Right now when a device joins the network, I am using ActiveEP, to get all the endpoints, and then asking each endpoint for the simple desc to get the clusters it supports.

 

Is there a more efficient way? This seems like an unefficient manner, several messages to get a fundamental description.

 

Thanks,

Ryan

  • I'm not sure what you're refering to by "ActiveEP", but the only way I know of to understand what capabilities a unknown device has is to request its descriptors. Usually the Coordinator doesn't need to know all the capabilities of the devices joining it, but in most circumstances, there are only a fixed number of devices with fixed capabilities. The Coordinator could match the device type against a table of capabilities internally for that device type if you want to make things more efficient.

  • ActiveEP is a message to a device that makes it list its endpoints.   Correct me if I am wrong, but you need the endpoint inorder to request its descriptors.   If a device has multiple endpoints, you need to first get the list of endpoints so you can ask for the descriptor for each endpoint.

    My coordinator need to know alot about the joining devices since it is the central hub of the network (and the coordinator reports serially to other devices not related to Zigbee).  The coordinator must also be able to communicate with Zigbee devices made from any manufactorer.   This makes a table not the best soltuion.

    Basicaly what I want to do for example is when a device joins the network, search all its endpoints for lets say the thermostat cluster, and if it has it then I know what information to ask that device for.

    I was just hoping there was a more efficient way then what I described above.