Skip to content

Commit fef3be4

Browse files
authored
[BETA] v1.4.2b - for firmware 25.20 and newer ONLY
changelist * Model WXKG11LM (original revision) - all button click actions should now generate correct `button pushed` events * Model WXKG11LM (original revision) - all button click actions should now be correctly displayed in main tile for the button viewed in the SmartThings Classic mobile app
1 parent 058371e commit fef3be4

1 file changed

Lines changed: 11 additions & 6 deletions

File tree

devicetypes/bspranger/xiaomi-aqara-button.src/xiaomi-aqara-button.groovy

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
/**
22
* Aqara Button - models WXKG11LM (original & new revision) / WXKG12LM
33
* Device Handler for SmartThings - Firmware version 25.20 and newer ONLY
4-
* Version 1.4.1b
4+
* Version 1.4.2b
55
*
66
* NOTE: Do NOT use this device handler on any SmartThings hub running Firmware 24.x and older
77
* Instead use the xiaomi-aqara-button-old-firmware device handler
@@ -77,7 +77,7 @@ metadata {
7777
attribute "lastReleased", "string"
7878
attribute "lastReleasedCoRE", "string"
7979
attribute "batteryRuntime", "string"
80-
attribute "buttonStatus", "enum", ["pushed", "held", "single-clicked", "double-clicked", "shaken", "released"]
80+
attribute "buttonStatus", "enum", ["pushed", "held", "single-clicked", "double-clicked", "triple-clicked", "quadruple-clicked", "shaken", "released"]
8181

8282
// Aqara Button - model WXKG11LM (original revision)
8383
fingerprint deviceId: "5F01", inClusters: "0000,FFFF,0006", outClusters: "0000,0004,FFFF", manufacturer: "LUMI", model: "lumi.sensor_switch.aq2", deviceJoinName: "Aqara Button WXKG11LM"
@@ -102,6 +102,8 @@ metadata {
102102
attributeState("held", label:'Held', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
103103
attributeState("single-clicked", label:'Single-clicked', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
104104
attributeState("double-clicked", label:'Double-clicked', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
105+
attributeState("triple-clicked", label:'Triple-clicked', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
106+
attributeState("quadruple-clicked", label:'Quadruple-clicked', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
105107
attributeState("shaken", label:'Shaken', backgroundColor:"#00a0dc", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonPushed.png")
106108
attributeState("released", label:'Released', action: "momentary.push", backgroundColor:"#ffffff", icon:"https://raw.githubusercontent.com/bspranger/Xiaomi/master/images/ButtonReleased.png")
107109
}
@@ -194,7 +196,7 @@ private Map parseReadAttrMessage(String description) {
194196

195197
if (cluster == "0006")
196198
// Process model WXKG11LM (original revision)
197-
resultMap = parse11LMMessage(attrId, Integer.parseInt(valueHex))
199+
resultMap = parse11LMMessage(attrId, Integer.parseInt(valueHex[0..1],16))
198200
else if (cluster == "0012")
199201
// Process model WXKG11LM (new revision) or WXKG12LM button messages
200202
resultMap = mapButtonEvent(Integer.parseInt(valueHex[2..3],16))
@@ -229,14 +231,17 @@ private parse11LMMessage(attrId, value) {
229231
def messageType = [1: "single-clicked", 2: "double-clicked", 3: "triple-clicked", 4: "quadruple-clicked"]
230232
def result = [:]
231233
value = (attrId == "0000") ? 1 : value
234+
displayDebugLog(": attrID = $attrId, value = $value")
232235
if (value <= 4) {
233236
def descText = " was ${messageType[value]} (Button $value pushed)"
234-
updateLastPressed("Pressed")
237+
sendEvent(name: "buttonStatus", value: messageType[value], isStateChange: true, displayed: false)
235238
runIn(1, clearButtonStatus)
239+
updateLastPressed("Pressed")
236240
displayInfoLog(descText)
237241
result = [
238-
name: 'pushed',
239-
value: value,
242+
name: 'button',
243+
value: "pushed",
244+
data: [buttonNumber: value],
240245
isStateChange: true,
241246
descriptionText: "$device.displayName$descText"
242247
]

0 commit comments

Comments
 (0)