I am attempting to configure an Aqara/Xiaomi “WXKG11LM Wireless Mini Switch” to toggle a light on and off based on a single click. The device is correctly recognized from the signature string “lumi.remote.b1acn01” and supports the “multi level input property” with four possible values:
- 1 for a single press
- 2 for a double press
- 0 for a long press
- 255 for release (after a long press)
I have been able to define this device in the zb-xiaomi.js extension file and can build rules based any one of the four values.
The value returned from the device does not change until a different button action is executed, e.g. a single press returns a value of ‘1’ but another single press some time later cannot be detected as the value returned has not changed.
However, I would really like to be able to used a single click to toggle on and off another device rather than having to use a single click to turn on the device and a double-click to turn off the device. If I use value=1 and the present state of the device I am activating (i.e. on/off), the I get the classic flip-flop result reported in [issue 694](Flip-Flop Implementation? https://github.com/WebThingsIO/gateway/issues/694) - and based on the discussion in this posting, I can see that the answer is to use “events” and I can even see that there is code to support “single press”, “double press”, and “long press” - but cannot see how to define these for my device.
I will keep playing with the configuration, but any assistance on how to define an event would be greatly appreciated.
For information, here is the current configuration of the WXKG11LM:
/*
BACKGROUND READING
Property vs. Action vs. Event
Toggle option for Rules
Flip-Flop Implementation?
*/
'lumi.remote.b1acn01': {
// LUMI WXKG11LM Wireless Mini Switch
// https://www.zigbee2mqtt.io/devices/WXKG11LM.html
// https://github.com/zigbeer/documents/tree/master/zcl-id/clusters/general.md#genMultistateInput
name: 'button',
'@type': ['MultiLevelSwitch'],
description: 'Aqara Wireless Mini Switch',
powerSource: zb_constants_1.POWERSOURCE.BATTERY,
activeEndpoints: {
1: {
profileId: zb_constants_1.PROFILE_ID.ZHA_HEX,
inputClusters: [
zb_constants_1.CLUSTER_ID.GENBASIC_HEX,
zb_constants_1.CLUSTER_ID.GENMULTISTATEINPUT_HEX, // 0x0012 (18)
],
outputClusters: [],
},
},
properties: {
press: {
description: 'Aqara Wireless Mini Switch - vaue returned',
descr: {
'@type': 'MultilevelInputProperty',
label: 'Value returned',
type: 'integer',
enum: [0,1,2,255],
readOnly: true,
},
profileId: zb_constants_1.PROFILE_ID.ZHA,
endpoint: 1,
clusterId: zb_constants_1.CLUSTER_ID.GENMULTISTATEINPUT,
attr: 'presentValue', // 0x055 (81)
value: '',
parseValueFromAttr: 'parseNumericAttr',
},
},
},