ZigBee Groups Handler Bug

Hello,

I am using nRF Connect SDK 1.7.0 and wrote a light-bulb-device. It has two identical dimmer-endpoints and I reconized there is a bug with the ZCL Groups cluster.

For example:

Adding a group to endpoint number 1 (ZB_ZCL_CMD_GROUPS_ADD_GROUP).

Now asking endpoint number 2 (the other one) for its list of groups

It should return an empty list as the group was added to the first one. (ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP)

-> It actually returns the group of the other endpoint

From what I checked in the library it looks like internal there is only one list of groups for all endpoints together.

The GET_GROUP_MEMBERSHIP command will always return the complete list, without checking the group membership of each endpoint before returning the items.

The Cluster Library says:

4422 If the group count field of the command frame has a value of 0 indicating that the group list field is empty,
4423 the entity SHALL respond with all group identifiers of which the entity is a member.

The "get group membership " command is unicasted to the endpoint. So I would expect the endpoint to be "the entity". And when the endpoint answers its group list it should only list those who the endpoint is part of.

The Library actually sends all groups known to the device - which looks wrong to me (as if the device would be seen as "the entity").

Is there a workaround for this problem?

I know how to override the command handler to implement an own handler for the ZB_ZCL_CMD_GROUPS_GET_GROUP_MEMBERSHIP command, but how to access the list of groups from application-level? Commands like zb_apsme_get_group_membership_request don't seem to be accessible from application? I only find zb_aps_is_endpoint_in_group but checking for 0-0xFFFF is not really an option...

Thanks & best regards,

Alex

Related