diff --git a/lib/extension/entityPublish.js b/lib/extension/entityPublish.js index 3d32035b1..1d41e9616 100644 --- a/lib/extension/entityPublish.js +++ b/lib/extension/entityPublish.js @@ -168,7 +168,7 @@ class EntityPublish extends BaseExtension { }; try { - if (topic.type === 'set' && converter && converter.convertSet) { + if (topic.type === 'set' && converter.convertSet) { logger.debug(`Publishing '${topic.type}' '${key}' to '${entity.name}'`); const result = await converter.convertSet(actualTarget, key, value, meta); if (result && result.state) { @@ -195,7 +195,7 @@ class EntityPublish extends BaseExtension { ) { setTimeout(() => converter.convertGet(actualTarget, key, meta), result.readAfterWriteTime); } - } else if (topic.type === 'get' && converter && converter.convertGet) { + } else if (topic.type === 'get' && converter.convertGet) { logger.debug(`Publishing get '${topic.type}' '${key}' to '${entity.name}'`); await converter.convertGet(actualTarget, key, meta); } else { diff --git a/lib/extension/homeassistant.js b/lib/extension/homeassistant.js index 1f790e435..17c77f49c 100644 --- a/lib/extension/homeassistant.js +++ b/lib/extension/homeassistant.js @@ -1188,6 +1188,7 @@ const mapping = { 'BW-IS3': [cfg.binary_sensor_occupancy], 'SLR1b': [cfg.thermostat()], 'WPT1': [], + '4058075047853': [cfg.light_brightness_colortemp_colorxy], }; Object.keys(mapping).forEach((key) => { diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 65d17ebcf..57cc41ee0 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -13445,9 +13445,9 @@ } }, "zigbee-herdsman-converters": { - "version": "12.0.10", - "resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.10.tgz", - "integrity": "sha512-I5qPtZ7VGULq4/3Vm2nY1lYQZW/ZREkwE+piWdN4zPLi21tLNpvjw23orlW1r2pqV4nr1OVDOyAvF4wkwGzKqg==", + "version": "12.0.11", + "resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.11.tgz", + "integrity": "sha512-kHByPFGHRfer3YZxdcMmOXpqAszP0VkaX1TEINwRLVsyaYL1IChpKBkUINfLNTOhIpsrR5kT8s6rc0oJBFF0Tw==", "dependencies": { "@babel/code-frame": { "version": "7.5.5", diff --git a/package.json b/package.json index e8363d345..e877bda77 100644 --- a/package.json +++ b/package.json @@ -46,7 +46,7 @@ "semver": "*", "winston": "*", "zigbee-herdsman": "0.12.42", - "zigbee-herdsman-converters": "12.0.10" + "zigbee-herdsman-converters": "12.0.11" }, "devDependencies": { "eslint": "*", diff --git a/test/deviceReceive.test.js b/test/deviceReceive.test.js index ce2bb8dfb..624b92737 100755 --- a/test/deviceReceive.test.js +++ b/test/deviceReceive.test.js @@ -242,7 +242,7 @@ describe('Device receive', () => { await flushPromises(); expect(MQTT.publish).toHaveBeenCalledTimes(1); expect(MQTT.publish.mock.calls[0][0]).toStrictEqual('zigbee2mqtt/occupancy_sensor'); - expect(JSON.parse(MQTT.publish.mock.calls[0][1])).toStrictEqual({'battery': 100, 'illuminance': 381, 'voltage': 3045, linkquality: 10}); + expect(JSON.parse(MQTT.publish.mock.calls[0][1])).toStrictEqual({'battery': 100, 'illuminance': 381, "illuminance_lux": 0, 'voltage': 3045, linkquality: 10}); expect(MQTT.publish.mock.calls[0][2]).toStrictEqual({"qos": 0, "retain": false}); }); diff --git a/test/entityPublish.test.js b/test/entityPublish.test.js index 4dd87f9d0..c101d2d30 100644 --- a/test/entityPublish.test.js +++ b/test/entityPublish.test.js @@ -948,4 +948,15 @@ describe('Entity publish', () => { expect(MQTT.publish.mock.calls[0]).toEqual([ 'zigbee2mqtt/GL-S-007ZS', '{"state":"ON","brightness":20}', { qos: 0, retain: false }, expect.any(Function)]); jest.useRealTimers(); }); + + it('Should log as error when setting property with no defined converter', async () => { + const device = zigbeeHerdsman.devices.bulb_color; + const endpoint = device.getEndpoint(1); + const payload = {'brightness_move': 20}; + logger.error.mockClear(); + await MQTT.events.message('zigbee2mqtt/bulb_color/get', JSON.stringify(payload)); + await flushPromises(); + expect(endpoint.command).toHaveBeenCalledTimes(0); + expect(logger.error).toHaveBeenCalledWith("No converter available for 'get' 'brightness_move' (20)"); + }); });