diff --git a/lib/extension/report.js b/lib/extension/report.js index 10495e15..20d787a2 100644 --- a/lib/extension/report.js +++ b/lib/extension/report.js @@ -81,8 +81,13 @@ const pollOnMessage = [ }, // Read the following attributes read: {cluster: 'genLevelCtrl', attributes: ['currentLevel']}, - // When the bound devices/members of group have the following manufacturerID - manufacturerID: ZigbeeHerdsman.Zcl.ManufacturerCode.Philips, + // When the bound devices/members of group have the following manufacturerIDs + manufacturerIDs: [ + ZigbeeHerdsman.Zcl.ManufacturerCode.Philips, + ZigbeeHerdsman.Zcl.ManufacturerCode.ATMEL, + ZigbeeHerdsman.Zcl.ManufacturerCode.GLEDOPTO_CO_LTD, + ZigbeeHerdsman.Zcl.ManufacturerCode.MUELLER_LICHT_INT, + ], }, { key: 2, @@ -98,7 +103,12 @@ const pollOnMessage = [ ], }, read: {cluster: 'genOnOff', attributes: ['onOff']}, - manufacturerID: ZigbeeHerdsman.Zcl.ManufacturerCode.Philips, + manufacturerIDs: [ + ZigbeeHerdsman.Zcl.ManufacturerCode.Philips, + ZigbeeHerdsman.Zcl.ManufacturerCode.ATMEL, + ZigbeeHerdsman.Zcl.ManufacturerCode.GLEDOPTO_CO_LTD, + ZigbeeHerdsman.Zcl.ManufacturerCode.MUELLER_LICHT_INT, + ], }, ]; @@ -264,7 +274,7 @@ class Report extends Extension { for (const endpoint of toPoll) { for (const poll of polls) { - if (poll.manufacturerID !== endpoint.getDevice().manufacturerID) { + if (!poll.manufacturerIDs.includes(endpoint.getDevice().manufacturerID)) { continue; } diff --git a/test/report.test.js b/test/report.test.js index 85cb9863..65f5079a 100644 --- a/test/report.test.js +++ b/test/report.test.js @@ -267,7 +267,7 @@ describe('Report', () => { expect(zigbeeHerdsman.devices.bulb_color_2.getEndpoint(1).read).toHaveBeenCalledTimes(2); // Should only call Hue bulb, not e.g. tradfri - expect(zigbeeHerdsman.devices.bulb.getEndpoint(1).read).toHaveBeenCalledTimes(0); + expect(zigbeeHerdsman.devices.bulb_2.getEndpoint(1).read).toHaveBeenCalledTimes(0); }); it('Should not configure reporting for the ZNLDP12LM closuresWindowCovering as it is ignored', async () => {