Skip to content

Commit a7e7357

Browse files
authored
Update evap-cooler-thermostat.groovy
1 parent 99f10eb commit a7e7357

1 file changed

Lines changed: 59 additions & 59 deletions

File tree

smartapps/dcoffing/evap-cooler-thermostat.src/evap-cooler-thermostat.groovy

Lines changed: 59 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,11 @@
1414
via Omoron LY1F SPDT 15amp relay. For only pump control any switch could work like the Enerwave ZWN-RSM1S
1515
or Monoprice #11989 Z-Wave In-Wall On/Off module
1616
17+
18+
1719
Change Log
20+
2016-07-04 b. removed dynamic feedback section, bug preventing saving, minor grammitical edits
21+
.. changed true to false install on dynamicPage(name: "aboutPage", title: none, install: false
1822
2016-07-02b. fixed mode bug not shutting of evap by changing mode technique, cleaned up code with shutdownEvap()
1923
a. modify dynamic feedback of inputs to be via paragraph technique
2024
2016-07-01 changed user select mode method, changed default delay-on to 1.5, removed the default setpoint because
@@ -48,7 +52,7 @@
4852
*/
4953

5054
definition(
51-
name: "Evap. Cooler Thermostat",
55+
name: "Evap Cooler Thermostat",
5256
namespace: "dcoffing",
5357
author: "Dale Coffing, SmartThings",
5458
description: "Automatic control for an Evaporative Cooler with a 2-speed motor, water pump and any temp sensor.",
@@ -78,8 +82,10 @@ def mainPage() {
7882

7983
section("Enter the desired room temperature setpoint..."){
8084
input "setpoint", "decimal", title: "Room Setpoint Temp", required: true
81-
}
82-
85+
}
86+
87+
// IS this little section below buggy or is it ST again? It won't let you save the app when clicking Done???
88+
8389
section("Current Conditions are"){ //The 'if' statements used below prevent null error crash
8490
if (fanMotor) {
8591
paragraph ("${fanMotor.displayName} is ${fanMotor.currentSwitch}")
@@ -94,6 +100,7 @@ def mainPage() {
94100
paragraph ("${fanSpeed.displayName} is ${fanSpeed.currentSwitch} ")
95101
}
96102
}
103+
97104

98105
section("Optional Settings (Fan Speed, Timers, Motion, etc)") {
99106
href (name: "optionsPage",
@@ -107,7 +114,7 @@ def mainPage() {
107114
// VERSION
108115
section("Version Info, User's Guide") {
109116
href (name: "aboutPage",
110-
title: "Evap Cooler Thermostat \n"+"Version: 1.0.160702c \n"+"Copyright © 2016 Dale Coffing",
117+
title: "Evap Cooler Thermostat \n"+"Version: 1.0.160704b \n"+"Copyright © 2016 Dale Coffing",
111118
description: "Tap to access user's guide.",
112119
image: "https://raw.githubusercontent.com/dcoffing/SmartThingsPublic/master/smartapps/dcoffing/evap-cooler-thermostat.src/ect250x250.png",
113120
required: false,
@@ -120,18 +127,18 @@ def mainPage() {
120127
def optionsPage() {
121128
dynamicPage(name: "optionsPage", title: "Configure Optional Settings", install: false, uninstall: false) {
122129

123-
section("Select the Evap Cooler Fan Speed switch control hardware (optional, leave blank for single speed)...."){
130+
section("Select the Evap Cooler Fan 2-Speed switch control hardware (optional, leave blank for single speed)...."){
124131
input "fanSpeed", "capability.switch",
125-
multiple:false, title: "Fan Hi-Lo Speed Control device", required: false, submitOnChange: true
132+
multiple:false, title: "Fan Hi-Lo 2-Speed Control device", required: false, submitOnChange: true
126133
}
127134

128135
section("Enter the desired differential temp between fan speeds (default=1.0)..."){
129136
input "fanDiffTempString", "enum", title: "Fan Differential Temp", options: ["0.5","1.0","1.5","2.0"], required: false
130137
}
131138

132-
section("Select the Evap Cooler pump switch hardware..."){
139+
section("Select the Evap Cooler water pump switch hardware..."){
133140
input "fanPump", "capability.switch",
134-
multiple:false, title: "Fan Pump On-Off Control device", required: false, submitOnChange: true
141+
multiple:false, title: "Water Pump On-Off Control device", required: false, submitOnChange: true
135142
}
136143
section("Enter the desired minutes to delay start of fan to allow for wetting of pads. (default=1.5)..."){
137144
input "fanDelayOnString", "enum", title: "Fan Delay On Timer", options: ["0.0","0.5","1.0","1.5","2.0","2.5"], required: false
@@ -150,16 +157,16 @@ def optionsPage() {
150157
input "autoMode", "enum", title: "Enable Evap Cooler Thermostat?", options: ["NO-Manual","YES-Auto"], required: false
151158
}
152159

153-
section ("Change SmartApp name, Mode selector") {
160+
section ("Change SmartApp name, Mode selector") {
154161
label title: "Assign a name", required: false
155-
// mode(title: "Set for specific mode(s)"), required: false //this technique for User mode fails for this smartapp
162+
// mode(title: "Set for specific mode(s)"), required: false //this technique for User mode fails tempHandler still executes for this smartapp?
156163
input "selectedModes", "mode", title: "Select specific mode(s) to run (default is ALL modes)", multiple: true, required: false
157164
}
158165
}
159166
}
160167

161168
def aboutPage() {
162-
dynamicPage(name: "aboutPage", title: none, install: true, uninstall: true) {
169+
dynamicPage(name: "aboutPage", title: none, install: false, uninstall: true) {
163170
section("User's Guide for Evap Cooler Thermostat") {
164171
paragraph textHelp()
165172
}
@@ -206,8 +213,7 @@ def handleTemperature(temp) { //
206213
//motion detected recently
207214
tempCheck(temp, setpoint)
208215
log.debug "handleTemperature ISACTIVE($isActive)"
209-
}
210-
else {
216+
} else {
211217
shutdownEvap()
212218
}
213219
}
@@ -229,9 +235,8 @@ def motionHandler(evt) {
229235
if (lastTemp != null) { //lastTemp not equal to null (value never been set)
230236
tempCheck(lastTemp, setpoint)
231237
}
232-
}
233-
else {
234-
shutdownEvap()
238+
} else {
239+
shutdownEvap()
235240
}
236241
}
237242
}
@@ -246,7 +251,7 @@ private tempCheck(currentTemp, desiredTemp) {
246251
//convert Fan Diff Temp input enum string to number value and if user doesn't select a Fan Diff Temp default to 1.0
247252
def fanDiffTempValue = (settings.fanDiffTempString != null && settings.fanDiffTempString != "") ? Double.parseDouble(settings.fanDiffTempString): 1.0
248253

249-
//if user doesn't select autoMode then default to "YES-Auto"
254+
250255
def autoModeValue = (settings.autoMode != null && settings.autoMode != "") ? settings.autoMode : "YES-Auto"
251256

252257
def LowDiff = fanDiffTempValue*1
@@ -255,48 +260,44 @@ private tempCheck(currentTemp, desiredTemp) {
255260
log.debug "TEMPCHECK#2(CT=$currentTemp, SP=$desiredTemp, FM=$fanMotor.currentSwitch, automode=$autoMode, FDTstring=$fanDiffTempString, FDTvalue=$fanDiffTempValue)"
256261

257262

258-
if (currentModeAllowed(settings.selectedModes)) {
263+
if (currentModeAllowed(settings.selectedModes)) {
259264
// Executes if current ST mode matches one of the user selected modes.
260265

261-
if (autoModeValue == "YES-Auto") {
262-
switch (currentTemp - desiredTemp) {
263-
case { it >= HighDiff }:
264-
// turn on fan high speed
265-
fanSpeed.on() // set fan Hi speed
266-
if (fanMotor.currentSwitch == "off") { // if fan is OFF turn everything on
267-
fanPump.on() // set water pump on
268-
fanMotor.on([delay: (fanDelayOnValue*60*1000)]) // delay starting fan to allow pump to wet pads
269-
log.debug "HI speed(CT=$currentTemp, SP=$desiredTemp, HighDiff=$HighDiff, fanDelayOnValue=$fanDelayOnValue)"
270-
} else { //fan and pump already running
271-
}
272-
273-
break //exit switch statement
274-
case { it >= LowDiff }:
275-
// turn on fan low speed
276-
if (fanMotor.currentSwitch == "off") { // if fan is OFF turn everything on
277-
fanSpeed.off() // set fan Lo speed
278-
fanPump.on() // set water pump on
279-
fanMotor.on([delay: (fanDelayOnValue*60*1000)]) // delay starting fan to allow pump to wet pads
280-
281-
log.debug "Fan Lo speed in fanDelayOn min (CT=$currentTemp, SP=$desiredTemp, LowDiff=$LowDiff)"
282-
}
283-
else {
284-
fanSpeed.off() //fan is already running, set Low speed immediately
285-
}
286-
log.debug "LO speed skip pump (CT=$currentTemp, SP=$desiredTemp, LowDiff=$LowDiff)"
287-
break
288-
default:
289-
// check to see if fan should be turned off
290-
if (desiredTemp - currentTemp >= 0 ) { //below or equal to setpoint, turn off fan,
291-
shutdownEvap()
292-
log.debug "below SP+Diff=fan OFF (CT=$currentTemp, SP=$desiredTemp, FD=$fanMotor.currentSwitch, autoMode=$autoMode,)"
293-
}
294-
log.debug "autoMode YES-MANUAL? else OFF(CT=$currentTemp, SP=$desiredTemp, FD=$fanMotor.currentSwitch, autoMode=$autoMode,)"
295-
}
296-
}
266+
if (autoModeValue == "YES-Auto") {
267+
switch (currentTemp - desiredTemp) {
268+
case { it >= HighDiff }:
269+
// turn on fan high speed
270+
fanSpeed.on() // set fan Hi speed
271+
if (fanMotor.currentSwitch == "off") { // if fan is OFF turn everything on
272+
fanPump.on() // set water pump on
273+
fanMotor.on([delay: (fanDelayOnValue*60*1000)]) // delay starting fan to allow pump to wet pads
274+
log.debug "HI speed(CT=$currentTemp, SP=$desiredTemp, HighDiff=$HighDiff, fanDelayOnValue=$fanDelayOnValue)"
275+
} else { //fan and pump already running
276+
}
277+
break //exit switch statement
278+
case { it >= LowDiff }:
279+
// turn on fan low speed
280+
if (fanMotor.currentSwitch == "off") { // if fan is OFF turn everything on
281+
fanSpeed.off() // set fan Lo speed
282+
fanPump.on() // set water pump on
283+
fanMotor.on([delay: (fanDelayOnValue*60*1000)]) // delay starting fan to allow pump to wet pads
284+
log.debug "Fan Lo speed in fanDelayOn min (CT=$currentTemp, SP=$desiredTemp, LowDiff=$LowDiff)"
285+
} else {
286+
fanSpeed.off() //fan is already running, set Low speed immediately
287+
}
288+
log.debug "LO speed skip pump (CT=$currentTemp, SP=$desiredTemp, LowDiff=$LowDiff)"
289+
break
290+
default:
291+
// check to see if fan should be turned off
292+
if (desiredTemp - currentTemp >= 0 ) { //below or equal to setpoint, turn off fan,
293+
shutdownEvap()
294+
log.debug "below SP+Diff=fan OFF (CT=$currentTemp, SP=$desiredTemp, FD=$fanMotor.currentSwitch, autoMode=$autoMode,)"
295+
}
296+
log.debug "autoMode YES-MANUAL? else OFF(CT=$currentTemp, SP=$desiredTemp, FD=$fanMotor.currentSwitch, autoMode=$autoMode,)"
297+
}
298+
}
297299

298-
}
299-
else { // if current ST mode does NOT match one of the user selected modes.
300+
} else { // if current ST mode does NOT match one of the user selected modes.
300301
shutdownEvap()
301302
}
302303
}
@@ -316,8 +317,7 @@ private hasBeenRecentMotion() {
316317
isActive = true
317318
}
318319
}
319-
}
320-
else {
320+
} else {
321321
isActive = true
322322
}
323323
isActive
@@ -337,6 +337,6 @@ private def textHelp() {
337337
" to control hi-lo speed via Omoron LY1F SPDT 15amp relay. For only pump control any single switch could"+
338338
" work like the Enerwave ZWN-RSM1S or Monoprice #11989 Z-Wave In-Wall On/Off module. \n\n"+
339339

340-
" To uninstall the smartapp simply click REMOVE below"
340+
" To uninstall the smartapp simply tap REMOVE below"
341341

342342
}

0 commit comments

Comments
 (0)