[2.5.0.159] Ecobee ThermostatMode buggy/broken behaviour in HomeKit Controller Integration vs Ecobee Integration [C8-Pro]

Recently migrated my Ecobee thermostats from the built-in integration "Ecobee Integration" (cloud) to the built-in "HomeKit Controller Integration" (homekit), and noticed some incompatible behavior in basic automation.

One of my automations uses setThermostatMode to turn the thermostat "off", and to restore the prior mode (rn, "cool"), when Windows are opened/closed.

In the migration from the [cloud API] Ecobee Integration to the HomeKit Controller Integration, there's a change in behavior of this API.

In the cloud-integration

It sets the HE Device State, and the Thermostat physically switches to "off" or "cool" (:snowflake:)

In the homekit-integration

In addition to setting the HE Device State, when switching to "cool", it also establishes a temporary override/hold of the temperature of the Thermostat.

I wasn't expecting this change in behaviour in the migration, esp since Hold-Setpoints seem to be being created during the cut-back to "Cool" Mode.

To reproduce

a) Have both the built-in Ecobee integrations installed (for comparison)
In HE, the Device UI will look something like:

b) Have the Physical Ecobee thermostats initially setup to "Cool"

c) On the Hubitat Device UI for the cloud-integration:

  • press the [Off] Button and watch the thermostat change to "OFF"
  • press the [Cool] Button and watch the thermostat change to "Cool" (snowflake)

No other changes will be observed on any of the Physical Ecobee thermostat, the Ecobee iOS App or the Hubitat Device UI.

d) Repeat the above on the Hubitat Device UI for the homekit-integration
Observe the other things that get changed by using setThermostatMode(cool):

  • the Physical Ecobee Thermostat will now show a local temperature override (eg. until the next Scheduled comfort setting change)

  • the Ecobee iOS App UI will also show the local temperature override (changes to Cooling Setpoint, until the next Scheduled comfort setting change)

  • and the Hubitat Device UI will show different setpoints (and Cooling is actually triggered, given the change in Cooling Setpoint)


)

Both my thermostats are Ecobee Smart Thermostat Premium models, Firmware version 4.10.7.44

forgot to mention, with the HomeKit-integration, each time the setThermostatMode(cool) is invoked, you'll also get:

ecobee Alert: HomeKit Set Point Out of Range

[User] you have an alert message from ecobee for thermostat: Upstairs ([EcobeeID]):

A HomeKit desired temperature request of 60 will cause your equipment to run excessively and may damage it. To protect your equipment, we have changed the desired temperature to 60. To change the permissible range, tap Menu > Settings > Preferences > Cooling range

  • each Physical Ecobee Thermostat will have a dialog on it, with similar messaging

  • The AC will turn on (due to the 60F(!) setpoint established)

At this point, I strongly recommend:
a) avoid changing the ThermostatMode via the HE/Built-in Homekit integration OR;
b) stay on the Ecobee Integration (Cloud) OR;

In the meantime, I may trial/cutover using @ramset's Ecobee No Cloud Thermostat (Local) app.

I'm using his Local Ecobee Helpers for it's Open-Contact Pause functionality so I'm part way there. I don't anticipate he was seeing these issues (the Helpers directly make these calls already)