Merge pull request #1978 from aaron-miller/DVCSMP-2612

[DVCSMP-2612] Unschedule execution for Left It Open when door is closed
This commit is contained in:
Aaron Miller
2017-05-11 08:51:36 -05:00
committed by GitHub

View File

@@ -30,12 +30,15 @@ preferences {
section("Monitor this door or window") {
input "contact", "capability.contactSensor"
}
section("And notify me if it's open for more than this many minutes (default 10)") {
input "openThreshold", "number", description: "Number of minutes", required: false
}
section("Delay between notifications (default 10 minutes") {
input "frequency", "number", title: "Number of minutes", description: "", required: false
}
section("Via text message at this number (or via push notification if not specified") {
input("recipients", "contact", title: "Send notifications to") {
input "phone", "phone", title: "Phone number (optional)", required: false
@@ -59,18 +62,15 @@ def subscribe() {
subscribe(contact, "contact.closed", doorClosed)
}
def doorOpen(evt)
{
def doorOpen(evt) {
log.trace "doorOpen($evt.name: $evt.value)"
def t0 = now()
def delay = (openThreshold != null && openThreshold != "") ? openThreshold * 60 : 600
runIn(delay, doorOpenTooLong, [overwrite: false])
log.debug "scheduled doorOpenTooLong in ${now() - t0} msec"
runIn(delay, doorOpenTooLong, [overwrite: true])
}
def doorClosed(evt)
{
def doorClosed(evt) {
log.trace "doorClosed($evt.name: $evt.value)"
unschedule(doorOpenTooLong)
}
def doorOpenTooLong() {
@@ -92,15 +92,13 @@ def doorOpenTooLong() {
}
}
void sendMessage()
{
void sendMessage() {
def minutes = (openThreshold != null && openThreshold != "") ? openThreshold : 10
def msg = "${contact.displayName} has been left open for ${minutes} minutes."
log.info msg
if (location.contactBookEnabled) {
sendNotificationToContacts(msg, recipients)
}
else {
} else {
if (phone) {
sendSms phone, msg
} else {