From b25a8bdf84fd91e0a751b01268b27ad695db9a5d Mon Sep 17 00:00:00 2001 From: Koenkk Date: Sat, 16 Jun 2018 00:39:49 +0200 Subject: [PATCH] Update QBKG12LM converters. https://github.com/Koenkk/zigbee2mqtt/issues/117 --- converters/fromZigbee.js | 23 ++++++++++++++++++----- devices.js | 4 ++-- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/converters/fromZigbee.js b/converters/fromZigbee.js index 0c26e9978628c..cda9f705260b7 100644 --- a/converters/fromZigbee.js +++ b/converters/fromZigbee.js @@ -386,14 +386,22 @@ const converters = { }, }, QBKG12LM_power: { - cid: 'genAnalogInput', + cid: 'genBasic', type: 'attReport', convert: (model, msg, publish, options) => { + // TODO + console.log('EP', msg.endpoints[0].epId); + const mapping = {4: 'left', 5: 'right'}; - const key = `power_${mapping[msg.endpoints[0].epId]}`; - const payload = {}; - payload[key] = precisionRound(msg.data.data['presentValue'], 2); - return payload; + if (msg.data.data['65281']) { + const data = msg.data.data['65281']; + const key = mapping[msg.endpoints[0].epId]; + const payload = {}; + payload[`power_${key}`] = precisionRound(data['152'], 2); + payload[`consumption_${key}`] = precisionRound(data['149'], 2); + payload[`temperature_${key}`] = precisionRound(data['3'], 2); + return payload; + } }, }, QBKG04LM_QBKG11LM_state: { @@ -525,6 +533,11 @@ const converters = { type: 'devChange', convert: (model, msg, publish, options) => null, }, + ignore_analog_change: { + cid: 'genAnalogInput', + type: 'attReport', + convert: (model, msg, publish, options) => null, + }, ignore_multistate_report: { cid: 'genMultistateInput', type: 'attReport', diff --git a/devices.js b/devices.js index b60bf5a011b25..3af3c2e35e8bc 100644 --- a/devices.js +++ b/devices.js @@ -125,8 +125,8 @@ const devices = [ description: 'Aqara double key wired wall switch', supports: 'left and right on/off, power measurement', fromZigbee: [ - fz.QBKG03LM_QBKG12LM_state, fz.ignore_analog_change, fz.QBKG12LM_power, - fz.ignore_multistate_report, fz.ignore_multistate_change, + fz.QBKG03LM_QBKG12LM_state, fz.QBKG12LM_power, fz.ignore_analog_change, fz.ignore_basic_change, + fz.ignore_multistate_report, fz.ignore_multistate_change, fz.ignore_onoff_change, fz.ignore_analog_change, ], toZigbee: [tz.onoff], ep: {'left': 1, 'right': 2},