Setting Ecobee to "Away" for undefined time and ignore schedule while away

I currently have an automation which sets my three Ecobee thermostats to Away mode when everyone leaves the house, and then resumes their schedules once anyone returns home.

This mostly works fine, except for when the Ecobee’s are set to Away, they only are set to be Away until the next scheduled change happens, and then they resume their schedule, even when HA as a whole is still in the Away mode (based on our location).

Outside of the automations, when I manually change the modes via the thermostat or the Ecobee app, each time it asks me how long I want to change the mode for: 2 hours, 4 hours, until the next schedule change, or indefinitely.

It seems that with my HA automation, it’s automatically choosing “Until the next schedule change”, when I want it to choose "Indefinitely’.

For instance, I go pick up my kids at 3:45, and I have a scheduled temperature change at 4pm to turn the kids rooms heat on for when we get home.

The automations set to “Away” when I leave the house at 3:45, however at 4pm the temperature is already turned back on to the “Home from school” schedule, even though I don’t get back home until 4:15. This 15 minutes isn’t a big deal, but sometimes we don’t go directly home from school, we go out to eat or something for a few hours, and in those cases I wouldn’t want it to turn back on until we returned home.

So I guess the question is is there any way to make the “Set to away” automation set to “Away - Indefinitely”, and ignore the schedule until I return home?

I’ve tinkered with turning the system “Off” instead of just to away, and while this does obey the rules and work as I expect it, I have pets at home and I need it to actually turn to “Away”, instead of fully off, so there is a minimum temperature maintained for the pets.

This is my leaving home automation, which works as expected aside from holding “Away” mode:

alias: Leave Home
sequence:
  - service: scene.turn_on
    target:
      entity_id: scene.leaving_home
    metadata: {}
    alias: Activate lights scene Leaving Home
  - device_id: 123xxx
    domain: climate
    entity_id: climate.upstairs_thermostat
    type: set_preset_mode
    preset_mode: Away
    alias: Set Upstairs Thermostat to Away
  - device_id: 456xxx
    domain: climate
    entity_id: climate.downstairs_thermostat
    type: set_preset_mode
    preset_mode: Away
    alias: Set Downstairs Thermostat to Away
  - device_id: 789xxx
    domain: climate
    entity_id: climate.basement_thermostat
    type: set_preset_mode
    preset_mode: Away
    alias: Set Basement Thermostat to Away
  - service: cover.close_cover
    data: {}
    target:
      area_id: garage
    alias: Close garage doors
  - service: notify.notify
    data:
      message: >-
        All lights have been turned off, and the climate control has been set to
        “Away”
      title: Everyone has left home
    alias: "Notifications: Everyone has left home"
mode: single
icon: mdi:home-export-outline

And my returning home automation (which works fine):

alias: Arrive Home
sequence:
  - service: scene.turn_on
    target:
      entity_id: scene.arriving_home
    metadata: {}
    alias: Activate lights scene Arriving Home
  - service: ecobee.resume_program
    data:
      entity_id: climate.upstairs_thermostat
      resume_all: true
    alias: Resume schedule on Upstairs Thermostat
  - service: ecobee.resume_program
    data:
      entity_id: climate.downstairs_thermostat
      resume_all: true
    alias: Resume schedule on Downstairs Thermostat
  - service: ecobee.resume_program
    data:
      entity_id: climate.basement_thermostat
    alias: Resume schedule on Basement Thermostat
  - service: notify.notify
    data:
      title: Someone has arrived home
      message: >-
        A few lights have been turned on, and the climate control has resumed
        its schedule
    alias: "Notifications: Someone has arrived home"
mode: single
icon: mdi:home-import-outline

There’s a setting in your Ecobee app (open a thermostat > three horizontal bars icon > “Device Settings”; believe it’s also available on the device itself) where you can change “Hold Duration” to “Until I change it”

I personally use the Homekit integration for my Ecobee, setting ‘away’ mode when I leave and then ‘resuming’ when I return home, which is typically after the next scheduled change.

  - alias: set thermostat to away
    service: select.select_option
    data:
      option: away
      entity_id: select.thermostat_current_mode
  - service: button.press
    data:
      entity_id: button.thermostat_clear_hold
    alias: Clear hold from thermostat
2 Likes

Thanks!

I guess I had that set to the choice “Decide at time of change”, which I like for manually adjusting it on the thermostat, but I’d rather have the automations so I’ll try this out.

I did initially use HomeKit, however there is / was a known bug (I spoke with their customer service and they confirmed it) where the Ecobee HomeKit automations only work for one thermostat, so it was only changing one of my three each time.

Thanks xiport for the tip on setting the Ecobee config to “Until I change it” and then using the “clear_hold” when returing home. This solves the issue I had with setting ‘away’ mode on my Ecobee3 Lite and it going back to next shedule while I was still away. Now my HA automation has proper control.