Thermostat SmartApps that uses Virtual Switches to control Mode/Fan/SetPoints

Another Variant of the program to post. The others are still available.

Added several options.

A. You can select push notifications styles, either Alert push notifications or silent style notifications. Both versions will appear in event history within the SmartThings phone app.

B. Added option to select device types for switchLevel Dimmer and my custom Momentary Dimmer.
Caution: Be careful switching device types after installation. The Momentary Dimmers will show under the switchLevel Dimmer Type, but the switchLevel Dimmer will not appear under the Momentary device type. At this time the app will let you move forward, but the selected switchLevel Dimmers will not appear under the Momentary Dimmer selection screen. The app is coded to work around this issue, and you can still reselect your switch choice.

C. Added setHeatingSetpoint()/setCoolingSetpoint() with quickSetHeat()/quickSetCool(), since the quick set command for the Thermostat device type has a much shorter delay action in the custom Thermostat device type I am using. Other Thermostat device types do may not have quickSet option and may not have any build in implementation delays with the standard SetPoint commands.

Thermostat Setpoints: V-Virtual Switch Options v1

1 Like

Iā€™m having the same issues with the Honeywell thermostat. Alexa changes the temp on the device tile, but it never makes it to the thermostat. Changing the temp using the slider in the ā€œmomentary dimmer button tileā€ device updates the thermostat correctly. I wonder if swapping the // would help my issue as well.

The fan mode works great. So amazing to say ā€œAlexa, turn fan mode onā€ and it changes almost instantly. Thank you for working on all of this!

Yes you can do the same edit. The new version I posted above will give the option of switching between the regular set point change and the quickSet that some custom device types have, along with other features.

I just posted the Momentary Dimmer setPoint app to allow the switching in the app instead it editing the codeā€¦

It worked. Yessssssssss. Thanks!!

@DarcRanger Thanks for sharing your work on this. Iā€™m using it now with two CTS thermostats. When Alexa understands me the setpoint changes happen very quickly. But half the time she says either ā€œI didnā€™t find a device with that nameā€ or better yet ā€œI found several devices with that name.ā€

Has anyone come up with a good naming convention that doesnā€™t confuse Alexa? I have upstairs and downstairs, and she seems to be ok with ā€œset downstairs air to 72ā€ but she doesnā€™t like upstairs. Iā€™ve also tried first floor/second floor. The Echo app itself says using numbers is a bad idea, so I donā€™t remember trying 1 and 2. ā€œHeatā€ doesnā€™t seem to work well, either. Even when overly-pronounced she still hears ā€œeightā€ sometimes.

Other than that, it works great. Thanks again!

Finding the best key/trigger words are still a challenge. I use the AC or the a.c. I am not sure how The AC D or the AC U would work, but they are unique enough, you might have a shot.for my cool setting. Using heat or heating is ok, but the heat works for me right now. Thermostat works well.

I have seen others suggest using grouping in Echo to change either the cooling or heating set point, but placing one switch into a bucket and swapping it out as seasons change.

In my other thermostat app, Thermo-Cool, Thermo-Heat and Thermo-Auto seems to work well. Thermo-Up and Thermo-Down might be an option.

Thanks for the ideas. I will keep experimenting and hopefully find something that works reliably.

And again, thanks for sharing your work.

@reevesjm, I could not use Air or AC consistently but Thermostat seems to work all the time.
Maybe try, ā€œAlexa, set the upstairs thermostat to 75ā€

@swindmiller Thanks, Scott. I gave that a shot, creating groups for upstairs thermostat and downstairs thermostat (instead of changing device names). I can just point them at the a/c vswitches for now, and easily change them over to heat in a couple of months (or more, this is Houston after all).

The good news, using ā€œthermostatā€ seems to work!

The odd news, Alexa seems to sometimes hear everything but the last syllable. In other words,

ā€œAlexa,set the upstairs thermostat to 72ā€ sets the stat to 70. Look in history, sure enough she thinks I said 70. Iā€™ll play around with more number combos, distance, maybe more voice training, etc.

This is exactly what I am doing. Glad it helped.

This is really cool! Great job @DarcRanger.

Iā€™m looking for a particular use case on IFTTT and as you mentioned in your initial post, this could be used to add IFTTT integration to a myriad of thermostats.

I wonder if this could be tweaked to use with the common IFTTT voice control hack using the SMS channel. Was thinking that I could use the tagged SMS trigger with tags of ā€œLowerā€ or ā€œRaiseā€. Then Iā€™d create two virtual momentary dimmers to either raise or lower the thermostat by 2 degrees.

So Iā€™d say, ā€œTell the house to lower the heatā€ ā€œHey Sir, tell the house to raise the ACā€

Is this something that can already be done and Iā€™m missing it? Or is a tweak required? How difficult would that be?

Thanks!

I will see what I can come up with this weekend. I know my Momentary Dimmer type will allow one to set the step level, I will just have to look at the code to access that information. I know with the Echo I can tell a normal dimming light to dim or brighten, I just need to see if Echo is using the switch preset or their own set value. Either way I need to figure out, coding wise, how to access the step level in the dimmer from the app. I will see what I can do. Worse case would be to create a second set of switches dedicated to control step levels.

EDIT:
I had a moment to look at IFTTT, there is no dim option only off/on. Separate momentary switches, one for the increase step and another to decrease step would be the way to go. This way avoiding a cross use for setting the heating and cooling setpoints switches, since those switches are dedicated to there individual setpoint controls.

A new app maybe better, since I would not need to worry about syncing the activity between the thermostat and the momentary dimmer switch. Or at least create a new app with possible integration with the current one.
I would just need to have the app check the current mode of the thermostat [Heat/Cool] and its current setpoint, then when you request an increase/decrease temperature, it will change the heating or cooling setpoint.
The Thermostat Auto mode will be more complex. I am not sure if I want to have the request to increase the setpoint would increase both the heating and cooling setpoint and have the request for decrease do the same, but that may be the simplest option.

Nice. Thanks for looking into it! A new app is probably cleaner.

I was playing around with the SMS channel on IFTTT today and Iā€™m afraid the tag will need to include a hashtag. I thought it would catch words without them. This unfortunately prevents you from using truly natural language for this use case.

Iā€™d have to be: ā€œTell the house to hashtag lower the heatā€

Getā€™s the job done. Not as fun. I still think thereā€™s a lot of value in being able to increase and decrease the temp via a switch though.

@ultrazero,

Try this app. I did qa quick test on the increase request through IFTTT and it seemed to work.
Let me know if you have any issues.

@DarcRanger Iā€™ll test it as soon as possible!

One questions: Should I be using standard momentary button or your custom momentary dimmers?

It should be the regular momentary, since I am not using any dimmer code in the script.

It works great! This is an excellent work around for IFTTT and useful for a number of things. Could be used on the web dashboards as well. Youā€™re famous in my book!

One thing I noticed while testing:
Started at 77.
Momentary button up 3 degrees went to 80. Great!
Momentary button down 3 degrees went to 74. Hmm.

I believe it was using the original setpoint of 77 instead of the new set point of 80 when I hit the second button. I tried again. This time I refreshed the Thermostat device first, and it worked. Iā€™m guessing since I hit the second button so soon after changing the first button, ST hadnā€™t gotten the refreshed setpoint back from the thermostat? Sounds right to me anyway. I donā€™t know if itā€™ll behave in the real world quite like this or if its just because Iā€™m testing. Do we know how long it takes ST to refresh thermostats automatically?

Maybe thereā€™s a refresh function or something you can put in before each action? Donā€™t know if this will add to your overhead. Also donā€™t know itā€™s necessary.

Great job!

There is a lag between the switch commands and the thermostat. Some of that lag is built into some of the device types for thermostats as a delay. If you change too fast you would see issue like you do.

The code is setup to always look for the current thermostat setpoints. What type of thermostat do you have and what device type are you using for it? As I stated earlier in this topic have a CT100 and the device type code I have gives two options to change setpoint, The standard command has a build-in delay for changes and an quickset, which changes without a delay once the command is trigged by the switch. The thermostat still needs time to process so a quick hit up/down will still replicate the quirk you saw.
My other setpoint apps give the user the option to swtich between the setpoint types, and I neglected to add that to this one.

I have a CT100 as well and using the custom device type from this thread:

Iā€™m assuming in real world use the lag wouldnā€™t be an issue. Iā€™d change the temp with the button (or ask Siri to!) and wait for it to get hot/cool before doing anything else.

I will have and update late tonight to take advantage of quicksetpoint with an option to choice it or standard setpoint command.

EDIT: App has been update to choose between standard setpoint with the programmed delay and the quickset which is a little faster when setting up the app.