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

Multi-endpoints Zigbee device answers to GET_GROUP_MEMBERSHIP_REQ with the group list of the entire device!

Hello,

I'm currently implementing a multi-endpoints Zigbee device using an nRF52840.

This device is a router which have several "GROUPS" clusters (one in each endpoint).

For a particular endpoint, I would expect the response to ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP command to just include the list of group of this particular endpoint, instead, the response contains all the groups of the device. (same answer for all endpoints of the device).

This is totally creating the mess in my discovery software which is using this command to discover and managing groups.

Same issue also appear for the command ZB_ZCL_CMD_GROUPS_VIEW_GROUP, at soon as a  group is added to a specific endpoint of the device, all others endpoints of the same device successfully respond to the command even if the group is not part of this endpoint!

I also have the same behaviour using the zigbee_examples_ble_zigbee_color_light_bulb_thingy example compile and tested for my nrf52840 PCA10059 Dongle.

I'm currently using the version 4.1.0 version of the SDK.

Thanks & Regards

Didier

Parents
  • Hi Didier,

    Sorry for the late reply. Do you have a sniffer trace of the communication between the multi-endpoint router and the coordinator to show us how the coordinator is sending the Get Group membership command and how the router is responding? Can you attach it here?

    Are you using 'zcl cmd' to send the command with the coordinator? What payload are you using for the command?

    The ZCL specification says the following on the Effects on receipt of the Get Group membership command:

    On receipt of the get group membership command, each receiving entity SHALL respond with group membership information using the get group membership response frame as follows:

    • If the group count field of the command frame has a value of 0 indicating that the group list field is empty, the entity SHALL respond with all group identifiers of which the entity is a member.
    • If the group list field of the command frame contains at least one group of which the entity is a member, the entity SHALL respond with each entity group identifier that match a group in the group list field.
    • If the group count is non-zero, and the group list field of the command frame does not contain any group of which the entity is a member, the entity SHALL only respond if the command is unicast. The response SHALL return a group count of zero.

    I am not sure if by "entity" this means the Zigbee device and not only the endpoint, I will need to consult with our Zigbee developers about that part.

     Best regards,

    Marjeris

  • Hello,

    Thanks you for your answer.

    Indeed with a trace extract it will be more easier : GroupMemberShipWithFilter.txt 

    The GetGroupMembership command payload is Group Count: 0 as show in this extract:

    Little question, do you know if the documentation is also referring to "the entity" in the  AddGroup command documentation?

    Here the scenario I have captured (targeting the "zigbee_examples_ble_zigbee_color_light_bulb_thingy" example):

    • GetGroupMembership on endpoint #10  --> answer is 0 group
    • GetGroupMembership on endpoint #11 --> answer is 0 group
    • Add Group 0x000a on endpoint #10 --> answer is successful
    • Add Group 0x000b on endpoint #11 --> answer is successful
    • GetGroupMembership on endpoint #10 --> answer is 2 groups: 0x000a & 0x000b !
    • GetGroupMembership on endpoint #11 --> answer is 2 groups: 0x000a & 0x000b !
    • ViewGroup 0x000a on endpoint #12 --> answer is successful !
    • ViewGroup 0x000b on endpoint #12 --> answer is successful !
    • GetGroupMembership on endpoint #12 --> answer is 2 groups: 0x000a & 0x000b !
    • RemoveGroup 0x000a on endpoint #12 --> answer is not found  (as expected, but not coherent with the previous!)
    • RemoveGroup 0x000b on endpoint #12 --> answer is not found  (as expected, but not coherent with the previous!)
    • GetGroupMembership on endpoint #10 --> answer is 2 groups: 0x000a & 0x000b !

    I hope this will help you in your diagnostic.

    Thanks & Regards

    Didier

Reply
  • Hello,

    Thanks you for your answer.

    Indeed with a trace extract it will be more easier : GroupMemberShipWithFilter.txt 

    The GetGroupMembership command payload is Group Count: 0 as show in this extract:

    Little question, do you know if the documentation is also referring to "the entity" in the  AddGroup command documentation?

    Here the scenario I have captured (targeting the "zigbee_examples_ble_zigbee_color_light_bulb_thingy" example):

    • GetGroupMembership on endpoint #10  --> answer is 0 group
    • GetGroupMembership on endpoint #11 --> answer is 0 group
    • Add Group 0x000a on endpoint #10 --> answer is successful
    • Add Group 0x000b on endpoint #11 --> answer is successful
    • GetGroupMembership on endpoint #10 --> answer is 2 groups: 0x000a & 0x000b !
    • GetGroupMembership on endpoint #11 --> answer is 2 groups: 0x000a & 0x000b !
    • ViewGroup 0x000a on endpoint #12 --> answer is successful !
    • ViewGroup 0x000b on endpoint #12 --> answer is successful !
    • GetGroupMembership on endpoint #12 --> answer is 2 groups: 0x000a & 0x000b !
    • RemoveGroup 0x000a on endpoint #12 --> answer is not found  (as expected, but not coherent with the previous!)
    • RemoveGroup 0x000b on endpoint #12 --> answer is not found  (as expected, but not coherent with the previous!)
    • GetGroupMembership on endpoint #10 --> answer is 2 groups: 0x000a & 0x000b !

    I hope this will help you in your diagnostic.

    Thanks & Regards

    Didier

Children
No Data
Related