From 61356ec8a7798f417e53ef14d57a284f24858dc0 Mon Sep 17 00:00:00 2001 From: Parijat Das Date: Tue, 17 Jan 2017 19:17:41 +0530 Subject: [PATCH 01/10] Added fingerprints for the following devices: 1. Leviton 5A Incandescent Switch (VRS05-1LZ) 2. Leviton 15A Split Duplex Receptacle (VRR15-1LZ) --- .../zwave-switch-generic.src/zwave-switch-generic.groovy | 2 ++ 1 file changed, 2 insertions(+) diff --git a/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy b/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy index ef1134a46dc..c630353b016 100644 --- a/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy +++ b/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy @@ -26,6 +26,8 @@ metadata { fingerprint mfr:"001D", prod:"1D04", model:"0334", deviceJoinName: "Leviton Outlet" fingerprint mfr:"001D", prod:"1C02", model:"0334", deviceJoinName: "Leviton Switch" fingerprint mfr:"001D", prod:"0301", model:"0334", deviceJoinName: "Leviton 15A Switch" + fingerprint mfr:"001D", prod:"0F01", model:"0334", deviceJoinName: "Leviton 5A Incandescent Switch" + fingerprint mfr:"001D", prod:"1603", model:"0334", deviceJoinName: "Leviton 15A Split Duplex Receptacle" fingerprint mfr:"011A", prod:"0101", model:"0102", deviceJoinName: "Enerwave On/Off Switch" fingerprint mfr:"011A", prod:"0101", model:"0603", deviceJoinName: "Enerwave Duplex Receptacle" } From 6e28d83e963062b54e8a04da23858896ae1a5115 Mon Sep 17 00:00:00 2001 From: "piyush.c" Date: Tue, 17 Jan 2017 12:05:13 +0530 Subject: [PATCH 02/10] [CHF-477] Health Check implementation for Z-Wave Dimmer Switch Generic --- .../zwave-dimmer-switch-generic.src/README.md | 13 ++++++++++++- .../zwave-dimmer-switch-generic.groovy | 2 ++ 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/README.md b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/README.md index d959894dd29..a76bbd76ff8 100644 --- a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/README.md +++ b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/README.md @@ -6,6 +6,12 @@ Works with: * [Leviton Plug-in Lamp Dimmer Module (DZPD3-1LW)](https://www.smartthings.com/works-with-smartthings/outlets/leviton-plug-in-lamp-dimmer-module) * [Leviton Universal Dimmer (DZMX1-LZ)](https://www.smartthings.com/works-with-smartthings/switches-and-dimmers/leviton-universal-dimmer) +* [Leviton 1000W Incandescent Dimmer](https://www.smartthings.com/works-with-smartthings/leviton/leviton-1000w-incandescent-dimmer) +* [Leviton 600W Incandescent Dimmer](https://www.smartthings.com/works-with-smartthings/leviton/leviton-600w-incandescent-dimmer) +* [Enerwave In-Wall Dimmer](https://www.smartthings.com/works-with-smartthings/enerwave/enerwave-in-wall-dimmer-zw500d) +* [Leviton 3-Speed Fan Controller](https://www.smartthings.com/works-with-smartthings/leviton/leviton-3-speed-fan-controller) +* [Leviton Magnetic Low Voltage Dimmer](https://www.smartthings.com/works-with-smartthings/leviton/leviton-magnetic-low-voltage-dimmer) +* [Remotec Technology Plug-In Dimmer](https://www.smartthings.com/works-with-smartthings/remotec-technology/remotec-technology-plug-in-dimmer) ## Table of contents @@ -40,4 +46,9 @@ If the device doesn't pair when trying from the SmartThings mobile app, it is po Pairing needs to be tried again by placing the device closer to the hub. Instructions related to pairing, resetting and removing the device from SmartThings can be found in the following link: * [Leviton Plug-in Lamp Dimmer Module (DZPD3-1LW) Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) -* [Leviton Universal Dimmer (DZMX1-LZ) Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) \ No newline at end of file +* [Leviton Universal Dimmer (DZMX1-LZ) Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) +* [Leviton 1000W Incandescent Dimmer Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) +* [Leviton 600W Incandescent Dimmer Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) +* [Leviton 3-Speed Fan Controller Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/206171053-How-to-connect-Leviton-Z-Wave-devices) +* [Enerwave In-Wall Dimmer Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/204854176-How-to-connect-Enerwave-switches-and-dimmers) +* [Remotec Technology Plug-In Dimmer Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/202295150-Remotec-Technology-Plug-In-Dimmer-ZDS-100-) \ No newline at end of file diff --git a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy index 841fac5676c..b95ff350bd5 100644 --- a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy +++ b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy @@ -28,6 +28,8 @@ metadata { fingerprint mfr:"001D", prod:"1001", model:"0334", deviceJoinName: "Leviton 3-Speed Fan Controller" fingerprint mfr:"001D", prod:"0602", model:"0334", deviceJoinName: "Leviton Magnetic Low Voltage Dimmer" fingerprint mfr:"001D", prod:"0401", model:"0334", deviceJoinName: "Leviton 600W Incandescent Dimmer" + fingerprint mfr:"0111", prod:"8200", model:"0200", deviceJoinName: "Remotec Technology Plug-In Dimmer" + fingerprint mfr:"1104", prod:"001D", model:"0501", deviceJoinName: "Leviton 1000W Incandescant Dimmer" } simulator { From bf454300618fc4c875accf8b799fa5af113b48bf Mon Sep 17 00:00:00 2001 From: "piyush.c" Date: Tue, 14 Feb 2017 15:01:17 +0530 Subject: [PATCH 03/10] [DVCSMP-2436] DTH Device Filtering change for Lifx Bulbs --- .../smartthings/lifx-color-bulb.src/lifx-color-bulb.groovy | 1 + .../smartthings/lifx-white-bulb.src/lifx-white-bulb.groovy | 1 + 2 files changed, 2 insertions(+) diff --git a/devicetypes/smartthings/lifx-color-bulb.src/lifx-color-bulb.groovy b/devicetypes/smartthings/lifx-color-bulb.src/lifx-color-bulb.groovy index 5ecfae03cee..5240c60f7d8 100644 --- a/devicetypes/smartthings/lifx-color-bulb.src/lifx-color-bulb.groovy +++ b/devicetypes/smartthings/lifx-color-bulb.src/lifx-color-bulb.groovy @@ -14,6 +14,7 @@ metadata { capability "Refresh" capability "Sensor" capability "Health Check" + capability "Light" } simulator { diff --git a/devicetypes/smartthings/lifx-white-bulb.src/lifx-white-bulb.groovy b/devicetypes/smartthings/lifx-white-bulb.src/lifx-white-bulb.groovy index 16e7c57f4e9..bc559c89db6 100644 --- a/devicetypes/smartthings/lifx-white-bulb.src/lifx-white-bulb.groovy +++ b/devicetypes/smartthings/lifx-white-bulb.src/lifx-white-bulb.groovy @@ -13,6 +13,7 @@ metadata { capability "Refresh" capability "Sensor" capability "Health Check" + capability "Light" } simulator { From 1263b72a725b2ebef4ed5902ea3cb0d0c9a1b10c Mon Sep 17 00:00:00 2001 From: "sushant.k1" Date: Tue, 14 Feb 2017 15:13:28 +0530 Subject: [PATCH 04/10] [DVCSMP-2433] Adding "Light" capability to the following Z-wave DTHs: 1. Z-Wave Metering Dimmer 2. Z-Wave Metering Switch 3. Z-Wave Dimmer Switch Generic 4. Z-Wave Switch 5. Z-Wave Switch Generic 6. MimoLite Garage Door Controller --- .../mimolite-garage-door-controller.groovy | 1 + .../zwave-dimmer-switch-generic.groovy | 1 + .../zwave-metering-dimmer.src/zwave-metering-dimmer.groovy | 1 + .../zwave-metering-switch.src/zwave-metering-switch.groovy | 1 + .../zwave-switch-generic.src/zwave-switch-generic.groovy | 1 + devicetypes/smartthings/zwave-switch.src/zwave-switch.groovy | 1 + 6 files changed, 6 insertions(+) diff --git a/devicetypes/smartthings/mimolite-garage-door-controller.src/mimolite-garage-door-controller.groovy b/devicetypes/smartthings/mimolite-garage-door-controller.src/mimolite-garage-door-controller.groovy index fb7407ed310..e21832c5085 100644 --- a/devicetypes/smartthings/mimolite-garage-door-controller.src/mimolite-garage-door-controller.groovy +++ b/devicetypes/smartthings/mimolite-garage-door-controller.src/mimolite-garage-door-controller.groovy @@ -36,6 +36,7 @@ metadata { capability "Switch" capability "Refresh" capability "Contact Sensor" + capability "Light" attribute "powered", "string" diff --git a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy index b95ff350bd5..498e438734a 100644 --- a/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy +++ b/devicetypes/smartthings/zwave-dimmer-switch-generic.src/zwave-dimmer-switch-generic.groovy @@ -20,6 +20,7 @@ metadata { capability "Polling" capability "Refresh" capability "Sensor" + capability "Light" fingerprint inClusters: "0x26", deviceJoinName: "Z-Wave Dimmer" fingerprint mfr:"001D", prod:"1902", deviceJoinName: "Z-Wave Dimmer" diff --git a/devicetypes/smartthings/zwave-metering-dimmer.src/zwave-metering-dimmer.groovy b/devicetypes/smartthings/zwave-metering-dimmer.src/zwave-metering-dimmer.groovy index 4631203385e..5e95f5a47b4 100644 --- a/devicetypes/smartthings/zwave-metering-dimmer.src/zwave-metering-dimmer.groovy +++ b/devicetypes/smartthings/zwave-metering-dimmer.src/zwave-metering-dimmer.groovy @@ -25,6 +25,7 @@ metadata { capability "Switch Level" capability "Sensor" capability "Actuator" + capability "Light" command "reset" diff --git a/devicetypes/smartthings/zwave-metering-switch.src/zwave-metering-switch.groovy b/devicetypes/smartthings/zwave-metering-switch.src/zwave-metering-switch.groovy index 21ceb1bffce..7939170b233 100644 --- a/devicetypes/smartthings/zwave-metering-switch.src/zwave-metering-switch.groovy +++ b/devicetypes/smartthings/zwave-metering-switch.src/zwave-metering-switch.groovy @@ -21,6 +21,7 @@ metadata { capability "Refresh" capability "Configuration" capability "Sensor" + capability "Light" command "reset" diff --git a/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy b/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy index ef1134a46dc..0eaab58b812 100644 --- a/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy +++ b/devicetypes/smartthings/zwave-switch-generic.src/zwave-switch-generic.groovy @@ -19,6 +19,7 @@ metadata { capability "Polling" capability "Refresh" capability "Sensor" + capability "Light" fingerprint inClusters: "0x25", deviceJoinName: "Z-Wave Switch" fingerprint mfr:"001D", prod:"1A02", model:"0334", deviceJoinName: "Leviton Appliance Module" diff --git a/devicetypes/smartthings/zwave-switch.src/zwave-switch.groovy b/devicetypes/smartthings/zwave-switch.src/zwave-switch.groovy index ac0f46d34d8..e196a719f20 100644 --- a/devicetypes/smartthings/zwave-switch.src/zwave-switch.groovy +++ b/devicetypes/smartthings/zwave-switch.src/zwave-switch.groovy @@ -20,6 +20,7 @@ metadata { capability "Refresh" capability "Sensor" capability "Health Check" + capability "Light" fingerprint mfr:"0063", prod:"4952", deviceJoinName: "Z-Wave Wall Switch" fingerprint mfr:"0063", prod:"5257", deviceJoinName: "Z-Wave Wall Switch" From 7c5734b752f83c16ddffd0eeddafb16404f25775 Mon Sep 17 00:00:00 2001 From: "piyush.c" Date: Tue, 14 Feb 2017 15:26:50 +0530 Subject: [PATCH 05/10] [DVCSMP-2431] DTH Device Filtering change for ZigBee Devices --- devicetypes/smartthings/zigbee-dimmer-power.src/README.md | 1 + .../zigbee-dimmer-power.src/zigbee-dimmer-power.groovy | 1 + .../zigbee-switch-power.src/zigbee-switch-power.groovy | 1 + 3 files changed, 3 insertions(+) diff --git a/devicetypes/smartthings/zigbee-dimmer-power.src/README.md b/devicetypes/smartthings/zigbee-dimmer-power.src/README.md index 130f20c3f01..196101f3f45 100644 --- a/devicetypes/smartthings/zigbee-dimmer-power.src/README.md +++ b/devicetypes/smartthings/zigbee-dimmer-power.src/README.md @@ -23,6 +23,7 @@ Works with: * **Switch** - can detect state (possible values: on/off) * **Switch Level** - represents current light level, usually 0-100 in percent * **Health Check** - indicates ability to get device health notifications +* **Light** - indicates that the device belongs to Light category. ## Device Health diff --git a/devicetypes/smartthings/zigbee-dimmer-power.src/zigbee-dimmer-power.groovy b/devicetypes/smartthings/zigbee-dimmer-power.src/zigbee-dimmer-power.groovy index 4bef6a9a688..87f4a92fc7f 100644 --- a/devicetypes/smartthings/zigbee-dimmer-power.src/zigbee-dimmer-power.groovy +++ b/devicetypes/smartthings/zigbee-dimmer-power.src/zigbee-dimmer-power.groovy @@ -22,6 +22,7 @@ metadata { capability "Switch" capability "Switch Level" capability "Health Check" + capability "Light" fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0B04" fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0008, 0702" diff --git a/devicetypes/smartthings/zigbee-switch-power.src/zigbee-switch-power.groovy b/devicetypes/smartthings/zigbee-switch-power.src/zigbee-switch-power.groovy index c118fe6192c..85812526ba7 100644 --- a/devicetypes/smartthings/zigbee-switch-power.src/zigbee-switch-power.groovy +++ b/devicetypes/smartthings/zigbee-switch-power.src/zigbee-switch-power.groovy @@ -21,6 +21,7 @@ metadata { capability "Sensor" capability "Switch" capability "Health Check" + capability "Light" fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0B04" fingerprint profileId: "0104", inClusters: "0000, 0003, 0004, 0005, 0006, 0702" From 9b6e7d3be89ab094c9aea6895d2cd083c9d082b2 Mon Sep 17 00:00:00 2001 From: Lars Finander Date: Tue, 14 Feb 2017 11:23:27 -0700 Subject: [PATCH 06/10] ICP-280 Instruction for Phlips Hue -Added instructions to tell user to setup in Hue app first -Fix a null printout and some whitespace --- .../hue-connect.src/hue-connect.groovy | 67 ++++++++++--------- 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/smartapps/smartthings/hue-connect.src/hue-connect.groovy b/smartapps/smartthings/hue-connect.src/hue-connect.groovy index fe5a4f7e0a3..047a8dd11cd 100644 --- a/smartapps/smartthings/hue-connect.src/hue-connect.groovy +++ b/smartapps/smartthings/hue-connect.src/hue-connect.groovy @@ -17,14 +17,14 @@ */ definition( - name: "Hue (Connect)", - namespace: "smartthings", - author: "SmartThings", - description: "Allows you to connect your Philips Hue lights with SmartThings and control them from your Things area or Dashboard in the SmartThings Mobile app. Adjust colors by going to the Thing detail screen for your Hue lights (tap the gear on Hue tiles).\n\nPlease update your Hue Bridge first, outside of the SmartThings app, using the Philips Hue app.", - category: "SmartThings Labs", - iconUrl: "https://s3.amazonaws.com/smartapp-icons/Partner/hue.png", - iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Partner/hue@2x.png", - singleInstance: true + name: "Hue (Connect)", + namespace: "smartthings", + author: "SmartThings", + description: "Allows you to connect your Philips Hue lights with SmartThings and control them from your Things area or Dashboard in the SmartThings Mobile app. Adjust colors by going to the Thing detail screen for your Hue lights (tap the gear on Hue tiles).\n\nPlease update your Hue Bridge first, outside of the SmartThings app, using the Philips Hue app.", + category: "SmartThings Labs", + iconUrl: "https://s3.amazonaws.com/smartapp-icons/Partner/hue.png", + iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Partner/hue@2x.png", + singleInstance: true ) preferences { @@ -85,7 +85,8 @@ def bridgeDiscovery(params=[:]) } return dynamicPage(name:"bridgeDiscovery", title:"Discovery Started!", nextPage:"bridgeBtnPush", refreshInterval:refreshInterval, uninstall: true) { - section("Please wait while we discover your Hue Bridge. Discovery can take five minutes or more, so sit back and relax! Select your device below once discovered.") { + section("Please wait while we discover your Hue Bridge. Kindly note that you must first configure your Hue Bridge and Lights using the Philips Hue application. " + + "Discovery can take five minutes or more, so sit back and relax! Select your device below once discovered.") { input "selectedHue", "enum", required:false, title:"Select Hue Bridge (${numFound} found)", multiple:false, options:options, submitOnChange: true } } @@ -178,7 +179,7 @@ def bulbDiscovery() { } if (bulbRefreshCount > 200 && numFound == 0) { - // Time out to avoid endless discovery + // Time out after 10 minutes state.inBulbDiscovery = false bulbRefreshCount = 0 return dynamicPage(name:"bulbDiscovery", title:"Light Discovery Failed!", nextPage:"", refreshInterval:0, install:true, uninstall: true) { @@ -216,32 +217,32 @@ private sendDeveloperReq() { def token = app.id def host = getBridgeIP() sendHubCommand(new physicalgraph.device.HubAction([ - method: "POST", - path: "/api", - headers: [ - HOST: host - ], - body: [devicetype: "$token-0"]], "${selectedHue}", [callback: "usernameHandler"])) + method: "POST", + path: "/api", + headers: [ + HOST: host + ], + body: [devicetype: "$token-0"]], "${selectedHue}", [callback: "usernameHandler"])) } private discoverHueBulbs() { def host = getBridgeIP() sendHubCommand(new physicalgraph.device.HubAction([ - method: "GET", - path: "/api/${state.username}/lights", - headers: [ - HOST: host - ]], "${selectedHue}", [callback: "lightsHandler"])) + method: "GET", + path: "/api/${state.username}/lights", + headers: [ + HOST: host + ]], "${selectedHue}", [callback: "lightsHandler"])) } private verifyHueBridge(String deviceNetworkId, String host) { log.trace "Verify Hue Bridge $deviceNetworkId" sendHubCommand(new physicalgraph.device.HubAction([ - method: "GET", - path: "/description.xml", - headers: [ - HOST: host - ]], deviceNetworkId, [callback: "bridgeDescriptionHandler"])) + method: "GET", + path: "/description.xml", + headers: [ + HOST: host + ]], deviceNetworkId, [callback: "bridgeDescriptionHandler"])) } private verifyHueBridges() { @@ -399,7 +400,7 @@ def addBulbs() { log.debug "$dni in not longer paired to the Hue Bridge or ID changed" } } else { - //backwards compatable + //backwards compatable newHueBulb = bulbs.find { (app.id + "/" + it.id) == dni } d = addChildBulb(dni, "Extended Color Light", newHueBulb?.value?.name, newHueBulb?.value?.hub) d?.completedSetup = true @@ -1151,7 +1152,7 @@ def setColorTemperature(childDevice, huesettings) { def ct = hueSettings == 6500 ? 153 : Math.round(1000000/huesettings) createSwitchEvent(childDevice, "on") put("lights/$id/state", [ct: ct, on: true]) - return "Setting color temperature to $percent" + return "Setting color temperature to $ct" } def setColor(childDevice, huesettings) { @@ -1226,7 +1227,7 @@ private poll() { def uri = "/api/${state.username}/lights/" log.debug "GET: $host$uri" sendHubCommand(new physicalgraph.device.HubAction("GET ${uri} HTTP/1.1\r\n" + - "HOST: ${host}\r\n\r\n", physicalgraph.device.Protocol.LAN, selectedHue)) + "HOST: ${host}\r\n\r\n", physicalgraph.device.Protocol.LAN, selectedHue)) } private isOnline(id) { @@ -1243,10 +1244,10 @@ private put(path, body) { log.debug "BODY: ${bodyJSON}" sendHubCommand(new physicalgraph.device.HubAction("PUT $uri HTTP/1.1\r\n" + - "HOST: ${host}\r\n" + - "Content-Length: ${length}\r\n" + - "\r\n" + - "${bodyJSON}", physicalgraph.device.Protocol.LAN, "${selectedHue}")) + "HOST: ${host}\r\n" + + "Content-Length: ${length}\r\n" + + "\r\n" + + "${bodyJSON}", physicalgraph.device.Protocol.LAN, "${selectedHue}")) } /* From c6d6ba85f55ffd71a44fa1d84bbc711217887677 Mon Sep 17 00:00:00 2001 From: Zach Varberg Date: Wed, 15 Feb 2017 13:22:43 -0600 Subject: [PATCH 07/10] Properly create event for outlet power We were not properly creating the event before returning it, causing us to not actually generate the power event. This resolves: https://smartthings.atlassian.net/browse/PROB-1518 --- .../smartpower-dimming-outlet.groovy | 3 ++- .../smartpower-outlet.src/smartpower-outlet.groovy | 7 +++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy b/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy index 80ca040d556..7b1117fd96b 100644 --- a/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy +++ b/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy @@ -79,7 +79,8 @@ def parse(String description) { */ event.value = event.value / 10 } - return event + + return event ? createEvent(event) : event } def setLevel(value) { diff --git a/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy b/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy index 7561c63ca0f..0261b47facf 100644 --- a/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy +++ b/devicetypes/smartthings/smartpower-outlet.src/smartpower-outlet.groovy @@ -83,9 +83,8 @@ def parse(String description) { if (event) { if (event.name == "power") { - event.value = event.value / 10 - event.descriptionText = '{{ device.displayName }} power is {{ value }} Watts' - event.translatable = true + def value = (event.value as Integer) / 10 + event = createEvent(name: event.name, value: value, descriptionText: '{{ device.displayName }} power is {{ value }} Watts', translatable: true) } else if (event.name == "switch") { def descriptionText = event.value == "on" ? '{{ device.displayName }} is On' : '{{ device.displayName }} is Off' event = createEvent(name: event.name, value: event.value, descriptionText: descriptionText, translatable: true) @@ -106,7 +105,7 @@ def parse(String description) { log.debug "${cluster}" } } - return event + return event ? createEvent(event) : event } def off() { From bcc680ee5d93e5a161a422af358d8d2e000abcee Mon Sep 17 00:00:00 2001 From: juano2310 Date: Fri, 10 Feb 2017 19:36:39 -0500 Subject: [PATCH 08/10] DVCSMP-2425 - LIFX Exceptions Adding comment --- .../lifx-connect.src/lifx-connect.groovy | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/smartapps/smartthings/lifx-connect.src/lifx-connect.groovy b/smartapps/smartthings/lifx-connect.src/lifx-connect.groovy index 7a4afe73738..734889f6035 100644 --- a/smartapps/smartthings/lifx-connect.src/lifx-connect.groovy +++ b/smartapps/smartthings/lifx-connect.src/lifx-connect.groovy @@ -346,7 +346,7 @@ def devicesList(selector = '') { if (resp.status == 200) { return resp.data } else { - log.error("Non-200 from device list call. ${resp.status} ${resp.data}") + log.debug("No response from device list call. ${resp.status} ${resp.data}") return [] } } @@ -418,9 +418,15 @@ def updateDevices() { } getChildDevices().findAll { !selectors.contains("${it.deviceNetworkId}") }.each { log.info("Deleting ${it.deviceNetworkId}") - state.devices[it.deviceNetworkId] = null - deleteChildDevice(it.deviceNetworkId) + if (state.devices[it.deviceNetworkId]) + state.devices[it.deviceNetworkId] = null + // The reason the implementation is trying to delete this bulb is because it is not longer connected to the LIFX location. + // Adding "try" will prevent this exception from happening. + // Ideally device health would show to the user that the device is not longer accessible so that the user can either force delete it or remove it from the SmartApp. + try { + deleteChildDevice(it.deviceNetworkId) + } catch (Exception e) { + log.debug("Can't remove this device because it's being used by an SmartApp") + } } } - - From 649ed033d0abf9f9e76fd6f8d7fdab7898a7970f Mon Sep 17 00:00:00 2001 From: Scott Vlaminck Date: Tue, 21 Feb 2017 11:07:51 -0600 Subject: [PATCH 09/10] add Outlet capability --- .../smartpower-dimming-outlet.groovy | 1 + .../smartpower-outlet-v1.src/smartpower-outlet-v1.groovy | 1 + 2 files changed, 2 insertions(+) diff --git a/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy b/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy index 80ca040d556..ac72846ad5b 100644 --- a/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy +++ b/devicetypes/smartthings/smartpower-dimming-outlet.src/smartpower-dimming-outlet.groovy @@ -24,6 +24,7 @@ metadata { capability "Refresh" capability "Actuator" capability "Sensor" + capability "Outlet" fingerprint profileId: "0104", inClusters: "0000,0003,0004,0005,0006,0008,0B04,0B05", outClusters: "0019", manufacturer: "CentraLite", model: "4257050-ZHAC" diff --git a/devicetypes/smartthings/smartpower-outlet-v1.src/smartpower-outlet-v1.groovy b/devicetypes/smartthings/smartpower-outlet-v1.src/smartpower-outlet-v1.groovy index 4be7bce9815..9df0a7fd755 100644 --- a/devicetypes/smartthings/smartpower-outlet-v1.src/smartpower-outlet-v1.groovy +++ b/devicetypes/smartthings/smartpower-outlet-v1.src/smartpower-outlet-v1.groovy @@ -4,6 +4,7 @@ metadata { capability "Actuator" capability "Switch" capability "Sensor" + capability "Outlet" fingerprint profileId: "0104", inClusters: "0006, 0004, 0003, 0000, 0005", outClusters: "0019", manufacturer: "Compacta International, Ltd", model: "ZBMPlug15", deviceJoinName: "SmartPower Outlet V1" } From 34f77a2989d6b01d73b5565aabee5c8bd3c0f4bd Mon Sep 17 00:00:00 2001 From: Scott Vlaminck Date: Tue, 21 Feb 2017 13:42:19 -0600 Subject: [PATCH 10/10] update Hue Bridge to use new Bridge marker capability --- devicetypes/smartthings/hue-bridge.src/hue-bridge.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/devicetypes/smartthings/hue-bridge.src/hue-bridge.groovy b/devicetypes/smartthings/hue-bridge.src/hue-bridge.groovy index e7fbce17daf..55b3841d9de 100644 --- a/devicetypes/smartthings/hue-bridge.src/hue-bridge.groovy +++ b/devicetypes/smartthings/hue-bridge.src/hue-bridge.groovy @@ -7,6 +7,7 @@ metadata { // Automatically generated. Make future change here. definition (name: "Hue Bridge", namespace: "smartthings", author: "SmartThings") { + capability "Bridge" capability "Health Check" attribute "networkAddress", "string"