From e1175494d8d74b7e0dbf605ed64ca55c8cc542e8 Mon Sep 17 00:00:00 2001 From: Przemyslaw Kacprowicz Date: Thu, 23 Jul 2020 15:45:31 +0200 Subject: [PATCH 1/2] Added fingerprint for Qubino Flush Shutter DC --- .../qubino-flush-shutter.groovy | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy b/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy index 90916e144e1..f3055ad2d59 100644 --- a/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy +++ b/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy @@ -24,7 +24,9 @@ metadata { capability "Configuration" //zw:L type:1107 mfr:0159 prod:0003 model:0052 ver:1.01 zwv:4.05 lib:03 cc:5E,86,72,5A,73,20,27,25,26,32,60,85,8E,59,70 ccOut:20,26 epc:2 - fingerprint mfr: "0159", prod: "0003", model: "0052", deviceJoinName: "Qubino Window Treatment" + fingerprint mfr: "0159", prod: "0003", model: "0052", deviceJoinName: "Qubino Window Treatment" // Qubino Flush Shutter (110-230 VAC) + //zw:L type:1107 mfr:0159 prod:0003 model:0053 ver:1.01 zwv:4.05 lib:03 cc:5E,86,72,5A,73,20,27,25,26,32,85,8E,59,70 ccOut:20,26 + fingerprint mfr: "0159", prod: "0003", model: "0053", deviceJoinName: "Qubino Window Treatment" // Qubino Flush Shutter DC } tiles(scale: 2) { @@ -227,7 +229,12 @@ def open() { } def pause() { - sendHubCommand(encap(zwave.switchMultilevelV3.switchMultilevelStopLevelChange())) + def currentShadeState = device.currentState("windowShade").value + if (currentShadeState == "opening" || currentShadeState == "closing") { + encap(zwave.switchMultilevelV3.switchMultilevelStopLevelChange()) + } else { + encap(zwave.switchMultilevelV3.switchMultilevelGet()) + } } def setLevelChild(level, childDni) { @@ -235,7 +242,6 @@ def setLevelChild(level, childDni) { } def setLevel(level) { - state.blindsLastCommand = currentLevel > level ? "opening" : "closing" setShadeLevel(level) } @@ -355,7 +361,7 @@ def zwaveEvent(physicalgraph.zwave.commands.meterv3.MeterReport cmd, ep = null) eventMap.value = Math.round(cmd.scaledMeterValue) eventMap.unit = "W" events += createEvent(eventMap) - if (cmd.scaledMeterValue) { + if (Math.round(cmd.scaledMeterValue)) { events += createEvent([name: "windowShade", value: state.blindsLastCommand]) events += createEvent([name: "shadeLevel", value: state.shadeTarget, displayed: false]) } else { From ca1c341ac3e1b18349b20c680c1fc3c58b17b75e Mon Sep 17 00:00:00 2001 From: Przemyslaw Kacprowicz Date: Fri, 24 Jul 2020 11:39:16 +0200 Subject: [PATCH 2/2] Opening/closing report also for manual actions --- .../qubino-flush-shutter.groovy | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy b/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy index f3055ad2d59..22cd56f40f1 100644 --- a/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy +++ b/devicetypes/qubino/qubino-flush-shutter.src/qubino-flush-shutter.groovy @@ -247,9 +247,6 @@ def setLevel(level) { def setShadeLevel(level) { log.debug "Setting shade level: ${level}" - def currentLevel = Integer.parseInt(device.currentState("shadeLevel").value) - state.blindsLastCommand = currentLevel > level ? "opening" : "closing" - state.shadeTarget = level encap(zwave.switchMultilevelV3.switchMultilevelSet(value: Math.min(0x63, level))) } @@ -263,7 +260,10 @@ def setSlats(level) { } def refresh() { - encap(zwave.switchMultilevelV3.switchMultilevelGet()) + [ + encap(zwave.switchMultilevelV3.switchMultilevelGet()), + encap(zwave.meterV3.meterGet(scale: 0x00)), + ] } def ping() { @@ -319,6 +319,9 @@ def zwaveEvent(physicalgraph.zwave.commands.switchmultilevelv3.SwitchMultilevelR } def zwaveEvent(physicalgraph.zwave.commands.switchmultilevelv3.SwitchMultilevelSet cmd, ep = null) { + def currentLevel = Integer.parseInt(device.currentState("shadeLevel").value) + state.blindsLastCommand = currentLevel > cmd.value ? "opening" : "closing" + state.shadeTarget = cmd.value sendHubCommand(encap(zwave.meterV3.meterGet(scale: 0x02))) }