SmartThings is not so smart once again. I have a routine that uses temperature from a sensor to turn on or off an electric heater during a certain time frame.
The routine is: T, W, Th from 5pm-7:59am (next day), if Living Temp is Equal to or below 76 degrees Turn On Living Heat.
Problem is, if the temperature is already below 76 degrees when it hits 5pm the routine never turns on. It doesn’t realize it’s below 76 and never turns on. If the temp is above 76 at 5pm when it drops to 76 or below it turns on. If the temp is below 76 at 5pm, it should see it’s below 76 and turn on, but it does not.
So now I have to make 3 routines to do what I need instead of just one. Why does Equal to or below not work correctly?
The option in the routine says Equal or below, not drops below. At 5pm, the next time the temp sensor checks in and it’s already below 76 it should turn on because it’s below. Why say Equal or below if they really mean Drops below.
There is no option for if temp is already below. The options in the routine are: Matches, Equal or above, and Equal or below.
I will make extra routines to turn on/off before the time range, but I shouldn’t have to. If the option is not really equal or below, but really is Drops below, then the verbiage in the app should be changed.
All triggers must include a change. So it temperature is your trigger, the temperature has to change.
You are right the App doesn’t say drops below or rises above because while that is true for a Trigger it is not the case for a Precondition. Preconditions don’t require a change.
And you use the same section in Automations to create both Triggers and Preconditions. The only difference is for a preconditions you click the Precondition button at the bottom.
Yes, it is confusing and it takes everyone a while to figure it out.
In the Tuya/SmartLife apps they have completely different sections for creating Triggers and Preconditions which helps to eliminates that confusion.
The temperature does change. For example, the temp was 75 at 4:55 pm. At 5:10pm it changed to 74.6, that is a change, the routine should then say oh the temp is below 76 and it’s after 5 pm turn on the heat. In fact, the temp changed all the way to 71.3 and the routine never ran.
If that’s the case precondition should say equal or below and triggers should say drops below. Looks like lazy dev work to me.
I’ve been with smartthings since 2016, I have over 50 devices and over 100 routines, I am very experienced with ST, it’s not confusing at all, it simply doesn’t work correctly. 75 is below 76, if it’s 75, once the temp changes and the routine see’s the trigger has been met, ie: equal or below 76, then it should run. It’s sloppy programming. I miss the days before Samsung took over, it was a much better product then.
And now another problem. The routine runs from 5pm to 7:59am (next day) T, W, Th.
It didn’t trigger at 5pm because the temp was below 76 when it hit 5pm and now at midnight the routine stopped running, even though I have it set to run from 5pm to 7:59am (next day). At 12:17am the temp dropped to 75.5 and the routine didn’t run, even though the pre-condition and the trigger values were met. I just created 15 routines to cover this heater, different days, different times, different temps, but I should have been able to do it with 4-5. Now I find any of the 15 that run 5pm to 7:59am the next day stops running at midnight instead of 7:59am the next day. Now I have to create even more routines or scrap the whole idea of trying to save money on heating by lower temps during the day and having higher temps in evening/night. Sloppy work!
The comparison being made is ‘equal or below’ so the condition is evaluated correctly. The issue you are experiencing is that the condition is set to only trigger the Routine when it changes to true, rather than every time it is evaluated. I don’t know why they took this option but I am willing to concede they may have some insight that I don’t, and I can certainly imagine arguments in favour of it.
The description ‘equal or below’ is certainly incomplete.
The above issue could be mitigated if time ranges were ordinary conditions that triggered the automation when they start and end. Again they aren’t for whatever reason. However a number of users choose to use two Routines to toggle the state of a virtual or real binary device such as a switch at the beginning and end of any time range they use in multiple Routines. This device can then be used in trigger conditions instead of the time range.
Yep. I use a virtual switch to determine “Nighttime” which for me is 10pm to sunrise. It’s used as both a trigger and a precondition in the manner you describe.
That’s exactly what’s happening, it only triggers if True not when evaluated. My guess is they don’t have enough infrastructure to handle it that way. I assume it would add hundreds of thousands of requests every time routines evaluate which Samsung’s infrastructure probably can’t handle.
Anyway, I look into the virtual switch option.
I started over, took out spanning into the next day and added on/off routines to turn on/off before the next time frame hit. It’s 10 routines (see below). I thought I had it working, but the temp was above the off trigger at 5:05 pm and it never turned off.
T W Th F
12:01am - 7:55am on at 76 (equal or below)
12:01am - 7:55am off at 77 (equal or above)
7:58am - off
8:00am - 5pm on at 75 (equal or below)
8:00am - 5pm off at 76 (equal or above)
5:02pm - on
5:05pm - 11:55pm on at 76 (equal or below)
5:05pm - 11:55pm off at 77 (equal or above)
S M S
12:01am - 11:59pm on at 76 (equal or below)
12:01am - 11:59pm off at 77 (equal or above)
I’ll either try range (once I understand how it works) or I’ll try an add another routine that says if temp is over 77 at 5:05 pm turn off the heater.
This seems more difficult than it needs to be. I simply want on/off temp TWTF from 8am 5pm to be 75/76 and all other times 76/77.
I never even saw range as an option for temperature because when I choose temperature as a trigger the android keyboard opens up and blocks the range option. I never knew it was there, can’t see it. I had to close the keyboard then I saw range. Again, bad programming, the keyboard should only pop up once I tap in the temperature field, that way you can see all the options.
So, in my situation, how would range help me? How does it work? The heater turns on/off by using a smart plug. It’s a stand-alone electric heater plugged into a smart plug. I want the smart plug to turn on at 75 degrees and off at 76 degrees from 8am-5pm. How does range work? Thanks.
My understanding is that Routines, being Rules based automations, are a special type of app and they subscribe to events and update their conditions (including preconditions) as they happen. So they are doing a lot of evaluating anyway.
The lessThanOrEquals condition in Rules will trigger on every evaluation by default but for Routines they have chosen to set the changesOnly flag in the generated Rules. I too wondered if this was a conscious decision to reduce loading in the cloud but it could be that they believe this is what the majority of mobile app users would expect.
For those kind of routines I usually create virtual devices that represent triggers and/or preconditions.
In this case thermometer to change temperature, switch to represent time period, and fan to represent your heater.
Then I create routines and test triggers.
I just created 2 initial routines with ranges and it seems that is working for one time period
For turning on
This is virtual setup per your specs
Create 1 virtual switch and call it 8pm - 5am, and setup on routines tab to turn on TWTF at 8pm and to turn Off on WTFS at 5am like in screenshot
Right. “Run once at beginning of time period” has been added recently as a selectable option for precondition timespans - and it solves this exact problem.
Thanks for the virtual switch info and the info on the “run once” option. I saw that option and read it as it will run once and never run again until the next day. If that’s not the case, ST needs to put explanations in the app so we know what the options do.
But that said I have zero confidence that any option or complicated virtual switch will work. I say this because I added routines to turn off the power switch at 7:58am and another to turn on the power switch at 5:02 and run for 15 minutes. Friday both ran fine, today neither ran at all.
They are simple routines: at this time turn off, at this time turn on, nothing else, basic, yet those did NOT run today.
I have no idea what to do now except go back to one routine on at 77 degrees off at 76 and not try to lower the trigger temps during the day on certain days. Since ST doesn’t work correctly It’ll cost me $1500 more this heating season because it doesn’t work with temp or time triggers correctly.