Ecobee setting incorrect temps

I was previously using an Ecobee 4 Smart thermostat with the integration with no issues. Maybe 6 months ago I switched over to using it via the HomeKit controller which as advertised in the forums yields much faster response times. Everything was fine until a few weeks ago, and now suddenly there is all sorts of weirdness:

  • primarily, switching from cool to heat_cool frequently results in a temp range of 69 to 74 regardless of the target temps specified. This happens maybe two thirds of the time though sometimes it gets it right. When it gets the range wrong, HA persists indefinitely in thinking that the temps that were requested are actually how the thermostat is set, but the thermostat and Ecobee app show the real settings.
  • switching temps while staying in heat_cool results in random temp settings that have nothing to do with the target temps.

So, I force reinstalled HA which changed nothing. Then I reinstalled the Ecobee integration and, using it, commands are frequently ignored. For a while I was getting an error like this:
Missing valid arguments for set_temperature...
which now seems to have gone away. Turning on debug for climate and ecobee didn’t add anything helpful to the logs.

Does this sound to anyone like a bad thermostat? I can’t figure it out

I’ve got the exact same behavior only the “default” range it keeps setting is 60-65. All other behaviors match your use case exactly.

Did you ever figure this out? I’m considering switching to the cloud integration or re-pairing the homekit integration to see if that helps.

I gave up and went back to the cloud integration which is working ok. I haven’t seen anything about this in the release notes but I don’t always read everything… maybe it’s been fixed

Appreciate the response, I ended up just switching my automations over to use either heat or cool, it seems to work fine in those modes. The bug seems to be specific to setting a range using heat_cool mode. Not ideal but I can live with it :man_shrugging:

I’m having the exact same issue, but in my case, it happened when I switched from heat to cool. I’ve never used heat_cool mode. The behavior is exactly as is described in the OP.

When the temperature is set to 28 degrees in cool mode (vacation setting, no one is home), some of the time, it registers correctly, but other times, it’ll switch to 29.7. I don’t know why it chooses that temperature, but it’s always 29.7. If I set it to a different temperature, such as 25.5, it always goes to 27.2. It seems like it’s always adding 1.7 degrees to the temperature I’m setting when it gets it wrong.

Sometimes it does get it right, but I can’t tell why or under what conditions. Also, as the OP mentions, the temperature in the Ecobee app and in the thermostat itself is correct. It’s only incorrect in Home Assistant.

Did you guys ever figure out a solution? Cloud integration is no longer possible, so I can’t even try that route.

It looks to me like the cloud version is still available, but I ultimately solved the problem by using presets.

hvac_preset_sleep:
  sequence:
  - service: climate.set_hvac_mode
    target:
      entity_id: climate.ecobee4
    data:
      hvac_mode: heat_cool
  - service: climate.set_preset_mode
    target:
      entity_id: climate.ecobee4
    data:
      preset_mode: sleep
1 Like

Thanks! I used presets initially, but the reason I switched is because afaik, you are only able to set the built in presets. Any presets you add in the Ecobee app cannot be set via Home Assistant. Is that still the case?

No, that script is setting the presets in the cloud: I adjust the ranges in the Ecobee app. Just make sure you name them the same way. I think for a while there were issues with whether or not you capitalized the first letter, but for me it works fine in all lower case

1 Like

Just wanted to update in case anyone else has this issue in the future. For me, this issue was resolved by disabling Eco+. It seems like my power utility was changing my temp during high demand times (something I signed up for). Opting out and disabling Eco+ altogether fixed the issue entirely!