Need To Control Ecobee's Comfort Setting

I have defined my Ecobee Comfort settings as follows:
HOME uses sensor #1
AWAY uses sensor's #1 and #2
SLEEP uses sensor #2
All comfort settings have slightly different cool and heat points. I have written a custom app with groovy and the condition to set the Comfort settings works great. I did not find a way to set these Comfort setting with the Ecobee Integrtation method so I used IFTTT to do this. When I set Mode in Habitat to Home I have IFTTT set the Comfort setting to Home. And likewise when I set Away Mode IFTTT sets Comfort to Away and finally when I set Mode to Sleep IFTTT sets my Ecobee to Sleep Comfort. This method seemed to work OK but I noticed when IFTTT set a Comfort setting the cool and heat set points get set correctly but it does not actually change the setting called Comfort Setting on the Ecobee. If that Comfort setting was Home prior to IFTTT's change then is remains Home but the temperature set points are actually changed correctly. The real problem is that the sensors are not working correctly because it see's an inconsistency in the Comfort setting on the Ecobee (it does not change). Does any body know how to fix this? Or can someone tell me another method of setting the Comfort Mode that actually works.
Thanks

If you use RM (or webCoRE) there should be Custom Commands setAway and resumeProgram available for your thermostat.

FYI - are you aware of the Ecobee Suite community integration from @storageanarchy?

1 Like

This works with the built in Ecobee integration as well. I used it in rules all the time before I went to HA and HADB integration for local control. HA has the same commands also. But, with the HADB integration, you need to use helpers (toggle booleans) to set away and resume.

So, native integration has the ability, using custom commands, to set away or resume program.

Summary

The Ecobee Suite app mentioned above has a command setProgram that accepts a string parameter. This is what I use when i want to change between home, away, sleep, or any of my custom programs. The resumeProgram command (with an empty parameter) cancels any overrides and reverts back to the Ecobee's programmed schedule.

Also be aware that these settings have different names depending on where you're looking. The native Ecobee app calls them comfort settings, and the API/Hubitat apps call them both programs AND climates.

Screenshot_20240218_080118_Chrome

Screenshot_20240218_080225_Chrome

1 Like

I appreciate the reply. The Ecobee Integration method allows me to do that but I need to select which sensors are being used dependent on some trigger logic I have. It looks like what you showed will allow me to invoke whatever I defined in Away on my thermostat but I need to invoke the other modes also because each uses a different set of sensors. Even if I found a method that did not allow invoking Comfort setting but instead allowed to dictate the sensors used (and heat/cool setpoints... which is easy to get) I would be in great shape.
Thanks for the post.

The Ecobee Suite app mentioned/linked above will work exactly how you want. It has significantly more capabilities than the built in Ecobee app.

1 Like

I thought that the built in one was the way too go... was I wrong! The Ecobee Suite is working out really well. I have put in about an hour of testing and the only problem I am having is that I set the Comfort setting to "home" and then configure it this way:

EcobeeLivingRoom.addSensorToProgram("home") 
EcobeeHall.deleteSensorFromProgram("home") 
EcobeeBedRoom.deleteSensorFromProgram("home")

It works about 60% of the time but the other 40% I get 2 sensors "checkmarked". I have tried pauses in between the above lines of code which didn't seem to improve the probability of success. Can you tell me the difference between deleteSensorFromProgram() and removeSensorFromProgram()? The addSensor always works.
Thanks For The Help

You shouldn't need to code this yourself. Build the comfort settings in the Ecobee app (the Android/iOS one published by Ecobee) using whichever sensors you want. Then use the Ecobee Suite app to change the active setting.

For example, my "Home" program ignores my basement sensor because we rarely go down there. If we've got guests over, or are going down to watch a movie, etc., I use Ecobee Suite to set the comfort setting to "HomeB." (The B is for basement... pretty clever, I know). That setting includes the basement sensor. Sometimes I'll even "preheat" the area by temporarily using another setting that uses only the basement sensor. That helps get the space to setpoint faster because it eliminates any "averaging" with the other spaces. These settings are all built within the Ecobee app and I rarely modify them. But when i do, i do it directly from the app... not hubitat. Most routine/day-to-day scheduling (Sleep- Wake- Home- Sleep) is also done with the Ecobee's built in schedule. I'll typically only use hubitat to accommodate short-term events like weekend house guests, etc.

But, if you really want to code this yourself, don't let me stop you. I just won't be any help... coding is not my thing.

Side Note: I have a forced air system with motorized dampers on my trunk ducts. I have some rules within hubitat that change how those dampers operate based on the selected comfort setting. This helps me get better (but not perfect) control over where my conditioned air gets delivered and mostly prevents unnecessary overheating/cooling other areas.

1 Like

Agreed. This is why Ecobee Suite was brought to @Hubi's attention. It is a purpose-built solution that can do what @Hubi wants to do.

1 Like