From 1f8ce734e72f23bdf2e60e9bc56f7184f8a79084 Mon Sep 17 00:00:00 2001 From: marstorp Date: Mon, 29 Aug 2016 10:20:04 -0700 Subject: [PATCH] DVCSMP-1954 Routines turning Bose speaker on/off, toggles the power state to off/on --- .../bose-soundtouch.groovy | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/devicetypes/smartthings/bose-soundtouch.src/bose-soundtouch.groovy b/devicetypes/smartthings/bose-soundtouch.src/bose-soundtouch.groovy index 2d60bf8..38d624c 100644 --- a/devicetypes/smartthings/bose-soundtouch.src/bose-soundtouch.groovy +++ b/devicetypes/smartthings/bose-soundtouch.src/bose-soundtouch.groovy @@ -47,6 +47,9 @@ metadata { command "everywhereJoin" command "everywhereLeave" + + command "forceOff" + command "forceOn" } /** @@ -64,9 +67,9 @@ metadata { } standardTile("switch", "device.switch", width: 1, height: 1, canChangeIcon: true) { - state "on", label: '${name}', action: "switch.off", icon: "st.Electronics.electronics16", backgroundColor: "#79b821", nextState:"turningOff" + state "on", label: '${name}', action: "forceOff", icon: "st.Electronics.electronics16", backgroundColor: "#79b821", nextState:"turningOff" state "turningOff", label:'TURNING OFF', icon:"st.Electronics.electronics16", backgroundColor:"#ffffff" - state "off", label: '${name}', action: "switch.on", icon: "st.Electronics.electronics16", backgroundColor: "#ffffff", nextState:"turningOn" + state "off", label: '${name}', action: "forceOn", icon: "st.Electronics.electronics16", backgroundColor: "#ffffff", nextState:"turningOn" state "turningOn", label:'TURNING ON', icon:"st.Electronics.electronics16", backgroundColor:"#79b821" } valueTile("1", "device.station1", decoration: "flat", canChangeIcon: false) { @@ -140,8 +143,22 @@ metadata { * one place. * */ -def off() { onAction("off") } -def on() { onAction("on") } +def off() { + if (device.currentState("switch")?.value == "on") { + onAction("off") + } +} +def forceOff() { + onAction("off") +} +def on() { + if (device.currentState("switch")?.value == "off") { + onAction("on") + } +} +def forceOn() { + onAction("on") +} def volup() { onAction("volup") } def voldown() { onAction("voldown") } def preset1() { onAction("1") } @@ -240,11 +257,11 @@ def onAction(String user, data=null) { def actions = null switch (user) { case "on": - actions = boseSetPowerState(true) + boseSetPowerState(true) break case "off": boseSetNowPlaying(null, "STANDBY") - actions = boseSetPowerState(false) + boseSetPowerState(false) break case "volume": actions = boseSetVolume(data)