Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
Koenkk committed Sep 1, 2023
1 parent 8162314 commit f3bffc2
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 5 deletions.
2 changes: 1 addition & 1 deletion src/converters/fromZigbee.js
Original file line number Diff line number Diff line change
Expand Up @@ -4024,7 +4024,7 @@ const converters = {
if (['QBKG39LM', 'QBKG41LM', 'WS-EUK02', 'WS-EUK04', 'QBKG20LM', 'QBKG28LM', 'QBKG31LM'].includes(model.model)) {
buttonLookup = {41: 'left', 42: 'right', 51: 'both'};
}
if (['QBKG25LM', 'QBKG26LM', 'QBKG29LM', 'QBKG34LM', 'ZNQBKG31LM', 'ZNQBKG26LM'].includes(model.model)) {
if (['QBKG25LM', 'QBKG26LM', 'QBKG29LM', 'QBKG32LM', 'QBKG34LM', 'ZNQBKG31LM', 'ZNQBKG26LM'].includes(model.model)) {
buttonLookup = {
41: 'left', 42: 'center', 43: 'right',
51: 'left_center', 52: 'left_right', 53: 'center_right',
Expand Down
8 changes: 4 additions & 4 deletions src/converters/toZigbee.js
Original file line number Diff line number Diff line change
Expand Up @@ -2284,7 +2284,7 @@ const converters = {
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', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM',
'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM',
'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM',
'WS-USC02', 'WS-USC03', 'WS-USC04', 'ZNQBKG24LM', 'ZNQBKG25LM',
].includes(meta.mapped.model)) {
await entity.write('aqaraOpple', {0x0201: {value: value ? 1 : 0, type: 0x10}}, manufacturerOptions.xiaomi);
Expand All @@ -2309,7 +2309,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', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM', 'QBKG28LM', 'QBKG29LM',
'QBKG31LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM',
'QBKG31LM', 'QBKG32LM', 'QBKG34LM', 'QBKG38LM', 'QBKG39LM', 'QBKG40LM', 'QBKG41LM', 'ZNDDMK11LM', 'ZNLDP13LM', 'ZNQBKG31LM',
'WS-USC02', 'WS-USC03', 'WS-USC04', 'ZNQBKG24LM', 'ZNQBKG25LM',
].includes(meta.mapped.model)) {
await entity.read('aqaraOpple', [0x0201]);
Expand Down Expand Up @@ -2428,7 +2428,7 @@ const converters = {
key: ['led_disabled_night'],
convertSet: async (entity, key, value, meta) => {
if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ14LM', 'QBCZ15LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG32LM', '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);
} else if (['ZNCZ11LM'].includes(meta.mapped.model)) {
Expand All @@ -2444,7 +2444,7 @@ const converters = {
},
convertGet: async (entity, key, meta) => {
if (['ZNCZ04LM', 'ZNCZ12LM', 'ZNCZ15LM', 'QBCZ15LM', 'QBCZ14LM', 'QBKG19LM', 'QBKG18LM', 'QBKG20LM', 'QBKG25LM', 'QBKG26LM',
'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG34LM', 'DLKZMK11LM', 'SSM-U01', 'WS-EUK01', 'WS-EUK02',
'QBKG28LM', 'QBKG29LM', 'QBKG31LM', 'QBKG32LM', '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);
} else {
Expand Down
28 changes: 28 additions & 0 deletions src/devices/xiaomi.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1167,6 +1167,34 @@ const definitions: Definition[] = [
onEvent: preventReset,
ota: ota.zigbeeOTA,
},
{
zigbeeModel: ['lumi.switch.n3acn1'],
model: 'QBKG32LM',
vendor: 'Xiaomi',
description: 'Aqara smart wall switch H1 Pro (with neutral, tripple rocker)',
meta: {multiEndpoint: true},
endpoint: (device) => {
return {'left': 1, 'center': 2, 'right': 3};
},
fromZigbee: [fz.on_off, fz.xiaomi_power, fz.aqara_opple, fz.xiaomi_multistate_action],
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().withEndpoint('left'), e.switch().withEndpoint('right'), e.switch().withEndpoint('center'),
e.power(), e.energy(), e.voltage(), e.device_temperature(), e.power_outage_memory(), e.led_disabled_night(), e.flip_indicator_light(),
e.action([
'single_left', 'double_left', 'single_center', 'double_center',
'single_right', 'double_right', 'single_left_center', 'double_left_center',
'single_left_right', 'double_left_right', 'single_center_right', 'double_center_right',
'single_all', 'double_all']),
e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
.withDescription('Decoupled mode for left button').withEndpoint('left'),
e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
.withDescription('Decoupled mode for right button').withEndpoint('right'),
e.enum('operation_mode', ea.ALL, ['control_relay', 'decoupled'])
.withDescription('Decoupled mode for right button').withEndpoint('center')],
onEvent: preventReset,
ota: ota.zigbeeOTA,
},
{
zigbeeModel: ['lumi.switch.l1aeu1'],
model: 'WS-EUK01',
Expand Down

0 comments on commit f3bffc2

Please sign in to comment.