X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=official%2Fhue-mood-lighting.groovy;h=abcdefa476c749837f20c723df4fe3690f8bda93;hb=2bb8c7e5b2ce77b81559287dc1847eb7a33ef8b1;hp=0fe42bed42831683a6a60334ba1942eaadbe7f61;hpb=3325c1b0cc49b9fbbc497cb3612f7aeff5263eca;p=smartapps.git diff --git a/official/hue-mood-lighting.groovy b/official/hue-mood-lighting.groovy index 0fe42be..abcdefa 100755 --- a/official/hue-mood-lighting.groovy +++ b/official/hue-mood-lighting.groovy @@ -36,6 +36,20 @@ preferences { } } +// 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() @@ -82,12 +96,12 @@ def mainPage() { ["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 @@ -123,6 +137,8 @@ private ifSet(Map options, String name, String capability) { def installed() { log.debug "Installed with settings: ${settings}" subscribeToEvents() + // Initialize input value + color = "Purple" } def updated() { @@ -134,19 +150,19 @@ 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) @@ -157,7 +173,7 @@ def subscribeToEvents() { } } -def eventHandler(evt=null) { +def eventHandler1(evt=null) { log.trace "Executing Mood Lighting" if (allOk) { log.trace "allOk" @@ -181,13 +197,13 @@ def eventHandler(evt=null) { 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) { @@ -279,14 +295,16 @@ private dayString(Date date) { 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() {