espressif / esp-zigbee-sdk

Espressif Zigbee SDK
Apache License 2.0
132 stars 20 forks source link

add a method that returns the structure of the zigbee network and the quality of each of its links (TZ-923) #360

Open diazmanuel opened 1 month ago

diazmanuel commented 1 month ago

Is your feature request related to a problem?

I would like to be able to see the status of the network and the quality of each of the links to know if I should add repeaters or not.

Describe the solution you'd like.

I would like you to add a method to be able to read the structure of the zigbee network, that is, a method that is called from the cordinator which returns a list of devices with the following data:

With this data I could construct how the network and the link of each of them is formed.

Suppose we have the following devices Coordinator, Router A, Router B, Router C, Endpoint A, Endpoint B, Endpoint C, Endpoint D, Endpoint E, Endpoint F, Endpoint G, Endpoint H With this method I hope to be able to obtain a structure like the following

Cordinator drawio In this example, Endpoint F would be outside the network

I was looking at the different methods found in the functions of the current SDK and some of the functions of the Zboss library; and I found some that might work by the espressif SDK the esp_zb_nwk_get_next_neighbor() function.This function provides the necessary information but can only be used locally. A solution would be to make this function available in the format of an external request which takes the destination address as a parameter, thus allowing you to read the neighbor table of any device of the network (similar to the method used to read the bindings table externally esp_zb_zdo_binding_table_req()).

On the other hand, I saw that ZBoss achieves what I'm looking for through the iterative implementation of zb_zdo_mgmt_lqi_req(), making this function available could be another solution, but the best way would be to create a new method which prevents the user from having to iterate and survey each of the devices manually

Describe alternatives you've considered.

No response

Additional context.

No response

chshu commented 4 weeks ago

It sounds a reasonable requirement, which is similar the Thread Network Diagnostics feature. We will evaluate and add the feature support.