zigbee2mqtt icon indicating copy to clipboard operation
zigbee2mqtt copied to clipboard

Binding is not cleared when removing a group

Open grafalex82 opened this issue 1 year ago • 8 comments

What happened?

If a switch is bound to a group, and the group is deleted, the binding remains on the list, and can't be deleted.

What did you expect to happen?

When a group is deleted all bindings to the group are cleaned up.

How to reproduce it (minimal and precise)

  • Create a group
  • Add a light to the group
  • Bind a switch to the group
  • Delete the group
  • Spot the binding to the group still listed on the device page. The binding cannot be removed.

Zigbee2MQTT version

1.36.0

Adapter firmware version

20200211

Adapter

CC2652

Setup

Z2M in docker container, running on x64 Linux computer

Debug log

Zigbee2MQTT:debug 2024-03-28 16:16:44: Received MQTT message on 'zigbee2mqtt/bridge/request/group/remove' with data '{"id":"test_group","transaction":"9hwzl-11"}' Zigbee2MQTT:info 2024-03-28 16:16:44: Removing group 'test_group' (force: false) zigbee-herdsman:controller:endpoint ZCL command 0x003c84fffecd6a11/1 genGroups.remove({"groupid":1234}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":0,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":null,"writeUndiv":false}) +8s zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x003c84fffecd6a11:44503/1 (0,0,1) +8s zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":44503,"destendpoint":1,"srcendpoint":1,"clusterid":4,"transid":17,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[17,9,3,210,4]}} +8s zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,215,173,1,1,4,0,17,0,30,5,17,9,3,210,4,147] +8s zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100] +8s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100 +0ms zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0} +8s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +0ms zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,17,215] +6ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,17,215] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,17] - 215 +0ms zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":17} +8s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,26,68,129,0,0,4,0,215,173,1,1,0,68,0,131,22,53,0,0,6,25,9,3,0,210,4,215,173,29,225] +15ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,26,68,129,0,0,4,0,215,173,1,1,0,68,0,131,22,53,0,0,6,25,9,3,0,210,4,215,173,29,225] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 26 - 2 - 4 - 129 - [0,0,4,0,215,173,1,1,0,68,0,131,22,53,0,0,6,25,9,3,0,210,4,215,173,29] - 225 +0ms zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":4,"srcaddr":44503,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":68,"securityuse":0,"timestamp":3479171,"transseqnumber":0,"len":6,"data":{"type":"Buffer","data":[25,9,3,0,210,4]}} +17ms zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":1,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":true,"reservedBits":0},"transactionSequenceNumber":9,"manufacturerCode":null,"commandIdentifier":3},"Payload":{"status":0,"groupid":1234},"Command":{"ID":3,"parameters":[{"name":"status","type":32},{"name":"groupid","type":33}],"name":"removeRsp"}},"address":44503,"endpoint":1,"linkquality":68,"groupID":0,"wasBroadcast":false,"destinationEndpoint":1}' +8s zigbee-herdsman:controller:log Skipping command 'removeRsp' because it is missing from the lookup +0ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +1ms zigbee-herdsman:controller:database:log Writing database to '/home/grafalex/Projects/zigbee2mqtt/data/database.db' +22s zigbee-herdsman:controller:database:log Writing database to '/home/grafalex/Projects/zigbee2mqtt/data/database.db' +12ms Zigbee2MQTT:info 2024-03-28 16:16:44: MQTT publish: topic 'zigbee2mqtt/test_group', payload '' Zigbee2MQTT:info 2024-03-28 16:16:44: Successfully removed group 'test_group' (force: false) Zigbee2MQTT:info 2024-03-28 16:16:44: MQTT publish: topic 'zigbee2mqtt/bridge/response/group/remove', payload '{"data":{"force":false,"id":"test_group"},"status":"ok","transaction":"9hwzl-11"}' zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,27,68,129,0,0,6,0,215,173,1,1,0,63,0,34,47,53,0,0,7,8,54,10,0,0,16,1,215,173,29,224] +2s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,27,68,129,0,0,6,0,215,173,1,1,0,63,0,34,47,53,0,0,7,8,54,10,0,0,16,1,215,173,29,224] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 27 - 2 - 4 - 129 - [0,0,6,0,215,173,1,1,0,63,0,34,47,53,0,0,7,8,54,10,0,0,16,1,215,173,29] - 224 +0ms zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - incomingMsg - {"groupid":0,"clusterid":6,"srcaddr":44503,"srcendpoint":1,"dstendpoint":1,"wasbroadcast":0,"linkquality":63,"securityuse":0,"timestamp":3485474,"transseqnumber":0,"len":7,"data":{"type":"Buffer","data":[8,54,10,0,0,16,1]}} +2s zigbee-herdsman:controller:log Received 'zcl' data '{"frame":{"Header":{"frameControl":{"frameType":0,"manufacturerSpecific":false,"direction":1,"disableDefaultResponse":false,"reservedBits":0},"transactionSequenceNumber":54,"manufacturerCode":null,"commandIdentifier":10},"Payload":[{"attrId":0,"dataType":16,"attrData":1}],"Command":{"ID":10,"name":"report","parameters":[{"name":"attrId","type":33},{"name":"dataType","type":32},{"name":"attrData","type":1000}]}},"address":44503,"endpoint":1,"linkquality":63,"groupID":0,"wasBroadcast":false,"destinationEndpoint":1}' +2s zigbee-herdsman:controller:endpoint ZCL command 0x003c84fffecd6a11/1 genOnOff.defaultRsp({"cmdId":10,"statusCode":0}, {"timeout":10000,"disableResponse":false,"disableRecovery":false,"disableDefaultResponse":true,"direction":1,"srcEndpoint":null,"reservedBits":0,"manufacturerCode":null,"transactionSequenceNumber":54,"writeUndiv":false}) +2s zigbee-herdsman:adapter:zStack:adapter sendZclFrameToEndpointInternal 0x003c84fffecd6a11:44503/1 (0,0,1) +2s zigbee-herdsman:adapter:zStack:znp:SREQ --> AF - dataRequest - {"dstaddr":44503,"destendpoint":1,"srcendpoint":1,"clusterid":6,"transid":18,"options":0,"radius":30,"len":5,"data":{"type":"Buffer","data":[24,54,11,10,0]}} +2s zigbee-herdsman:adapter:zStack:unpi:writer --> frame [254,15,36,1,215,173,1,1,6,0,18,0,30,5,24,54,11,10,0,112] +2s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +2ms Zigbee2MQTT:debug 2024-03-28 16:16:46: Received Zigbee message from 'small_lamp', type 'attributeReport', cluster 'genOnOff', data '{"onOff":1}' from endpoint 1 with groupID 0 Zigbee2MQTT:info 2024-03-28 16:16:46: MQTT publish: topic 'zigbee2mqtt/small_lamp', payload '{"brightness":254,"color_mode":"xy","color_temp":422,"color_temp_startup":65535,"linkquality":63,"state":"ON","update":{"installed_version":69635,"latest_version":69635,"state":"idle"},"update_available":false}' zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,1,100,1,0,100] +14ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,1,100,1,0,100] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 1 - 3 - 4 - 1 - [0] - 100 +0ms zigbee-herdsman:adapter:zStack:znp:SRSP <-- AF - dataRequest - {"status":0} +2s zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +0ms zigbee-herdsman:adapter:zStack:unpi:parser <-- [254,3,68,128,0,1,18,212] +3ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [254,3,68,128,0,1,18,212] +0ms zigbee-herdsman:adapter:zStack:unpi:parser --> parsed 3 - 2 - 4 - 128 - [0,1,18] - 212 +0ms zigbee-herdsman:adapter:zStack:znp:AREQ <-- AF - dataConfirm - {"status":0,"endpoint":1,"transid":18} +19ms zigbee-herdsman:adapter:zStack:unpi:parser --- parseNext [] +0ms

grafalex82 avatar Mar 28 '24 16:03 grafalex82

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days

github-actions[bot] avatar Sep 25 '24 00:09 github-actions[bot]

This is pretty annoying. Can there be an option to just clear all bindings of a switch so I can start fresh?

binarynoise avatar Sep 27 '24 22:09 binarynoise

This issue is stale because it has been open 180 days with no activity. Remove stale label or comment or this will be closed in 30 days

github-actions[bot] avatar Dec 30 '24 00:12 github-actions[bot]

just because it has no activity, doesn't mean it's not still an issue

binarynoise avatar Dec 30 '24 15:12 binarynoise

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days

github-actions[bot] avatar Mar 01 '25 00:03 github-actions[bot]

Keepalive

binarynoise avatar Mar 01 '25 00:03 binarynoise

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days

github-actions[bot] avatar May 01 '25 00:05 github-actions[bot]

This probably won't fix itself

binarynoise avatar May 01 '25 00:05 binarynoise

This issue is stale because it has been open 60 days with no activity. Remove stale label or comment or this will be closed in 7 days

github-actions[bot] avatar Jul 01 '25 00:07 github-actions[bot]