Files
SmartThingsPublic/smartapps/skp19/door-lock-code-distress-message.src/door-lock-code-distress-message.groovy
2015-08-04 15:49:03 -07:00

59 lines
1.7 KiB
Groovy

/**
* Door Lock Code Distress Message
*
* Copyright 2014 skp19
*
*/
definition(
name: "Door Lock Code Distress Message",
namespace: "skp19",
author: "skp19",
description: "Sends a text to someone when a specific code is entered",
category: "Safety & Security",
iconUrl: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience.png",
iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Convenience/Cat-Convenience@2x.png")
import groovy.json.JsonSlurper
preferences {
section("Choose Locks") {
input "lock1", "capability.lock", multiple: true
}
section("Enter User Code Number (This is not the code used to unlock the door)") {
input "distressCode", "number", defaultValue: "0"
}
section("Distress Message Details") {
input "phone1", "phone", title: "Phone number to send message to"
input "distressMsg", "text", title: "Message to send"
}
section("User Code Discovery Mode (Enable and unlock the door using desired code. A message will be sent containing the user code used to unlock the door.)") {
input "discoveryMode", "bool", title: "Enable"
}
}
def installed() {
subscribe(lock1, "lock", checkCode)
}
def updated() {
unsubscribe()
subscribe(lock1, "lock", checkCode)
}
def checkCode(evt) {
log.debug "$evt.value: $evt, $settings"
if(evt.value == "unlocked" && evt.data) {
def lockData = new JsonSlurper().parseText(evt.data)
if(discoveryMode) {
sendPush "Door unlocked with user code $lockData.usedCode"
}
if(lockData.usedCode == distressCode && discoveryMode == false) {
log.info "Distress Message Sent"
sendSms(phone1, distressMsg)
}
}
}