From 5e07494dff69ea7e31029134840f3ff4bfb2bd54 Mon Sep 17 00:00:00 2001 From: jackchi Date: Sat, 22 Apr 2017 04:28:50 +0900 Subject: [PATCH] [CHF-602] Health Check Arrival Sensor HA --- .../arrival-sensor-ha.src/.st-ignore | 2 + .../arrival-sensor-ha.src/README.md | 50 +++++++++++++++++++ .../arrival-sensor-ha.groovy | 8 +++ 3 files changed, 60 insertions(+) create mode 100644 devicetypes/smartthings/arrival-sensor-ha.src/.st-ignore create mode 100644 devicetypes/smartthings/arrival-sensor-ha.src/README.md diff --git a/devicetypes/smartthings/arrival-sensor-ha.src/.st-ignore b/devicetypes/smartthings/arrival-sensor-ha.src/.st-ignore new file mode 100644 index 0000000..f78b46e --- /dev/null +++ b/devicetypes/smartthings/arrival-sensor-ha.src/.st-ignore @@ -0,0 +1,2 @@ +.st-ignore +README.md diff --git a/devicetypes/smartthings/arrival-sensor-ha.src/README.md b/devicetypes/smartthings/arrival-sensor-ha.src/README.md new file mode 100644 index 0000000..41cbdbe --- /dev/null +++ b/devicetypes/smartthings/arrival-sensor-ha.src/README.md @@ -0,0 +1,50 @@ +# Arrival Sensor HA (2016+ Model) + +Cloud Execution + +Works with: + +* [Samsung SmartThings Arrival Sensor](https://support.smartthings.com/hc/en-us/articles/212417083-Samsung-SmartThings-Arrival-Sensor) + +## Table of contents + +* [Capabilities](#capabilities) +* [Health](#device-health) +* [Battery](#battery) +* [Troubleshooting](#troubleshooting) + + +## Capabilities + +* **Tone** - beep command to allow an audible tone +* **Actuator** - device has commands +* **Presence Sensor** - device tells presence with enum - {present, not present} +* **Sensor** - device has attributes +* **Battery** - defines device uses a battery +* **Configuration** - _configure()_ command called when device is installed or device preferences updated +* **Health Check** - indicates ability to get device health notifications + + +## Device Health + +Arrival Sensor ZigBee is an untracked device. Sends broadcast of battery level every 20 seconds. +Disconnects when Hub goes OFFLINE. + + +## Battery + +Uses 1 CR2032 Battery + +* [Changing the Battery](https://support.smartthings.com/hc/en-us/articles/200907400-How-to-change-the-battery-in-the-SmartSense-Presence-Sensor-and-Samsung-SmartThings-Arrival-Sensor) + + +## Troubleshooting + +If the device doesn't pair when trying from the SmartThings mobile app, it is possible that the arrival sensor is out of range. +Pairing needs to be tried again by placing the sensor closer to the hub. + +* [Samsung SmartThings Arrival Sensor Troubleshooting Tips](https://support.smartthings.com/hc/en-us/articles/205382134-Samsung-SmartThings-Arrival-Sensor-2015-model-) + +If the arrival sensor doesn't update its status, here are a few things you can try to debug. + +* [Troubleshooting: Samsung SmartThings Arrival Sensor won't update its status](https://support.smartthings.com/hc/en-us/articles/200846514-Troubleshooting-Samsung-SmartThings-Arrival-Sensor-won-t-update-its-status) \ No newline at end of file diff --git a/devicetypes/smartthings/arrival-sensor-ha.src/arrival-sensor-ha.groovy b/devicetypes/smartthings/arrival-sensor-ha.src/arrival-sensor-ha.groovy index c434d3d..4099b2a 100644 --- a/devicetypes/smartthings/arrival-sensor-ha.src/arrival-sensor-ha.groovy +++ b/devicetypes/smartthings/arrival-sensor-ha.src/arrival-sensor-ha.groovy @@ -1,3 +1,5 @@ +import groovy.json.JsonOutput + /** * Copyright 2017 SmartThings * @@ -19,6 +21,7 @@ metadata { capability "Sensor" capability "Battery" capability "Configuration" + capability "Health Check" fingerprint inClusters: "0000,0001,0003,000F,0020", outClusters: "0003,0019", manufacturer: "SmartThings", model: "tagv4", deviceJoinName: "Arrival Sensor" @@ -58,6 +61,11 @@ def updated() { startTimer() } +def installed() { + // Arrival sensors only goes OFFLINE when Hub is off + sendEvent(name: "DeviceWatch-Enroll", value: JsonOutput.toJson([protocol: "zigbee", scheme:"untracked"]), displayed: false) +} + def configure() { def cmds = zigbee.readAttribute(zigbee.POWER_CONFIGURATION_CLUSTER, 0x0020) + zigbee.batteryConfig(20, 20, 0x01) log.debug "configure -- cmds: ${cmds}"