This thread is about My Ecobee device only, and it’s dedicated to the several hundred of ecobee users (550 contributors and counting) who have been using it for their day to day HA interaction through SmartThings for more than 2 years now.
I’ve developed more than 15k lines of code for the ecobee thermostats under SmartThings. It’s the most comprehensive ecobee implementation. There is no other thermostat device that offers this kind of capabilities under SmartThings (compared to Nest, Honeywell Lyric or any other smart thermostats).
If you want to unlock all ecobee’s rich APIs features, this is the device for you!
The code works with all ecobee models: Ecobee Lite, Ecobee3, Smart-SI, Smart-02, and even EMS thermostats.
BTW, for those who are interested in purchasing an ecobee, here is a referral link you can use:
My ecobee Device is now available for download at my store:
For the new v5.0 version with tips and running graph features, please refer to the following thread:
As the ecobee thermostats are becoming more popular (especially with the advent of the ecobee3), I decided to create a specific thread on how to do their initial setup within ST. This thread actually is a collection of previous posts that I’ve done in many other threads…
My custom Ecobee device was created in order to expose all functionalities of the rich ecobee APIs. The Stock ST device under the SmartThings labs exposes only the basic functionalities (i.e., not more than a regular z-wave thermostat except maybe for the resumeProgram). As I own a SMART-02 thermostat, I decided to code my own device handler to get access to all functionalities that I need.
With My Ecobee device and my smartapps, you can do the following:
1) Setting your thermostat to Away or Home based on ST hello modes
See the ecobeeChangeMode smartapp.
2) Resuming your program/climate when you’re back home
See the ecobeeResumeProg smartapp.
3) Setting your thermostat to vacation mode
See the ecobeeManageVacation smartapp.
4) Creating/updating your ecobee climates/schedules
See the ecobeeManageClimate smartapp.
5) Setting your ecobee climate/program at a given time
See the ecobeeSetClimate smartapp.
6) Monitoring and setting your indoor humidity level using your humidifer/dehumidifer/HRV/ERV (when connected to ecobee)
It also allows you to use the ecobee’s free cooling feature…
See the MonitorAndSetEcobeeHumidity smartapp and this thread for more details:
7) Monitoring and setting your setpoints based on any ST connected indoor temp/motion sensors (similar to ecobee3’s follow me feature) & outdoor temperature
See the MonitorAndSetEcobeeTemp smartapp., and this thread for more details:
8) Exposing your ecobee3’s remote sensors to SmartThings for HA scenarios
See the ecobee3RemoteSensorInit smartapp.
9) Controlling your smart vents based on your indoor temp/motion sensors in conjunction with your thermostat’s programs & setpoints
See the ecobeeSetZoneWithSchedule smartapp
10) Controlling your minimum fan time per hour during a climate/schedule run
See the ecobeeSetFanMinOnTime smartapp
11) Generating some ecobee HVAC stats on a daily basis and sending them to groveStreams for data analytics
See the following smartapps: ecobeeGenerateStats & groveStreams smartapps
12) Turning off your thermostat(s) when Window or Door contacts are open and restoring your thermostat mode when they are closed
See the WindowOrDoorOpen! smartapp.
13) And many more features, you may want to consult the wiki for more details
The ST setup for My custom Ecobee device should not take you more than 5-10 minutes depending on how you’re familiar with the IDE.
If you’re new to ST, prior to do any setup step described in this thread, please refer to this excellent guide created by @JDRoberts, a fellow community member
1) After the download, please follow the readme file’s step by step instructions under (setup time = around 5 min)
2) If you have the ecobee3, you may want to expose also its remote sensors to ST as individual
temp and motion sensors (setup time = 2-5 min.)
I’ve created a smartapp for that, see ecobee3RemoteSensorInit.readme file at my github and this
thread for more detail:
However, please note that the 3.6 firmware is required for occupancy updates.
3) In order to be able to better control your ecobee thermostat(s) under ST, I also created a bunch of smartapps. (setup time = around 2 to 5 min. per smartapp)
Here are some explanations on how to maximize your ecobee thermostats’ use under ST.
Most of my smartapps have been developed with this principle in mind: ecobee is responsible for the basic scheduling (as it’s more reliable and also accessible from the physical thermostat anytime) and ST is responsible for managing exceptions to the schedules that you define (i.e., ‘Away’ or ‘Home’ mode switch as an example).
So, here are the suggested steps for setting up ecobee and ST, so that they work together for
(3a) Create your schedules (climates or programs) at the ecobee portal
Go to www.ecobee.com, register, and set your climates based on your regular schedules (ex. 7h-8h am ‘Awake’, 8ham-5hpm ‘Away’ for work, 5h00-10h30 pm ‘Home’,10h30hpm-7h am ‘Sleep’ on weekdays, define also your schedules for the weekends).
With ecobee, you can not only set up your heating/cooling setpoints, but also your fan settings in your climates (fan set to ‘On’, ‘Auto’, and ‘Circulate’ with the fanMinOnTime settings which allows you to
set a minimum fan time in minutes per hour).
As your preferences may be very different from mine, I won’t recommend here any specific cooling/heating settings. It really depends if you put more emphasis on your comfort or your savings…It’s a delicate balance between the 2 dimensions that your may need to fine tune for you and your other family members (if any).
(3b) Set up the holdType input parameter for My Ecobee Device (refer to step 7 in the readme file)
To avoid overlaps between ST and ecobee, I use the holdType input parameter to define the type of ‘hold’ (exception to the basic scheduling). By default, the holdType is indefinite. I personally prefer to use the ‘nextTransition’ holdType, so that a ‘hold’ stays only active till the next transition on the schedule.
For more detail on holdType, please refer to
(3c) Choose one of the following smartapps for your requirements
I’ve listed them in a progressive order of complexity. The most complex smartapps are only needed
if your requirements are high.
+) Use the ecobeeChangeMode smartapp for setting your thermostat to ‘Away’ or ‘Home’
This smartapp sets the ecobee thermostat to ‘Away’/‘Home’ mode according to the corresponding ST hello mode changes.
So, you can define two instances of the same smartapp: one for the ‘home’ ST Hello mode that will set your ecobee thermostat to ‘Home’ when you’re back from work for example, and another one for ‘Away’ for the ‘Away’ ST hello mode when you leave your home (you’d need to rename the smartapp at the last screen).
You can also use the same smartapp for your custom ST hello modes & custom ecobee climates if any.
++) Use both AwayFromHome and ecobeeResumeProg for more complex use cases
If you want more accuracy/granularity when setting your thermostat to ‘Away’ , you may want to use
the ‘AwayFromHome’ smartapp. This smartapp allows you to more precisely define the presence and motion sensors required to set your ecobee thermostat to ‘Away’.
I initially created this smartapp because the ST hello mode changes were not always reliable (now it’s much better) and I wanted to trigger more specialized actions when leaving my home than what ST can offer: turning off the lights, locking my doors, arming my alarm system (it needs to be connected to ST), arming my cameras, etc.
On the opposite side, ecobeeResumeProg resumes the ecobee’s climate (or program) when one of the predefined presence sensors is back home, or when there is a ST Hello Mode change, or when one of the motion sensors specified in the smartapp detects movement in your home.
(+++) Use MonitorAndSetEcobeeTemp if you want even more control over your ecobee thermostat
I initially created this smartapp because I live in Montreal (Canada) and the outdoor temperature
can vary a lot throughout the year (+32°Celsius/90°Farenheits in the Summer to -30°Celcius/-22°Farenheits in the Winter), and sometimes, but to a lesser extent, during a single day!
So, the smartapp allows you to set up some ‘more or less heat’ and ‘more or less cool’ thresholds for increasing/decreasing the heating/cooling setpoints based on an outdoor temp sensor (could also be a virtual weather station).and a user-provided adjustment setting (ex. +/- 5°F) during the day.
I also added the average temp calculation algorithm that you have built-in with the ecobee3 and its proprietary remote sensors, but you can now use any of your ST-connected indoor temp and motion sensors. This way, you can enable more heating/cooling when your house temperature varies from one room to another.
In fact, with this smartapp, you can also use any types of ecobee thermostats (not only ecobee3) such as the ecobee Smart-Si, EMS, or stat-02 (which is the older version) to have basically the same behavior as the ecobee3 and its remote sensors.
In brief, this smartapp combines all the previous smartapps in one single package because
it monitors your home based on outdoor/indoor sensors and can set your ecobee thermostat to ‘Away’ or ‘Home’ according to a time threshold (in minutes) that you define.
Again, this smartapp makes automatic adjustments to your existing ecobee schedules, so you also
need to define your basic scheduling within ecobee first.
++++) If you plan to have smart vents later or want to average out your inside temp sensors (similar logic to ecobee3 with its remote sensors), look at the ScheduleTstatZones smartapp or ecobeeSetZoneWithSchedule
In summary, you have many options available for your new ecobee smart thermostat (the smarter thermostat on the market!). I’d recommend to start with the simpler smartapps and evolve from there to the others if needed.
Let me know if you have any further questions.