This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

[Zigbee] Multiple endpoints device don't produce reports.

Hello,

We are currently developing an application that requires a device to have multiple endpoints. All these endpoints have to make reports to another device.

We take as reference the example ble_zigbee_dynamic_color_light_bulb_thingy. We are declaring all endpoints exactly the same way that example does.

We have a total of 10 endpoints that should report but only the last of them reports.

We found that when we want to configure the reports of each endpoint when calling the function zb_zcl_find_reporting_info(), to find the array of reports of each endpoint, it returns a null value except in the case of the last endpoint.

Researching through the forum we saw this thread: devzone.nordicsemi.com/.../zigbee-unable-to-subscribe-to-attributes-and-or-receive-reports-on-device- with-multiple-endpoints
and we implement the sort_ep_desc_list() function before configuring the reports for each endpoint. When implementing this function with each endpoint the zb_zcl_find_reporting_info() function returns a non-null value and the reports are configured (apparently). With this implementation we saw that the reports are executed in wireshark using the sniffer.

What we want to know is if this implementation is correct or if it modifies something else that it shouldn't. Now using this function before configuring each report all endpoints report fine, but we don't want to be surprised later that we broke some other section of the stack.

Regards,

jnr

Parents
  • Hi,

    How are you configuring attributes reporting? Are you using the CLI example as a coordinator? Can you attach the sniffer trace and the CLI output when configuring reporting?

    I could not find the function zb_zcl_find_reporting_info() on the documentation anymore so I am unsure what you should expect from this function and if it has been removed. I have asked our Zigbee team about this and I have also asked about the status of the multiple ep bug and the previous workaround on ZBOSS you mentioned on that previous ticket. Because of heavy workload it can take some time until they can come back to me with an answer so please be patient.

    Best regards,

    Marjeris

  • Hi,

    Thanks for the answer.

    We already use the function zb_zcl_find_reporting_info() in another project and works well. It returns the struct with the information of the reports of a determinated attribute of a determinated cluster in a determinated endpoint. 

    In the project I mentionated above, the function returns the correct value if we call the function sort_ep_desc_list() decripted in this ticket  https://devzone.nordicsemi.com/f/nordic-qa/59648/zigbee-unable-to-subscribe-to-attributes-and-or-receive-reports-on-device-. If we don't call the function sort_ep_desc_list() before using zb_zcl_find_reporting_info(), then the last returns NULL.

    We configure the attributes report in the same way as they are configured in the example ble_zigbee_dynamic_color_light_bulb_thingy.

    We aren't using the cli coordinator for this. The coordinator we are using is alredy being used in production with other devices. It is verified and works well with the other devices.

    We understand that this bug is a heavy workload for you. We will be attentive to any news.

    Regards,

    Julian

  • Hi Julian,

    Update: The issue with multiple endpoint devices don't producing reports is still present in nRF5 SDK, but it is fixed in NCS. The issue is in the zb_zcl_find_reporting_info function, which is embedded inside the ZBOSS library, thus fixing requires a library update, so applying the workaround describe in ticket #247041 is the only way for nRF5 SDK users.

    The user does not need to use the zb_zcl_find_reporting_info function directly, so it was made private in the newer version of ZBOSS.

    Limitations of the workaround:

    • If the application wants to configure the reporting locally, the fixer (sort_ep_desc_list) for the endpoint that is about to be configured shall be called before the zb_zcl_put_reporting_info.
    • Write attribute hooks for all clusters are overridden by the workaround. If the customer wants to use the write attribute hook, the workaround should be modified to handle the selected cluster the same way as it was done for the Identify cluster.

    Best regards,

    Marjeris

Reply
  • Hi Julian,

    Update: The issue with multiple endpoint devices don't producing reports is still present in nRF5 SDK, but it is fixed in NCS. The issue is in the zb_zcl_find_reporting_info function, which is embedded inside the ZBOSS library, thus fixing requires a library update, so applying the workaround describe in ticket #247041 is the only way for nRF5 SDK users.

    The user does not need to use the zb_zcl_find_reporting_info function directly, so it was made private in the newer version of ZBOSS.

    Limitations of the workaround:

    • If the application wants to configure the reporting locally, the fixer (sort_ep_desc_list) for the endpoint that is about to be configured shall be called before the zb_zcl_put_reporting_info.
    • Write attribute hooks for all clusters are overridden by the workaround. If the customer wants to use the write attribute hook, the workaround should be modified to handle the selected cluster the same way as it was done for the Identify cluster.

    Best regards,

    Marjeris

Children
No Data
Related