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.

CC2531EMK: What is the significance of not adding proper In/Out Cluster to ZNP?

Part Number: CC2531EMK

I am trying the get ZNP (running HA_1_2_2a in HA profile/mode) to enrol an IAS Zone device (motion sensor). If I did not add cluster ID=0x500 when I issue the AF_REGISTER command to ZNP, will it be the cause of why I cannot receive commands (notifications) from the device?

The interesting part is that if I add the cluster as either an In or Out (or both) when I issue the AF_REGISTER command to ZNP, all my subsequent READ / WRITE ATTRIBUTE AF messages gets rejected by ZNP (AF sub-system) with a status of 2. And I don't get response from the device either because of this. If I simply not add the cluster ID to the list, then the READ & WRITE Attribute messages work.

Any idea what am I doing wrong?

  • Typically the cluster is registered with the stack so that when another device is trying to find what services are being supported on your device. The stack can respond with all the capabilities of the device. This means what clusters are supported.
    For your specific question - why you are not able to get a response or why write attribute fails we will post a response soon. Sorry for the delay.
  • Hi hobieboy,

    Can you share the setup for your AF_REGISTER and the AF request that you are sending to read the attributes.

    Its easy to make mistakes with the endpoint source or destinations, the ZNP comes by default without any endpoint registered so I registered the endpoint 8 (you can use any valid from 1 to 240) so I'm able to send messages from that endpoint to any device. In the case of read attribute command the device must always respond with the read attribute response with status success and the attribute value in case of having the cluster and attribute implemented, or with status unsupported attribute.

    If the remote device doesn't have the endpoint given in the request then the frame will be dropped and no response is given back.

    Regards,
  • Thank you for your response but I have solved the problem now; though I'm still interested in a definitive answer on the original question.

    What ended up happening in my case is that I miscalculated the frame length when registering another cluster 0x500 in the AF_REGISTER message. I received a AF_SUCCESS so didn't think about that. Once I discovered that issue and really successfully registered 0x500 as one of the out_cluster, I started receiving the necessary commands from the device and the read/write attribute commands work as expected.

    So, I am still interested in confirming: If I didn't register a specific cluster as one of the supported out_cluster, will ZNP drop commands sent to me? Or do you believe it is more an issue of ZNP not including that particular cluster in the Simple Descriptor response when requested hence the command was never sent by the device?

  • By convention if you support any cluster in server or client side it must be included in the simple descriptor because is part of the service discovery. In other words if you have wrong information in your simple descriptor other devices will not discover your information properly and try to send messages for clusters that you don't support.

    And remember that the endpoint is the one that will deliver you the messages to process so the handling of the messages like how to process them and which messages will be dropped is up to you/

    Regards,