Ecobee schedule and smartThings mode temp settings fighting it out


(Mike Maxwell) #1

The correct way of programming the tstat schedule and hooking it into SmartThings mode changes is eluding me at the moment…
Currently they’re each battling for control…

Ideally what I’d like is ST to control the available modes in the tstat vs jacking in it’s own temperatures.
This allows for cloud or tstat temp adjustments to the available modes.

Anything out there for this?
How are other folks integrating the ecobee?


New to SmartThings should I avoid Wifi devices over alternative Z Wave or Zigbee devices?
(Yves Racine) #2

@Mike_Maxwell,

Hello.

There are a lot of smartapps that I’ve developed along with my custom ecobee device that could help you in having more ST control over your ecobee thermostat.

See https://github.com/yracine/device-type.myecobee

(1) One approach is to set the ecobee thermostat to ‘Away’/‘Home’ mode according to the corresponding hello home modes.

The ecobeeChangeMode smartapp may help you in doing so. Refer to
https://github.com/yracine/device-type.myecobee/blob/master/smartapps/ecobeeChangeMode

(2) Another approach is to use the following smartapps to change the climate/settings at ecobee based on
some presence sensors.

See AwayFromHome and resumeEcobeeProg smartapps (refer to
https://github.com/yracine/device-type.myecobee/blob/master/smartapps/AwayFromHome.groovy
https://github.com/yracine/device-type.myecobee/blob/master/smartapps/ecobeeResumeProg.groovy

(3) Finally, I’ve just recently developed a smartapp that monitors the ecobee’s settings at regular intervals (in minutes) based on an outdoor sensor (temperature, humidity) and some indoor motion sensors to provide more/less heating/cooling at the right time during the day.

See MonitorAndSetEcobeeTemp
https://github.com/yracine/device-type.myecobee/blob/master/smartapps/MonitorAndSetEcobeeTemp

You can use all the above smartapps or some of them according to your preferences.

In general, in order to avoid any conflicts between the smart ecobee thermostat and ST, I usually set the ecobee’s holdType input parameter to nextTransition to take advantage as much as possible of the existing ecobee program schedules that I’ve defined.

Regards.


(Mike Maxwell) #3

Perfect, thanks so much!


(Yves Racine) #4

@Mike_Maxwell, just to let you know, you need to use my custom ecobee device for these smartapps, as they don’t work with the ST stock ecobee device due to lack of functionalities.


(Mike Maxwell) #5

I figured that was the case.

I’m in awe over the device driver alone!, that thing is EPIC…


(Yves Racine) #6

@Mike_Maxwell, if you appreciate it, give me a like!! Thnx.


#7

Hi @yvesracine
Just installed your Ecobee device and smart app Change Mode for my Ecobee3.
Can you elaborate on the statement below and how it affects the operation of your Change Mode app.
Thanx, Abe


(Yves Racine) #8

@abe, this is done when you install/update the smartapp at the last page before pressing “Done”. The last parameter “Set for specific mode(s)” must be set to the target mode (ex. Away or Home).


#9

Ok I am probably just over complicating it in my mind.
The only two ST modes I use at present are Home and Away triggered by presence sensors.
So for a specific example: When ST hello home mode changes to Home I set my thermostat program to Home also. Also set the specific (target) mode to Home also in the last section? The opposite for Away?
Also trying to figure out how to modify the code to only work between certain hours so if my thermostat is in Sleep program and the mode changes to Home I do not want my thermostat to change program to Home.
Is this even possible?
If this works as advertised I will head over to the PayPal button as this is awesome.
Thanx, Abe


(Yves Racine) #10

@abe, yes, you’d need to have 2 instances of the same ecobeeChangeMode smartapp: one for Home (set in the last section) and another for Away. You can rename them as ecobeeChangeHome and ecobeeChangeAway for example.

Also, if you need to set a specific climate (or program schedule like Sleep) at a certain time, I’d suggest to use another smartapp for that use case: ecobeeSetClimate (under the same github repository) which was designed to do so.

Regards.


(Yves Racine) #11

@Abe, Thanks for the donation, very much appreciated!


(Chris) #12

@yvesracine, Firstly, thanks so much for your ecobee device type and the apps. They are really integrating my ecobee3 into my ST ecosystem fabulously. I am having a hell of a time trying to get the “ecobeeChangeMode” app working properly though. I’ve created app three instances, “Set ecobee to Home”, “Set ecobee to Away”, “Set ecobee to Sleep”, with the corresponding desired ST and ecobee modes selected. However, on a mode change all seem to fire simultaneous, with no apparent rhyme or reason. I’m not sure if there is a bug, or if I am just missing something super obvious. You can see my “Goodbye” action from this morning for example which sets my ST mode to Away. Thanks for the help and your great work in support of the community.


(Yves Racine) #13

Hello @swamplynx, in the smartapp at the last page (Notification Options), in order for your instances to work properly, you’d need to “set for Specific modes(s)” to 'Away", or ‘Home’ according to the desired target mode. This corresponds to the ST hello Mode.

At the moment, the sleep mode is not supported… Do you have a ‘sleep’ Hello Mode set up?

Bye for now.


(Chris) #14

Got it. Just have a ST “Night” mode which I wanted to set ecobee to sleep… Finally looked at the code, and can see now why it needs to be sandboxed for each mode since it is just an if else statement. I’m totally new to groovy, but figured I’d give the following a try. Not sure if sleep mode is unsupported because it depends on changes to the device type too, but we’ll give it a try!

def changeMode(evt) { def message
log.info message
message = "Setting the thermostat to $givenClimate.."
send(message)
if (newMode == "Away") {
	if (givenClimate.trim() == 'Away') {
		thermostats?.away()

	} else thermostats?.setThisTstatClimate(givenClimate)

} else if (newMode == "Home") {
	if (givenClimate.trim() == 'Home') {
		thermostats?.present()

	} else thermostats?.setThisTstatClimate(givenClimate)
} else (newMode == "Night") {
	if (givenClimate.trim() == 'Sleep') {
		thermostats?.present()

	} else thermostats?.setThisTstatClimate(givenClimate)
}

}


(Yves Racine) #15

Hi @swamplynx, I added sleep mode support. just grab the latest code at

P.S. Your code was OK, the last else would not compile though.


(Chris) #16

Outstanding. Thanks much. Also found your amazing “Resume Schedule” code.


(Yves Racine) #17

Hi @swamplynx, you may want to grab the latest code at

I made some changes to support any ecobee’s modes (even custom ones defined by you),
and any ST hello modes (even custom ones, defined by you).

Regards


(Chris) #18

Wow. Thanks!

I’m trying to get it to log to Hello, Home without sending a push message, I assume adding to line 130:

sendNotificationEvent(msg)

Should work?


(Yves Racine) #19

@swamplynx, if you don’t want any push message, just say no to ‘push notifications’ at
the last page (Notification Options).

Bye for now.


(Chris) #20

Another great enhancement to the chane mode app would be be a “resume schedule” option in addition to the ecobee modes… The resume schedule app works great for presence and motion, but it looks like only the underpinnings are there work with mode changes.