From f8943011d44018fd657819b97585fc510402fbde Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Wed, 11 Nov 2020 18:11:18 +0100 Subject: [PATCH] Fix unbind for default_bind_group (901) not working from frontend. https://github.com/Koenkk/zigbee2mqtt/issues/4901 --- lib/extension/bridge.js | 2 +- test/bridge.test.js | 2 +- test/publish.test.js | 4 ++-- test/stub/zigbeeHerdsman.js | 1 + 4 files changed, 5 insertions(+), 4 deletions(-) diff --git a/lib/extension/bridge.js b/lib/extension/bridge.js index 81c368446..0c1b8ad28 100644 --- a/lib/extension/bridge.js +++ b/lib/extension/bridge.js @@ -508,7 +508,7 @@ class Bridge extends Extension { const resolved = this.zigbee.resolveEntity(group); return { id: group.groupID, - friendly_name: resolved.name, + friendly_name: group.groupID === 901 ? 'default_bind_group' : resolved.name, members: group.members.map((m) => { return { ieee_address: m.deviceIeeeAddress, diff --git a/test/bridge.test.js b/test/bridge.test.js index 0690a4874..df50c4b0c 100644 --- a/test/bridge.test.js +++ b/test/bridge.test.js @@ -87,7 +87,7 @@ describe('Bridge', () => { logger.setTransportsEnabled(true); expect(MQTT.publish).toHaveBeenCalledWith( 'zigbee2mqtt/bridge/groups', - stringify([{"friendly_name":"group_1","id":1,"members":[]},{"friendly_name":"group_tradfri_remote","id":15071,"members":[]},{"friendly_name":99,"id":99,"members":[]},{"friendly_name":"group_with_tradfri","id":11,"members":[]},{"friendly_name":"thermostat_group","id":12,"members":[]},{"friendly_name":"switch_group","id":14,"members":[{"endpoint":1,"ieee_address":"0x0017880104e45524"}]},{"friendly_name":"group_2","id":2,"members":[]}]), + stringify([{"friendly_name":"group_1","id":1,"members":[]},{"friendly_name":"group_tradfri_remote","id":15071,"members":[]},{"friendly_name":99,"id":99,"members":[]},{"friendly_name":"group_with_tradfri","id":11,"members":[]},{"friendly_name":"thermostat_group","id":12,"members":[]},{"friendly_name":"switch_group","id":14,"members":[{"endpoint":1,"ieee_address":"0x0017880104e45524"}]},{"friendly_name":"default_bind_group","id":901,"members":[]},{"friendly_name":"group_2","id":2,"members":[]}]), { retain: true, qos: 0 }, expect.any(Function) ); diff --git a/test/publish.test.js b/test/publish.test.js index 9b6f9d919..bfe20de1d 100644 --- a/test/publish.test.js +++ b/test/publish.test.js @@ -388,10 +388,10 @@ describe('Publish', () => { it('Should create and publish to group which is in configuration.yaml but not in zigbee-herdsman', async () => { delete zigbeeHerdsman.groups.group_2; - expect(Object.values(zigbeeHerdsman.groups).length).toBe(6); + expect(Object.values(zigbeeHerdsman.groups).length).toBe(7); await MQTT.events.message('zigbee2mqtt/group_2/set', stringify({state: 'ON'})); await flushPromises(); - expect(Object.values(zigbeeHerdsman.groups).length).toBe(7); + expect(Object.values(zigbeeHerdsman.groups).length).toBe(8); expect(zigbeeHerdsman.groups.group_2.command).toHaveBeenCalledTimes(1); expect(zigbeeHerdsman.groups.group_2.command).toHaveBeenCalledWith("genOnOff", "on", {}, {}); }); diff --git a/test/stub/zigbeeHerdsman.js b/test/stub/zigbeeHerdsman.js index 52199adad..a059e0be8 100644 --- a/test/stub/zigbeeHerdsman.js +++ b/test/stub/zigbeeHerdsman.js @@ -177,6 +177,7 @@ const groups = { 'group_with_tradfri': new Group(11, [bulb_2.endpoints[0]]), 'thermostat_group': new Group(12, [TS0601_thermostat.endpoints[0]]), 'group_with_switch': new Group(14, [devices.ZNCZ02LM.endpoints[0]]), + 'default_bind_group': new Group(901, []), } const mock = {