From 964ff3fc918093b738670aa4dcac20b539575ef5 Mon Sep 17 00:00:00 2001 From: koenkk Date: Sun, 23 Jul 2023 09:40:20 +0200 Subject: [PATCH] feat(add): QBKG18LM @cloudyngcloudy https://github.com/Koenkk/zigbee-herdsman-converters/issues/5993 --- src/converters/toZigbee.js | 8 ++++---- src/devices/xiaomi.ts | 18 ++++++++++++++++++ 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/src/converters/toZigbee.js b/src/converters/toZigbee.js index eec39fbd9cfc7..c6769762be3cf 100644 --- a/src/converters/toZigbee.js +++ b/src/converters/toZigbee.js @@ -2283,7 +2283,7 @@ const converters = { key: ['power_outage_memory'], convertSet: async (entity, key, value, meta) => { if (['SP-EUC01', 'ZNCZ04LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'SSM-U01', 'SSM-U02', 'DLKZMK11LM', 'DLKZMK12LM', - 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', + 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM', 'WS-USC02', 'WS-USC03', 'WS-USC04', 'ZNQBKG24LM', 'ZNQBKG25LM', ].includes(meta.mapped.model)) { @@ -2308,7 +2308,7 @@ const converters = { }, convertGet: async (entity, key, meta) => { if (['SP-EUC01', 'ZNCZ04LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'SSM-U01', 'SSM-U02', 'DLKZMK11LM', 'DLKZMK12LM', - 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', + 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM', 'WS-USC02', 'WS-USC03', 'WS-USC04', 'ZNQBKG24LM', 'ZNQBKG25LM', ].includes(meta.mapped.model)) { @@ -2427,7 +2427,7 @@ const converters = { xiaomi_led_disabled_night: { key: ['led_disabled_night'], convertSet: async (entity, key, value, meta) => { - if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', + if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'SP-EUC01', 'ZNQBKG24LM', 'ZNQBKG25LM'].includes(meta.mapped.model)) { await entity.write('aqaraOpple', {0x0203: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi); @@ -2443,7 +2443,7 @@ const converters = { return {state: {led_disabled_night: value}}; }, convertGet: async (entity, key, meta) => { - if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG19LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', + if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02', 'WS-EUK03', 'WS-EUK04', 'SP-EUC01', 'ZNQBKG24LM', 'ZNQBKG25LM'].includes(meta.mapped.model)) { await entity.read('aqaraOpple', [0x0203], manufacturerOptions.xiaomi); diff --git a/src/devices/xiaomi.ts b/src/devices/xiaomi.ts index 9d3ea2dac91bd..e9f451522ad38 100644 --- a/src/devices/xiaomi.ts +++ b/src/devices/xiaomi.ts @@ -1607,6 +1607,24 @@ const definitions: Definition[] = [ onEvent: preventReset, ota: ota.zigbeeOTA, }, + { + zigbeeModel: ['lumi.switch.b2lacn01'], + model: 'QBKG18LM', + vendor: 'Xiaomi', + description: 'Aqara T1 double rocker without neutral', + fromZigbee: [fz.on_off, fz.xiaomi_power, fz.xiaomi_multistate_action, fz.aqara_opple], + toZigbee: [tz.on_off, tz.xiaomi_switch_operation_mode_opple, tz.xiaomi_switch_power_outage_memory, + tz.xiaomi_led_disabled_night, tz.xiaomi_flip_indicator_light], + exposes: [ + e.switch(), e.action(['single', 'double']), e.power().withAccess(ea.STATE), e.energy(), + e.voltage(), e.device_temperature().withAccess(ea.STATE), + e.power_outage_memory(), e.led_disabled_night(), e.flip_indicator_light(), + e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled']) + .withDescription('Decoupled mode for left button'), + ], + onEvent: preventReset, + ota: ota.zigbeeOTA, + }, { zigbeeModel: ['lumi.switch.b1nacn01'], model: 'QBKG19LM',