From e63d196966f64f39f146104df1cb40b06026a103 Mon Sep 17 00:00:00 2001 From: Koen Kanters Date: Mon, 23 Dec 2019 20:48:37 +0100 Subject: [PATCH] Skip configure when device does not require it. https://github.com/Koenkk/zigbee2mqtt/issues/2588 --- lib/extension/deviceConfigure.js | 5 +++++ test/deviceConfigure.test.js | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/lib/extension/deviceConfigure.js b/lib/extension/deviceConfigure.js index 66b07072c..673de2564 100644 --- a/lib/extension/deviceConfigure.js +++ b/lib/extension/deviceConfigure.js @@ -48,6 +48,11 @@ class DeviceConfigure extends BaseExtension { } const mappedDevice = zigbeeHerdsmanConverters.findByZigbeeModel(entity.device.modelID); + if (!mappedDevice.configure) { + logger.warn(`Skipping configure of '${entity.name}', device does not require this.`); + return; + } + this.configure(entity.device, mappedDevice, entity.settings, true); } diff --git a/test/deviceConfigure.test.js b/test/deviceConfigure.test.js index 6a481d3bd..e9cbe2189 100644 --- a/test/deviceConfigure.test.js +++ b/test/deviceConfigure.test.js @@ -105,6 +105,12 @@ describe('Device configure', () => { expect(logger.error).toHaveBeenCalledWith(`Device 'remote_random_non_existing' does not exist`); }); + it('Should skip reconfigure when device does not require this', async () => { + await MQTT.events.message('zigbee2mqtt/bridge/configure', 'bulb'); + await flushPromises(); + expect(logger.warn).toHaveBeenCalledWith(`Skipping configure of 'bulb', device does not require this.`) + }); + it('Should not configure when interviewing', async () => { const device = zigbeeHerdsman.devices.remote; delete device.meta.configured;