Zigbee Cluster Library Configure Reporting Command

Hello, 

In the past months, I'm being developing Zigbee Routers-based applications and so far everything is going well.

I've already a few devices installed without OTA capabilities, and recently I noticed that some attributes are being reported too often without being needed.

So, I went through the ZCL and I found out that it might be possible to workaround this issue without the need for firmware updates on the router's side.

Well, apparently I should be able to send this "Configure Reporting Command" from the coordinator side, specifying the desired reportable change (2.5.7).

However, I'm not having too much luck on that and I've also noticed strange behavior. 

So, with:

 - Minimum report interval = 0x0

 - Maximum report interval = 0x0

 - Reportable change = 0xA

 - Timeout = 0x0

I've noticed that, even when the temperature value changes with 10 more degrees from the last reportable value, I'm not receiving anything. Also, if I hit the reset button on the router, it leaves the Zigbee network and re-joins again (only happens when using this command).

Any suggestion?

Thanks in advance,

Best regards,

Fernando Fontes

Parents
  • Hi Fernando

    Can you provide some more details as to what your issue is?

    • What kind of attributes are you seeing being reported too often, and under what circumstances does this happen?
    • What SDK version are you using, and what devices are communicating together in this Zigbee network?
    • Can you link to this "Configure Reporting Command" documentation, so I can get a better view at where this is coming from, and a code snippet of how you're implementing it?

    My initial guess would be that you need to set the min and/or max report interval to something other than 0 for the reports to occur. It might also be helpful if you could provide a sniffer trace of what's going on over the air by either using a dedicated sniffer or our nRF52840 DK and our nRF Sniffer. This way we can likely see what trigs both the too often reports and whether the new reporting command actually transmits reports at all.

    Best regards,

    Simon

Reply
  • Hi Fernando

    Can you provide some more details as to what your issue is?

    • What kind of attributes are you seeing being reported too often, and under what circumstances does this happen?
    • What SDK version are you using, and what devices are communicating together in this Zigbee network?
    • Can you link to this "Configure Reporting Command" documentation, so I can get a better view at where this is coming from, and a code snippet of how you're implementing it?

    My initial guess would be that you need to set the min and/or max report interval to something other than 0 for the reports to occur. It might also be helpful if you could provide a sniffer trace of what's going on over the air by either using a dedicated sniffer or our nRF52840 DK and our nRF Sniffer. This way we can likely see what trigs both the too often reports and whether the new reporting command actually transmits reports at all.

    Best regards,

    Simon

Children
  • Hi Simon,

    Thank you very much so far.

    • What kind of attributes are you seeing being reported too often, and under what circumstances does this happen?
      • I'm developing my own clusters. It's not a well-known cluster. I have a temperature reading variable, that is reporting too often since the temperature is constantly oscillating between 1 and two degrees.
    • What SDK version are you using, and what devices are communicating together in this Zigbee network?
      • I'm using the "nRF5 SDK for Thread and Zigbee v4.1.0". I have a couple of devices running my custom clusters on the network. The coordinator is a texas dongle running the zigbee2mqtt firmware. 
    • Can you link to this "Configure Reporting Command" documentation, so I can get a better view at where this is coming from, and a code snippet of how you're implementing it?
      • Section 2.5.7 of the ZCL document.

     

    After capturing the Zigbee traffic using WireShark, I noticed that the configure report command actually works quite well. The problem now is only the fact that, after receiving the command, if I reboot the device, it will re-join the network. Something that I don't want, because the coordinator is not expecting that, and it does not send the bind / subscribe commands again. 

    I've attached the report.pcapng file (network key: 01:03:05:07:09:0B:0D:0F:00:02:04:06:08:0A:0C:0D). The program is incrementing a counter (increments of 1) every 5 seconds and reporting its value. After sending the configure report command, the program reports only after increments of 10 (expected). However, when I reboot the device, it leaves the network and re-joins again (not expected).

    Best regards,

    report.pcapng

Related