Quick Answer
Go to Settings → Devices & Services → Add Integration → ecobee in Home Assistant. Authorise via ecobee's website. HA creates climate, temperature, humidity, and occupancy entities for your thermostat and SmartSensors. The integration polls ecobee's cloud every ~3 minutes — it works great but requires internet connectivity.
What You Need
- ecobee SmartThermostat (any model)
- Home Assistant instance (any installation type)
- ecobee account (free — created during thermostat setup)
- Working internet connection on HA server
Contents
ecobee HA Integration Overview
The ecobee integration in Home Assistant communicates with ecobee's cloud API using OAuth2 authentication. HA polls the ecobee API every 3 minutes to get current thermostat state — temperature, setpoint, HVAC mode, fan state, and SmartSensor readings. Commands (set temperature, change mode) are sent immediately to the API and typically applied to the thermostat within seconds.
This is a cloud-polling integration, not a local one. The ecobee thermostat doesn't expose a local API — all control goes through ecobee's servers. This means:
- Internet required for HA to control the thermostat
- ~3-minute lag for state changes to reflect in HA (the thermostat responds faster to direct commands)
- If ecobee's API changes or the company changes terms, the integration may break
In practice, ecobee's API has been stable for years and the HA integration is well-maintained as a core integration — not a community add-on.
Step-by-Step Setup
- In Home Assistant, go to Settings → Devices & Services.
- Click + Add Integration and search for ecobee.
- Click ecobee to begin the setup wizard.
- HA will display an API key and prompt you to add an API application on ecobee's portal. Open ecobee.com Developer Portal → My Apps → Add Application. Enter a name and the PIN shown in HA.
- Back in HA, click Submit after authorising the application.
- HA completes the OAuth flow and begins polling your thermostat.
If you're running HA behind a VPN or in a restrictive network environment, ensure your HA instance can reach api.ecobee.com over HTTPS (port 443).
What Entities Are Created
After successful setup, HA creates the following entities for each ecobee thermostat:
Climate Entity
climate.ecobee_[thermostat_name]— main thermostat control entity- Attributes: current temperature, target temperature (heat setpoint, cool setpoint), HVAC mode (heat/cool/auto/off), fan mode (auto/on)
- Supports:
climate.set_temperature,climate.set_hvac_mode,climate.set_fan_mode
Sensor Entities (Thermostat)
sensor.ecobee_[name]_temperature— indoor temperature at the thermostatsensor.ecobee_[name]_humidity— indoor humidity at the thermostat
SmartSensor Entities (if paired)
Each ecobee SmartSensor creates:
sensor.ecobee_[sensor_name]_temperature— room temperaturebinary_sensor.ecobee_[sensor_name]_occupancy— room occupancy (on/off)
Additional Entities
switch.ecobee_aux_heat— auxiliary heat control (heat pump systems)sensor.ecobee_hvac_mode— current HVAC mode as sensor (useful for history graphs)
Automation: Away Mode When Everyone Leaves
This automation switches the ecobee to away mode when all HA tracked persons leave home, with a 10-minute grace period to prevent triggering on brief departures.
alias: "ecobee - away mode on departure"
description: "Set ecobee to 18°C away setpoint when everyone leaves"
trigger:
- platform: state
entity_id: group.all_persons
to: "not_home"
for:
minutes: 10
action:
- service: climate.set_temperature
target:
entity_id: climate.ecobee_main_floor
data:
hvac_mode: heat
temperature: 18
- service: notify.mobile_app_your_phone
data:
title: "🏠 House empty"
message: "Thermostat set to 18°C away mode."
mode: single
Automation: Scheduled Temperature
While ecobee has its own built-in scheduler, you can override it from HA. This sets the temperature at 07:00 on weekday mornings when the house has been cold overnight.
alias: "ecobee - weekday morning warmup"
description: "Pre-heat to 21°C at 07:00 on weekdays"
trigger:
- platform: time
at: "07:00:00"
condition:
- condition: time
weekday:
- mon
- tue
- wed
- thu
- fri
- condition: numeric_state
entity_id: sensor.ecobee_main_floor_temperature
below: 21
action:
- service: climate.set_temperature
target:
entity_id: climate.ecobee_main_floor
data:
hvac_mode: heat
temperature: 21
mode: single
Combining with HA Presence Detection
Pairing ecobee control with HA presence detection gives you smarter comfort control than ecobee's occupancy-based features alone. HA presence can use:
- HA Companion app: GPS location from your phone (most accurate for "home/away" distinction)
- Device tracker: Network-based presence detection via router or Bluetooth
- Person entities: HA groups multiple device trackers per person for reliable presence
A combined automation: when person arrives home and ecobee temperature is below comfort setpoint, set temperature and notify. When last person leaves, drop to away mode. Use ecobee's SmartSensor occupancy for room-level automations (e.g., turn on the bedroom radiator when occupancy is detected in the bedroom sensor):
alias: "ecobee SmartSensor - bedroom occupancy boost"
trigger:
- platform: state
entity_id: binary_sensor.ecobee_bedroom_sensor_occupancy
to: "on"
condition:
- condition: numeric_state
entity_id: sensor.ecobee_bedroom_sensor_temperature
below: 20
- condition: time
after: "21:00:00"
before: "08:00:00"
action:
- service: climate.set_temperature
target:
entity_id: climate.ecobee_main_floor
data:
temperature: 20
hvac_mode: heat
mode: single
Limitations
- Cloud-dependent: No internet = no HA control. The thermostat continues its own schedule, but HA can't override it.
- Polling, not push: HA checks the ecobee API every ~3 minutes. State changes at the thermostat take up to 3 minutes to appear in HA. Commands from HA apply within seconds.
- No local API: ecobee has never published a LAN-accessible API. All communication goes through ecobee.com.
- Rate limiting: The ecobee API has rate limits. HA's standard polling respects these, but running additional API calls from custom automations or scripts can hit limits.
- ecobee account required: You cannot set up the HA integration without an active ecobee account — the account is needed for OAuth authorisation.
Local Control Workarounds
True local control of ecobee doesn't exist officially. Some workarounds used by the community:
- Homebridge with homebridge-ecobee: Homebridge can expose ecobee to Apple HomeKit via a local bridge, but the Homebridge plugin still communicates with ecobee's cloud — it's not local in the true sense.
- Switch to a Z-Wave thermostat: If local control is a hard requirement, replace the ecobee with a Honeywell T6 Pro Z-Wave or similar. You lose ecobee's features but gain 100% local operation.
- HA as fallback: Configure HA to cache the last known thermostat state and use a template climate entity as a fallback when ecobee is unreachable. This won't actually control the thermostat without cloud, but prevents HA automations from erroring.
Bottom Line
The ecobee HA integration is one of the easiest thermostat integrations to set up — 5 minutes, no YAML, native GUI. You get full climate control, SmartSensor temperature and occupancy, and all the HA automation capabilities. The cloud dependency is a real trade-off, but for most users the reliability of ecobee's API and the quality of the integration make it a non-issue. If you need true offline control, look at Z-Wave thermostats instead.
FAQ
Does the ecobee integration work with HA automations while I'm away from home?
Yes — HA automations trigger based on HA state, not your physical location. As long as your HA server has internet access, it can query ecobee's API and send commands whether you're home or on the other side of the world.
Will my ecobee schedule still work if HA goes down?
Yes. ecobee runs its own on-device schedule completely independently of HA. If your HA server or internet goes down, ecobee continues heating/cooling according to its programmed schedule.
Can I see ecobee energy usage data in HA?
The integration doesn't currently expose runtime hours or energy consumption data as entities. For energy analysis, use ecobee's app (Home Energy Reports) or the ecobee web portal. HA can infer heating runtime by monitoring the HVAC mode sensor state duration.
The ecobee integration shows "unavailable" in HA — how do I fix it?
Usually an expired OAuth token. Go to Settings → Devices & Services → ecobee → Reconfigure and re-authorise the connection. If that doesn't work, delete the integration and set it up fresh — this takes less than 5 minutes and doesn't affect your ecobee settings.
Can I use ecobee SmartSensors as general temperature sensors in HA?
Yes — each SmartSensor creates a temperature sensor entity. You can use these in any HA automation or dashboard card just like any other temperature sensor. They poll at the same 3-minute interval as the thermostat state.
SmartWired participates in the Amazon Associates Programme. We may earn a commission from qualifying purchases at no extra cost to you.