}
}
+// 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
+// input "button1", "capability.button", title: "Button Press", required:false, multiple:true //remove from production
+// input "triggerModes", "mode", title: "System Changes Mode", required: false, multiple: true
+// input "timeOfDay", "time", title: "At a Scheduled Time", required: false
+
def mainPage() {
dynamicPage(name: "mainPage") {
def anythingSet = anythingSet()
["Daylight":"Daylight - Energize"],
["Warm White":"Warm White - Relax"],
"Red","Green","Blue","Yellow","Orange","Purple","Pink"]
- input "lightLevel", "enum", title: "Light Level?", required: false, options: [[10:"10%"],[20:"20%"],[30:"30%"],[40:"40%"],[50:"50%"],[60:"60%"],[70:"70%"],[80:"80%"],[90:"90%"],[100:"100%"]]
+ input "lightLevel", "enum", title: "Light Level?", required: false, options: [10,20,30,40,50,60,70,80,90,100]
}
section("More options", hideable: true, hidden: true) {
input "frequency", "decimal", title: "Minimum time between actions (defaults to every event)", description: "Minutes", required: false
- href "timeIntervalInput", title: "Only during a certain time", description: timeLabel ?: "Tap to set", state: timeLabel ? "complete" : "incomplete"
+ href "timeIntervalInput", title: "Only during a certain time"
input "days", "enum", title: "Only on certain days of the week", multiple: true, required: false,
options: ["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday"]
input "modes", "mode", title: "Only when mode is", multiple: true, required: false
def installed() {
log.debug "Installed with settings: ${settings}"
subscribeToEvents()
+ // Initialize input value
+ color = "Purple"
}
def updated() {
def subscribeToEvents() {
subscribe(app, appTouchHandler)
- subscribe(contact, "contact.open", eventHandler)
- subscribe(contactClosed, "contact.closed", eventHandler)
- subscribe(acceleration, "acceleration.active", eventHandler)
- subscribe(motion, "motion.active", eventHandler)
- subscribe(mySwitch, "switch.on", eventHandler)
- subscribe(mySwitchOff, "switch.off", eventHandler)
- subscribe(arrivalPresence, "presence.present", eventHandler)
- subscribe(departurePresence, "presence.not present", eventHandler)
- subscribe(smoke, "smoke.detected", eventHandler)
- subscribe(smoke, "smoke.tested", eventHandler)
- subscribe(smoke, "carbonMonoxide.detected", eventHandler)
- subscribe(water, "water.wet", eventHandler)
- subscribe(button1, "button.pushed", eventHandler)
+ subscribe(contact, "contact.open", eventHandler1)
+ subscribe(contactClosed, "contact.closed", eventHandler1)
+ subscribe(acceleration, "acceleration.active", eventHandler1)
+ subscribe(motion, "motion.active", eventHandler1)
+ subscribe(mySwitch, "switch.on", eventHandler1)
+ subscribe(mySwitchOff, "switch.off", eventHandler1)
+ subscribe(arrivalPresence, "presence.present", eventHandler1)
+ subscribe(departurePresence, "presence.not present", eventHandler1)
+ subscribe(smoke, "smoke.detected", eventHandler1)
+ subscribe(smoke, "smoke.tested", eventHandler1)
+ subscribe(smoke, "carbonMonoxide.detected", eventHandler1)
+ subscribe(water, "water.wet", eventHandler1)
+ subscribe(button1, "button.pushed", eventHandler1)
if (triggerModes) {
subscribe(location, modeChangeHandler)
}
}
-def eventHandler(evt=null) {
+def eventHandler1(evt=null) {
log.trace "Executing Mood Lighting"
if (allOk) {
log.trace "allOk"
def modeChangeHandler(evt) {
log.trace "modeChangeHandler $evt.name: $evt.value ($triggerModes)"
if (evt.value in triggerModes) {
- eventHandler(evt)
+ eventHandler1(evt)
}
}
def scheduledTimeHandler() {
log.trace "scheduledTimeHandler()"
- eventHandler()
+ eventHandler1()
}
def appTouchHandler(evt) {
private oncePerDayOk(Long lastTime) {
- def result = lastTime ? dayString(new Date()) != dayString(new Date(lastTime)) : true
- log.trace "oncePerDayOk = $result - $lastTime"
+ //def result = lastTime ? dayString(new Date()) != dayString(new Date(lastTime)) : true
+ //log.trace "oncePerDayOk = $result - $lastTime"
+ def result = true //No time implementation in our infrastructure!
result
}
// TODO - centralize somehow
private getAllOk() {
- modeOk && daysOk && timeOk
+ //modeOk && daysOk && timeOk
+ return true
}
private getModeOk() {