Ecobee Thermostats & Sensors

The Unofficial SmartThings Blog
Jump to navigation Jump to search

<al imagesize="Medium">B004150PJG</al> <al imagesize="Medium">B008F40R4C</al> <al imagesize="Medium">B00ZIRV39M</al> <al imagesize="Medium">B06W2LQY6L</al> Brand: Ecobee

Model: EMS, Smart, Smart-Si, Ecobee3, Ecobee3 Lite, Ecobee4

Type: Thermostat

Protocol: Cloud to Cloud

Capabilities: Actuator, Health Check, Motion Sensor, Refresh, Relative Humidity Measurement, Sensor, Temperature Measurement, Thermostat, Thermostat Cooling Setpoint, Thermostat Fan Mode, Thermostat Heating Setpoint, Thermostat Mode, Thermostat Operating State, Thermostat Setpoint

Device Type Author: Barry A. Burke (StorageAnarchy)


This is an Open Source implementation of Ecobee Device Type Handlers and companion helper SmartApps for use with any Ecobee thermostat (EMS, Smart, Smart-Si, Ecobee3 and Ecobee4). It is also reported to work with at least some of the rebranded Ecobee thermostats.

Based on the support originally developed by SmartThings, and later enhanced by Sean Stryker, this version provides a comprehensive suite of tools to integrate Ecobee thermostats into SmartThings, with an dynamic user interface that somewhat mimics the look and feel of Ecobee3/Ecobee4 devices.

The implementation supports the latest SmartThings capabilities for Thermostat and Sensor devices (as of August 2017), and also provides a broad range of standardized commands that can be called from other SmartApps such as CoRE and WebCoRE (link needed). Also featured is integration with Ask Alexa Message Queues for thermostat alarms (e.g. filter replacement, etc.).

Known Issues

Discussion of the current release can be found on the SmartThings Community here: Free Ecobee Suite Version 1.2.*

Device Type

Source files and documentation can be found in the Ecobee Suite (Free) GitHub repository

Implementation Notes

  • This Ecobee Suite is a Composite Device using the parent-child implementation, with all device creation and helper SmartApps created exclusively from within the parent Ecobee (Connect) SmartApp. This is the only SmartApp that should be run from the SmartThings Marketplace (once you have integrated the sources into your IDE).
  • Users of either the original SmartThings Ecobee support or Sean's (@StrykerSKS) version should be able to overwrite their existing Device and SmartApps with those from this suite. However, this cannot be guaranteed to work in all situations.
  • This Ecobee Suite is Open Source, and there is no fee or required contribution necessary to use it. (The documentation does provide a link should you voluntarily decide to make a contribution, but such is not required).

Supported Commands

The following commands can be called for a given Thermostat device:

Changing Programs (Climates)

setThermostatProgram("Away","indefinite",null) // climates names must be capitalized

The current list of supported Programs is in the device attribute programsList (list of Strings) - this is dynamic and will contain any custom program names as well as the default ones. The holdType must be the valid string from the Ecobee API documentation ("indefinite","nextTransition,"holdHours") - if null, uses the configured default from the device, Ecobee(Connect) or the thermostat itself (using that precedence). If holdHours, hours defaults to 2, can be any positive whole number (1 --> n).

Resume currently scheduled program


Changing Modes

setThermostatMode("auto") // "auto", "heat", "cool", "auxHeat", "emergency", "off"

The supported list of modes is in the device attribute supportedThermostatModes and will reflect only the configured equipment (i.e. no "cool" if the system is heat only).

Changing Fan Modes

fanCirculate() // Sets fanMinInTime=20, fan will circulate even if Mode = off
fanOff() // Sets fanMinOnTime=0, same as auto unless Mode == off
setThermostatFanMode("auto","indefinite","") // "auto","on","circulate","off"
setFanMinOnTime(20) // 0-55 minutes

The supported list of fan modes is in the device attribute supportedThermostatFanModes.

_**NOTE:** only Mode changes will work while the thermostat is in Vacation mode; call cancelVacation() to cancel current vacation._