IDE = integrated development environment. It’s where the real power of SmartThings becomes obvious. Try the link and see if you have access. If not, request it. Once you’re in, goto My SmartApps and then click/tap the green button for + New SmartApp (this is best done on a computer BTW). Next, click/tap the tab for “From Code.” Past the code (below) into the window that appears, and then Save and Publish (for me). You’ll find the installed app on your mobile device in the Marketplace (far right icon on the bottom toolbar) under SmartApps > My Apps. At that point, just configure it like any other app.
I haven’t tested my modification, but it’s pretty straightforward , so I’d be surprised if it didn’t work for you.
[code]/**
preferences {
section("Choose one or more, when… "){
input “button”, “capability.button”, title: “Button Pushed”, required: false, multiple: true //tw
input “motion”, “capability.motionSensor”, title: “Motion Here”, required: false, multiple: true
input “contact”, “capability.contactSensor”, title: “Contact Opens”, required: false, multiple: true
input “contactClosed”, “capability.contactSensor”, title: “Contact Closes”, required: false, multiple: true
input “acceleration”, “capability.accelerationSensor”, title: “Acceleration Detected”, required: false, multiple: true
input “mySwitch”, “capability.switch”, title: “Switch Turned On”, required: false, multiple: true
input “mySwitchOff”, “capability.switch”, title: “Switch Turned Off”, required: false, multiple: true
input “arrivalPresence”, “capability.presenceSensor”, title: “Arrival Of”, required: false, multiple: true
input “departurePresence”, “capability.presenceSensor”, title: “Departure Of”, required: false, multiple: true
input “smoke”, “capability.smokeDetector”, title: “Smoke Detected”, required: false, multiple: true
input “water”, “capability.waterSensor”, title: “Water Sensor Wet”, required: false, multiple: true
}
section(“Send this message (optional, sends standard status message if not specified)”){
input “messageText”, “text”, title: “Message Text”, required: false
}
section(“Via a push notification and/or an SMS message”){
input(“recipients”, “contact”, title: “Send notifications to”) {
input “phone1”, “phone”, title: “Send a text message (enter tel. #)?”, required: false
input “phone2”, “phone”, title: “Also send a text message to:”, required: false
input “pushAndPhone”, “enum”, title: “Both Push and SMS?”, required: false, options: [“Yes”, “No”]
}
}
section(“Minimum time between messages (optional, defaults to every message)”) {
input “frequency”, “decimal”, title: “Minutes”, required: false
}
}
def installed() {
log.debug "Installed with settings: ${settings}"
subscribeToEvents()
}
def updated() {
log.debug "Updated with settings: ${settings}"
unsubscribe()
subscribeToEvents()
}
def subscribeToEvents() {
subscribe(acceleration, “acceleration.active”, eventHandler)
subscribe(arrivalPresence, “presence.present”, eventHandler)
subscribe(button, “button.pushed”, eventHandler)
subscribe(contact, “contact.open”, eventHandler)
subscribe(contactClosed, “contact.closed”, eventHandler)
subscribe(departurePresence, “presence.not present”, eventHandler)
subscribe(motion, “motion.active”, eventHandler)
subscribe(mySwitch, “switch.on”, eventHandler)
subscribe(mySwitchOff, “switch.off”, eventHandler)
subscribe(smoke, “smoke.detected”, eventHandler)
subscribe(smoke, “smoke.tested”, eventHandler)
subscribe(smoke, “carbonMonoxide.detected”, eventHandler)
subscribe(water, “water.wet”, eventHandler)
}
def eventHandler(evt) {
log.debug "Notify got evt ${evt}"
if (frequency) {
def lastTime = state[evt.deviceId]
if (lastTime == null || now() - lastTime >= frequency * 60000) {
sendMessage(evt)
}
} else {
sendMessage(evt)
}
}
private sendMessage(evt) {
def msg = messageText ?: defaultText(evt)
log.debug “$evt.name:$evt.value, pushAndPhone:$pushAndPhone, ‘$msg’”
if (location.contactBookEnabled) {
sendNotificationToContacts(msg, recipients)
} else {
if (!phone || pushAndPhone != "No") {
log.info "sending push"
sendPush(msg)
}
if (phone) {
log.info "sending SMS"
sendSms phone1, msg
}
if (phone2) {
sendSms phone2, msg
}
}
if (frequency) {
state[evt.deviceId] = now()
}
}
private defaultText(evt) {
if (evt.name == “presence”) {
if (evt.value == “present”) {
if (includeArticle) {
"$evt.linkText has arrived at the $location.name"
} else {
"$evt.linkText has arrived at $location.name"
}
} else {
if (includeArticle) {
"$evt.linkText has left the $location.name"
} else {
"$evt.linkText has left $location.name"
}
}
} else {
evt.descriptionText
}
}
private getIncludeArticle() {
def name = location.name.toLowerCase()
def segs = name.split(" “)
!([“work”,“home”].contains(name) || (segs.size() > 1 && ([“the”,“my”,“a”,“an”].contains(segs[0]) || segs[0].endsWith(”'s"))))
}
[/code]