Temp Control Piston is cancelling out Timer Piston for Fan


1) Give a description of the problem
Im using smartthings to control my Grow Tent with a 4in1 sensor from Inovelli. I have piston for Temp Control: Temp over 27C turns on exhaust fan, when Temp gets equal to or below 25C exhaust fan turns off.

I have another Piston that controls the exhaust fan by time, to bring in fresh air: Every 90 minutes turn exhaust fan on for 15 minutes.

The problem is that the Timer piston will start, then turn off after a few minutes because the Temp control piston notices the temp is equal to or below 25C.

2) What is the expected behaviour?
Id like the exhaust fan to continue running till the timer ends regardless of the temperature, when the Fresh Air timer is activated

3) What is happening/not happening?
Exhaust air timer piston will not run fan for full time as Temperature control piston will turn fan off due to current temperature.

**4) Post a Green Snapshot of the piston!
Temperature Exhaust Fan

Fresh Air Timer

5) Attach logs after turning logging level to Full

This log shows the Temperature Exhaust piston turning off the fan when it was turned on by the Fresh Air piston

5/23/2020, 12:18:17 AM +317ms
+2ms ╔Received event [Grow Tent Temp/Humidity/Motion Sensor].temperature = 25 with a delay of 187ms
+1037ms ║RunTime Analysis CS > 934ms > PS > 74ms > PE > 29ms > CE
+1040ms ║Runtime (37145 bytes) successfully initialized in 74ms (v0.3.110.20191009) (1038ms)
+1041ms ║╔Execution stage started
+1048ms ║║Comparison (decimal) 25.0 is_greater_than_or_equal_to (integer) 27 = false (1ms)
+1050ms ║║Condition #2 evaluated false (5ms)
+1051ms ║║Condition group #1 evaluated false (state did not change) (6ms)
+1055ms ║║Comparison (decimal) 25.0 is_less_than_or_equal_to (integer) 25 = true (1ms)
+1057ms ║║Cancelling condition #6’s schedules…
+1057ms ║║Condition #6 evaluated true (5ms)
+1058ms ║║Cancelling condition #5’s schedules…
+1059ms ║║Condition group #5 evaluated true (state changed) (8ms)
+1061ms ║║Cancelling statement #7’s schedules…
+1089ms ║║Executed physical command [Tent intake / exhaust fans].off() (23ms)
+1097ms ║║Executed [Tent intake / exhaust fans].off (31ms)
+1101ms ║╚Execution stage complete. (60ms)
+1102ms ╚Event processed successfully (1102ms)

Any help with re-designing these pistons so that they both run correctly will be greatly appreciated.

Thanks in advance!


one of the ways would be using a global variable…

When fresh air piston starts, your global variable can be set to TRUE
and in your air temp piston, use that variable as a condition if it’s TRUE (fresh air is on) the piston won’t execute//

Here is a simple example:


IF Switch X changes to ON
Set global variable = TRUE
Do this do that


IF temp goes above 28
IF globalvariable is FALSE
the do this do that


Thanks for the reply. Im new to webcore so bare with me, please look at my pistons below to see if they’re correct:

Fresh Air Timer piston

Air Temp piston:


Update: it didnt work, something is wrong as the exhaust fan will now stay on and not turn off when Temps reach 25 when performing the Air Temp piston…any advice?


It didn’t work because your first pistons IF clause dosn’t do anything…
I will come up with a draft but busy for the next hour or so…
Stay tuned:)))


Thank you!


Line 29 should be SET the VARIABLE = TRUE