diff --git a/lib/extension/homeassistant.js b/lib/extension/homeassistant.js index 5acb1ddf7..b8055366b 100644 --- a/lib/extension/homeassistant.js +++ b/lib/extension/homeassistant.js @@ -1688,6 +1688,7 @@ const mapping = { 'TI0001-switch': [cfg.switch], 'TI0001-socket': [cfg.switch], '9290022891': [cfg.light_brightness_colortemp_colorxy], + 'ZS232000178': [cfg.sensor_action], }; /** diff --git a/npm-shrinkwrap.json b/npm-shrinkwrap.json index 1a0057a2e..9749ebf13 100644 --- a/npm-shrinkwrap.json +++ b/npm-shrinkwrap.json @@ -14195,9 +14195,9 @@ } }, "zigbee-herdsman-converters": { - "version": "12.0.105", - "resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.105.tgz", - "integrity": "sha512-IOu0vHiZj66PzyfEEWx9v7zsOIj9TeN0UDtmUKYd3uduIu8Gv6QKe/iwG7mH+ZYBkjqnSoLCJZ1kv4BekVU5Vg==", + "version": "12.0.108", + "resolved": "https://registry.npmjs.org/zigbee-herdsman-converters/-/zigbee-herdsman-converters-12.0.108.tgz", + "integrity": "sha512-4rPRHO6kXyaHz77CThu7OxPZkgoMooc3a+q3a2bEE1sAEK6RgY+FkRCoAjNqlUwTR36o66yFTSc2gU9sFoAlPw==", "requires": { "axios": "*", "https-proxy-agent": "*", diff --git a/package.json b/package.json index 4dc651b75..67e16b146 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "winston": "*", "winston-syslog": "*", "zigbee-herdsman": "0.12.91", - "zigbee-herdsman-converters": "12.0.105" + "zigbee-herdsman-converters": "12.0.108" }, "devDependencies": { "eslint": "*", diff --git a/test/publish.test.js b/test/publish.test.js index 41e5c2028..62c6e1be1 100644 --- a/test/publish.test.js +++ b/test/publish.test.js @@ -524,6 +524,21 @@ describe('Publish', () => { expectNothingPublished(); }); + it('Should send state update on toggle specific endpoint', async () => { + const device = zigbeeHerdsman.devices.QBKG03LM; + const endpoint = device.getEndpoint(2); + await MQTT.events.message('zigbee2mqtt/wall_switch_double/left/set', 'ON'); + await flushPromises(); + await MQTT.events.message('zigbee2mqtt/wall_switch_double/left/set', 'TOGGLE'); + await flushPromises(); + expect(endpoint.command).toHaveBeenCalledTimes(2); + expect(endpoint.command).toHaveBeenCalledWith("genOnOff", "on", {}, {}); + expect(endpoint.command).toHaveBeenCalledWith("genOnOff", "toggle", {}, {}); + expect(MQTT.publish).toHaveBeenCalledTimes(2); + expect(MQTT.publish.mock.calls[0]).toEqual(["zigbee2mqtt/wall_switch_double", JSON.stringify({state_left: 'ON'}), {"qos": 0, "retain": false}, expect.any(Function)]); + expect(MQTT.publish.mock.calls[1]).toEqual(["zigbee2mqtt/wall_switch_double", JSON.stringify({state_left: 'OFF'}), {"qos": 0, "retain": false}, expect.any(Function)]); + }); + it('Should parse set with postfix topic and attribute', async () => { const device = zigbeeHerdsman.devices.QBKG03LM; const endpoint = device.getEndpoint(2);