2 * Copyright 2015 SmartThings
4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
5 * in compliance with the License. You may obtain a copy of the License at:
7 * http://www.apache.org/licenses/LICENSE-2.0
9 * Unless required by applicable law or agreed to in writing, software distributed under the License is distributed
10 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License
11 * for the specific language governing permissions and limitations under the License.
13 * Presence Change Text
18 name: "Presence Change Text",
19 namespace: "smartthings",
20 author: "SmartThings",
21 description: "Send me a text message when my presence status changes.",
22 category: "Safety & Security",
23 iconUrl: "https://s3.amazonaws.com/smartapp-icons/Meta/text_presence.png",
24 iconX2Url: "https://s3.amazonaws.com/smartapp-icons/Meta/text_presence@2x.png"
28 section("When a presence sensor arrives or departs this location..") {
29 input "presence", "capability.presenceSensor", title: "Which sensor?"
31 section("Send a text message to...") {
32 input("recipients", "contact", title: "Send notifications to") {
33 input "phone1", "phone", title: "Phone number?"
40 subscribe(presence, "presence", presenceHandler)
45 subscribe(presence, "presence", presenceHandler)
48 def presenceHandler(evt) {
49 if (evt.value == "present") {
50 // log.debug "${presence.label ?: presence.name} has arrived at the ${location}"
52 if (location.contactBookEnabled) {
53 sendNotificationToContacts("${presence.label ?: presence.name} has arrived at the ${location}", recipients)
56 sendSms(phone1, "${presence.label ?: presence.name} has arrived at the ${location}")
58 } else if (evt.value == "not present") {
59 // log.debug "${presence.label ?: presence.name} has left the ${location}"
61 if (location.contactBookEnabled) {
62 sendNotificationToContacts("${presence.label ?: presence.name} has left the ${location}", recipients)
65 sendSms(phone1, "${presence.label ?: presence.name} has left the ${location}")