From b069669c11d8b3cf036375e5a508e18db296a121 Mon Sep 17 00:00:00 2001 From: marstorp Date: Tue, 27 Jun 2017 16:19:49 -0700 Subject: [PATCH 1/3] ICP-1148 Support Thermostat Dynamic data Adding default "off" thermostat mode as it is not provided by the thermostat. --- .../smartthings/ecobee-thermostat.src/ecobee-thermostat.groovy | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devicetypes/smartthings/ecobee-thermostat.src/ecobee-thermostat.groovy b/devicetypes/smartthings/ecobee-thermostat.src/ecobee-thermostat.groovy index c444bb6..cf4ef3f 100644 --- a/devicetypes/smartthings/ecobee-thermostat.src/ecobee-thermostat.groovy +++ b/devicetypes/smartthings/ecobee-thermostat.src/ecobee-thermostat.groovy @@ -158,7 +158,7 @@ def generateEvent(Map results) { if(results) { def linkText = getLinkText(device) - def supportedThermostatModes = [] + def supportedThermostatModes = ["off"] def thermostatMode = null results.each { name, value -> From c370e88a6b205ef8e338779111cb476c158cc715 Mon Sep 17 00:00:00 2001 From: jackchi Date: Fri, 30 Jun 2017 10:44:20 -0700 Subject: [PATCH 2/3] [DHF-16] ZigBee Button Device Health Update --- devicetypes/smartthings/zigbee-button.src/README.md | 3 +-- .../zigbee-button.src/zigbee-button.groovy | 13 ++++--------- 2 files changed, 5 insertions(+), 11 deletions(-) diff --git a/devicetypes/smartthings/zigbee-button.src/README.md b/devicetypes/smartthings/zigbee-button.src/README.md index 4bab466..1ca93ea 100644 --- a/devicetypes/smartthings/zigbee-button.src/README.md +++ b/devicetypes/smartthings/zigbee-button.src/README.md @@ -28,9 +28,8 @@ Works with: ## Device Health -SmartThings platform will ping the device after `checkInterval` seconds of inactivity in last attempt to reach the device before marking it `OFFLINE` +ZigBee Button is marked offline only in the case when Hub is offline. -* __722min__ checkInterval ## Troubleshooting diff --git a/devicetypes/smartthings/zigbee-button.src/zigbee-button.groovy b/devicetypes/smartthings/zigbee-button.src/zigbee-button.groovy index 2ab7b45..81c8d64 100644 --- a/devicetypes/smartthings/zigbee-button.src/zigbee-button.groovy +++ b/devicetypes/smartthings/zigbee-button.src/zigbee-button.groovy @@ -13,6 +13,8 @@ * for the specific language governing permissions and limitations under the License. * */ + +import groovy.json.JsonOutput import physicalgraph.zigbee.zcl.DataType metadata { @@ -183,13 +185,6 @@ private Map parseNonIasButtonMessage(Map descMap){ } } -/** - * PING is used by Device-Watch in attempt to reach the Device - * */ -def ping() { - refresh() -} - def refresh() { log.debug "Refreshing Battery" @@ -198,8 +193,6 @@ def refresh() { } def configure() { - // Device-Watch allows 2 check-in misses from device (plus 2 mins lag time) - sendEvent(name: "checkInterval", value: 2 * 6 * 60 * 60 + 2 * 60, displayed: false, data: [protocol: "zigbee", hubHardwareId: device.hub.hardwareID]) log.debug "Configuring Reporting, IAS CIE, and Bindings." def cmds = [] if (device.getDataValue("model") == "3450-L") { @@ -259,6 +252,8 @@ def updated() { } def initialize() { + // Arrival sensors only goes OFFLINE when Hub is off + sendEvent(name: "DeviceWatch-Enroll", value: JsonOutput.toJson([protocol: "zigbee", scheme:"untracked"]), displayed: false) if ((device.getDataValue("manufacturer") == "OSRAM") && (device.getDataValue("model") == "LIGHTIFY Dimming Switch")) { sendEvent(name: "numberOfButtons", value: 2) } From c549a5bed09f5b47dd5b966955248b7b48407a2e Mon Sep 17 00:00:00 2001 From: twack Date: Tue, 4 Jul 2017 08:10:09 -0700 Subject: [PATCH 3/3] Added check valve initial state in installed() --- .../smartthings/zwave-water-valve.src/zwave-water-valve.groovy | 1 + 1 file changed, 1 insertion(+) diff --git a/devicetypes/smartthings/zwave-water-valve.src/zwave-water-valve.groovy b/devicetypes/smartthings/zwave-water-valve.src/zwave-water-valve.groovy index 4636291..6660640 100644 --- a/devicetypes/smartthings/zwave-water-valve.src/zwave-water-valve.groovy +++ b/devicetypes/smartthings/zwave-water-valve.src/zwave-water-valve.groovy @@ -58,6 +58,7 @@ metadata { def installed() { // Device-Watch simply pings if no device events received for 32min(checkInterval) sendEvent(name: "checkInterval", value: 2 * 15 * 60 + 2 * 60, displayed: false, data: [protocol: "zwave", hubHardwareId: device.hub.hardwareID]) + response(refresh()) } def updated() {