preferences {
page(name: "rootPage")
+ page(name: "numbersPage")
page(name: "schedulingPage")
page(name: "completionPage")
- page(name: "numbersPage")
page(name: "controllerExplanationPage")
- page(name: "unsupportedDevicesPage")
+ //page(name: "unsupportedDevicesPage")
}
def rootPage() {
/*if (dimmersContainUnsupportedDevices()) {
href(name: "toUnsupportedDevicesPage", page: "unsupportedDevicesPage", title: "Some of your selected dimmers don't seem to be supported", description: "Tap here to fix it", required: true)
}*/
- href(name: "toNumbersPage", page: "numbersPage", title: "Duration & Direction", description: numbersPageHrefDescription(), state: "complete")
+ href(name: "toNumbersPage", page: "numbersPage", title: "Duration & Direction", state: "complete")
}
}
}
section("Rules For Dimming") {
- href(name: "toSchedulingPage", page: "schedulingPage", title: "Automation", description: schedulingHrefDescription() ?: "Set rules for when to start", state: schedulingHrefDescription() ? "complete" : "")
+ href(name: "toSchedulingPage", page: "schedulingPage", title: "Automation")
input(name: "manualOverride", type: "enum", options: ["Cancel dimming","Jump to the end"], title: "When one of the dimmers is manually turned off…", description: "dimming will continue", required: false, multiple: false)
- href(name: "toCompletionPage", title: "Completion Actions", page: "completionPage", state: completionHrefDescription() ? "complete" : "", description: completionHrefDescription() ?: "Set rules for what to do when dimming completes")
+ href(name: "toCompletionPage", title: "Completion Actions", page: "completionPage")
}
section {
paragraph deviceLabel(it)
}
}
- /*section {
- input(name: "dimmers", type: "capability.sensor", title: "Please remove the above devices from this list.", submitOnChange: true, multiple: true)
- }*/
section {
paragraph "If you think there is a mistake here, please contact support."
}
}
section {
- input(name: "startLevel", type: "number", range: "0..99", title: "From this level", defaultValue: defaultStart(), description: "Current Level", required: false, multiple: false)
- input(name: "endLevel", type: "number", range: "0..99", title: "To this level", defaultValue: defaultEnd(), description: "Between 0 and 99", required: true, multiple: false)
+ input(name: "startLevel", type: "number", range: "0..99", title: "From this level", description: "Current Level", required: false, multiple: false)
+ input(name: "endLevel", type: "number", range: "0..99", title: "To this level", , description: "Between 0 and 99", required: true, multiple: false)
}
def colorDimmers = dimmersWithSetColorCommand()
}
private initialize() {
+ startLevel = 0//Chagne start level to 0 to make it possible for the light to be off!
stop("settingsChange")
if (startTime) {
subscribe(dimmers, "switch.off", stopDimmersHandler)
}
- if (!getAllChildDevices()) {
+ /*if (!getAllChildDevices()) {
// create controller device and set name to the label used here
def dni = "${new Date().getTime()}"
log.debug "app.label: ${app.label}"
addChildDevice("smartthings", "Gentle Wake Up Controller", dni, null, ["label": app.label])
state.controllerDni = dni
- }
+ }*/
}
def appHandler(evt) {
def runAgain = stepDuration()
log.debug "Rescheduling to run again in ${runAgain} seconds"
- runIn(runAgain, 'increment', [overwrite: true])
+ //runIn(runAgain, 'increment', [overwrite: true])
} else {
def shouldChangeColors = (colorize && colorize != "false")
- if (shouldChangeColors && hasSetColorCommand(dimmer)) {
+ if (shouldChangeColors/*&& hasSetColorCommand(dimmer)*/) {
def hue = getHue(dimmer, nextLevel)
log.debug "Setting ${deviceLabel(dimmer)} level to ${nextLevel} and hue to ${hue}"
dimmer.setColor([hue: hue, saturation: 100, level: nextLevel])
- } else if (hasSetLevelCommand(dimmer)) {
+ } else {
log.debug "Setting ${deviceLabel(dimmer)} level to ${nextLevel}"
dimmer.setLevel(nextLevel)
- } else {
- log.warn "${deviceLabel(dimmer)} does not have setColor or setLevel commands."
}
-
}
}
stop("schedule")
- handleCompletionSwitches()
+ //handleCompletionSwitches()
- handleCompletionMessaging()
+ //handleCompletionMessaging()
handleCompletionModesAndPhrases()
}
def today = new Date().format("EEEE")
log.debug "today: ${today}, days: ${days}"
- if (!days || days.contains(today)) {// if no days, assume every day
+ //if (!days || days.contains(today)) {// if no days, assume every day
return true
- }
+ //}
log.trace "should not run"
return false
def percentComplete = timeElapsed / totalRunTime * 100
log.debug "percentComplete: ${percentComplete}"
- return percentComplete
+ //return percentComplete
+ // We do not have the notion of time for model-checking
+ return 100
}
int totalRunTimeMillis() {
private dimmersWithSetColorCommand() {
def colorDimmers = []
dimmers.each { dimmer ->
- if (hasSetColorCommand(dimmer)) {
+ //if (hasSetColorCommand(dimmer)) {
colorDimmers << dimmer
- }
+ //}
}
return colorDimmers
}