The difference of an Ecobee thermostat integration via the cloud vs local

I believe you won’t be able to get a decimal value from the HomeKit integration. I’m using the HA integration and have tenth of a degree temperature sensor resolution in °F. Somehow, things like this follow the rule of conservation of misery.

If you or anyone else is looking at the ecobee3 lite version, I cannot in good conscience recommend it. I have two of them and have experienced deadlock in both units resulting from a momentary power outage. I had to unplug them from the mount and plug them back in to restore operation. The concern would be if you’re out of town when it’s cold enough to freeze your water pipes.

2 Likes

Ouch. That’s exactly what I bought. :frowning: We get momentary outages all the time.

I guess I’ll play with it for a week or so. If I absolutely love it, maybe I’ll figure out a UPS arrangement for the furnace. If not, I’ll return it. I’m already returning my previous thermostat, so I’m getting used to the process. Sigh.

paul

Regarding the integer/fraction issue: This was addressed, and then the change was reverted, in the spring of 2021, and the topic analyzed in #51536.

The crux of the biscuit is that too many F-to-C and C-to-F conversions on the way from the device to Homekit Controller to HA to the user causes a lot of rounding and truncation error, and in general breaks things badly.

The solution, proposed and implemented in #51536 (above) is to leave the climate entity data in whole numbers, and create a separate “raw” sensor which contains the tenths. This sensor is named (for me, since I named my thermostat “ecobee”) “sensor.ecobee_current_temperature”, with a friendly name of “ecobee Current Temperature” (note caps). This sensor reports the fractional equivalent of the “current_temperature” attribute of my “climate.ecobee” entity.

“sensor.ecobee_current_temperature” indeed has a decimal fraction. That’s the good news.

The bad news is that the data is stale, from about 20 hours ago, when I was first installing and exploring the ecobee from within HA. The integer value in climate.ecobee is fine, and updating. So now I need to investigate that, and how to get the sensor functioning again.

Edit: I was able to get ecobee.current_temperature working again by choosing it in the Settings–>Entities tab, then checking it’s box to first disable, then reenable, the sensor. It’s working now, so I have the tenths I wanted.

3 Likes

Is there any way to tell the Ecobee which temperature sensors to consider with the Homekit integration? As far as I know, the only way to do this is with Comfort Settings, and as I understand it, Homekit can only use Home/Away/Sleep.

Here’s my use case: when I’m working from home, I’d like the office temperature to be considered. But if I’m not, I’d like to leave it out. (It’s in a somewhat colder corner of the house, unfortunately, so including the sensor there pulls the overall average down.) Of course, I could ignore this and just make the set point for when I’m there several degrees higher and it’ll effectively do the same thing…

If it happened consistently, it might be easier to come up with the proper fix. The fact that thermostats around here are powered with 24 VAC makes me consider putting a bipolar transient voltage suppressor across 24 AC “hot” and common. Latch-up is a thing with CMOS technology.

We can go on with this, but it’s somewhat off topic.

1 Like

These things have a battery, right? Which makes it especially odd. Plus, it means “open it up and put in a bigger capacitor” probably isn’t the answer. Even if it would fit, which it probably wouldn’t.

Have you seen this thread on reddit? Seems to happen on the Ecobee 4 as well.

Is there anything “upstream” from your thermostat’s “R” connection that could interrupt power? A furnace or boiler safety switch that might not be enabled right after a power glitch? Mine is downstream from the low-water cutoff in my steam boiler, as an example. I’m not sure how this would cause the issue, but it’s something to consider.

There is nothing user serviceable. There are small torx screws holding it together. I assume it has nonvolatile memory to store state information.

Yes, there are a fair number of reports on Reddit, but most apply to the 3 lite. The one you referenced lends some credibility to the idea of using a voltage transient suppressor. After all, there is a 24-volt transformer somewhere, and interrupting voltage suddenly can cause a back-EMF transient.

You might want to call the ecobee support folks, verify the issue has been addressed in the current production run, and make sure your unit has the fix. I’m pretty sure they’re aware of the history. If they don’t own up to the issue, that itself says something.

Apologies to the OP for drifting off topic.

2 Likes

I was just trying to set up an automation for fan’s current operation (is the fan running or not) and noticed that the x_fan_mode entity shows: “This entity is no longer being provided by the homekit_controller integration. If the entity is no longer in use, delete it in settings.”

Strange, I’ve never had this problem. I have had 4 of these installed for a few years, power outages are somewhat rare (knock on wood), but they do happen a few times a year usually.

FYI: The HA integration has the following attributes available. Since they are polled from the cloud, they’re a bit slow to populate.

image

hvac_modes: heat_cool, heat, cool, off
min_temp: 44.6
max_temp: 95
target_temp_step: 0.5
fan_modes: auto, on
preset_modes: Away, Home, Sleep
current_temperature: 72.8
temperature: 73.5
target_temp_high: null
target_temp_low: null
current_humidity: 28
fan_mode: auto
hvac_action: heating
preset_mode: temp
aux_heat: off
fan: on
climate_mode: Home
equipment_running: fan,heatPump
fan_min_on_time: 0
friendly_name: Home
supported_features: 91

Thanks for sharing that! That’s good to know in case I need it in the future. I was looking for near real-time access to the fan status, it’s too bad it’s not available with the HomeKit integration.

3 Likes

I have 6 Ecobees, 2 of which are the 3’s (lite and regular). The 3’s exhibit the behavior @pocket refers to above. They often fail in momentary loss of power situations. Physical intervention is required to restore functionality. Luckily I’ve not been traveling when it has occurred in winter.

1 Like

Anyone know if the homekit integration exposes when the thermostat is running recovery?

In case this may be of interest to anyone, I have a dual-fuel hybrid HVAC system consisting of an electric heat pump and a gas furnace. To run the furnace, I need to switch to Ecobee’s auxiliary mode, which neither the built-in cloud-based integration nor the HomeKit bridge exposes. However, I did find that the switch to auxiliary mode can be done using Ecobee’s integration for SmartThings.

I then set up a virtual switch on SmartThings, which I have as an integration in Home Assistant. I can now control the switch to the auxiliary gas furnace through Home Assistant. Though cloud-based, controls performed through SmartThings happen nearly immediately, compared to the delay with the HA integration. I can also create a Home Assistant automation so that all heating is performed by the gas furnace and all cooling is done by heat pump, which would otherwise be impossible using the Ecobee thermostat by itself. The Lovelace card then conditionally switches depending on which of the two HVAC sources (furnace or heat pump) are operating.

Screenshot 2023-08-24 185858

Screenshot 2023-08-24 185926


type: custom:stack-in-card
mode: vertical
cards:
  - type: conditional
    conditions:
      - entity: switch.vedge_switch_15
        state: 'off'
    card:
      type: custom:stack-in-card
      mode: vertical
      cards:
        - type: custom:simple-thermostat
          entity: climate.my_ecobee
          layout:
            step: column
            mode:
              headings: false
          header:
            name: House Thermostat
            icon: null
          decimals: '0'
          step_size: '1'
          control:
            hvac:
              'off':
                name: 'Off'
              heat:
                name: Heat
              cool:
                name: Cool
              heat_cool:
                name: Auto
            preset: true
          sensors:
            - entity: sensor.my_ecobee_humidity
              name: Humidity (inside)
            - entity: sensor.openweathermap_humidity
              name: Humidity (outside)
            - attribute: aux_heat
              name: Aux Furnace
            - attribute: equipment_running
              name: Equipment Running
          setpoints:
            target_temp_low: null
            target_temp_high: null
          fallback: '-'
        - type: horizontal-stack
          cards:
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:sun-snowflake-variant
                  icon_color: blue
                  tap_action:
                    action: call-service
                    service: switch.turn_off
                    target:
                      entity_id: switch.vedge_switch_15
                    data: {}
                  hold_action:
                    action: more-info
                  content: Electric Heat Pump/Cooling Engaged
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:fire
                  icon_color: '#999DA0'
                  tap_action:
                    action: call-service
                    service: switch.turn_on
                    target:
                      entity_id: switch.vedge_switch_15
                    data: {}
                  hold_action:
                    action: more-info
                  content: Switch to Gas Auxilliary Furnace-Only
  - type: conditional
    conditions:
      - entity: switch.vedge_switch_15
        state_not: 'off'
    card:
      type: custom:stack-in-card
      mode: vertical
      cards:
        - type: custom:simple-thermostat
          entity: climate.my_ecobee
          layout:
            step: column
            mode:
              headings: false
          header:
            name: House Thermostat
            icon: null
          decimals: '0'
          step_size: '1'
          control:
            hvac:
              'off':
                name: 'Off'
              heat:
                name: Heat
              cool: false
              heat_cool: false
            preset: true
          sensors:
            - entity: sensor.my_ecobee_humidity
              name: Humidity (inside)
            - entity: sensor.openweathermap_humidity
              name: Humidity (outside)
            - attribute: aux_heat
              name: Aux Furnace
            - attribute: equipment_running
              name: Equipment Running
          fallback: '-'
        - type: horizontal-stack
          cards:
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:sun-snowflake-variant
                  icon_color: '#999DA0'
                  tap_action:
                    action: call-service
                    service: switch.turn_off
                    target:
                      entity_id: switch.vedge_switch_15
                    data: {}
                  hold_action:
                    action: more-info
                  content: Switch to Electric Heat Pump/Cooling
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:fire
                  icon_color: orange
                  tap_action:
                    action: call-service
                    service: switch.turn_on
                    target:
                      entity_id: switch.vedge_switch_15
                    data: {}
                  hold_action:
                    action: more-info
                  content: Gas Auxilliary Furnace-Only Engaged
4 Likes

might be off topic, but I am curious how your Home, Away, Sleep buttons work…

I have tried to use the default drop down in the thermostat card, and even tried to write some custom scripts to change it, but I can not figure out how to get HA to report the correct state after I change it via HA.

I can get HA to change the thermostat setting, but if I close the app and reopen it, the state always says Home unless I change the mode directly at the Thermostat. Frustrating me. I have searched and others are having a similar issue, but I have not seen a solution yet.

I should mention that I’m using the HomeKit integration for Ecobee. I found that’s the only one that will work with my system and allow me to keep the thermostat calls local. I am not partial to it if there’s another local solution though.

With my setup above, modes can be switched in HA and seem to be stable when I close the app. It sometimes switches to home by itself but that seems to be automatic due to the presence sensor changing to occupied when, in fact, it detects a person. So, overall, it seems to be working as it should (with the HA built in Ecobee integration and climate entity and a custom simple thermostat card, available through HACS. SmartThings is only used to provide a virtual switch to change between the primary (heat pump) and auxiliary source (gas furnace)).

I did the same as you but today I see the item:

Climate: Turn on/off auxiliary heater’ on My ecobee

Under call for service.

I do have it running as of now

I’m not sure I understand. Could please post a screenshot? Thanks

1 Like

Thanks! I hadn’t seen that before. It shows up for me, as well. I’ll check it out. I’d prefer to not have to rely on SmartThings to gain control of the aux heat.

So, I created a binary sensor:

binary_sensor:
  - platform: template
    sensors:
      aux_heat:
        friendly_name: "Aux heat sensor"
        value_template: '{{states.climate.my_ecobee.attributes.aux_heat}}'

And then I updated my card:

type: custom:stack-in-card
mode: vertical
cards:
  - type: conditional
    conditions:
      - entity: binary_sensor.aux_heat
        state: 'off'
    card:
      type: custom:stack-in-card
      mode: vertical
      cards:
        - type: custom:simple-thermostat
          entity: climate.my_ecobee
          style: |
            ha-card {
              --st-font-size-xl: 28px;
              --st-font-size-m: 28px;       
            }          
          layout:
            step: column
            mode:
              headings: false
          header:
            name: House Thermostat
            icon: null
          decimals: '0'
          step_size: '1'
          control:
            hvac:
              'off':
                name: 'Off'
              heat:
                name: Heat
              cool:
                name: Cool
              heat_cool:
                name: Auto
            preset: true
          sensors:
            - entity: sensor.my_ecobee_humidity
              name: Humidity (House)
            - entity: sensor.openweathermap_humidity
              name: Humidity (Outside)
            - attribute: aux_heat
              name: Aux Furnace
            - attribute: equipment_running
              name: Equipment Running
          fallback: 72°F
        - type: horizontal-stack
          cards:
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:sun-snowflake-variant
                  icon_color: blue
                  tap_action:
                    action: call-service
                    service: climate.set_aux_heat
                    target:
                      device_id: 1a6f7a9ed590bf102a162461492c875c
                    data:
                      aux_heat: false
                  hold_action:
                    action: more-info
                  content: Electric Heat Pump/Cooling Engaged
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:fire
                  icon_color: '#999DA0'
                  tap_action:
                    action: call-service
                    service: climate.set_aux_heat
                    target:
                      device_id: 1a6f7a9ed590bf102a162461492c875c
                    data:
                      aux_heat: true
                  hold_action:
                    action: more-info
                  content: Switch to Gas Auxilliary Furnace-Only
  - type: conditional
    conditions:
      - entity: binary_sensor.aux_heat
        state_not: 'off'
    card:
      type: custom:stack-in-card
      mode: vertical
      cards:
        - type: custom:simple-thermostat
          entity: climate.my_ecobee
          style: |
            ha-card {
              --st-font-size-xl: 28px;
              --st-font-size-m: 28px;       
            }            
          layout:
            step: column
            mode:
              headings: false
          header:
            name: House Thermostat
            icon: null
          decimals: '0'
          step_size: '1'
          control:
            hvac:
              'off':
                name: 'Off'
              heat:
                name: Heat
              cool: false
              heat_cool: false
            preset: true
          sensors:
            - entity: sensor.my_ecobee_humidity
              name: Humidity (House)
            - entity: sensor.openweathermap_humidity
              name: Humidity (Outside)
            - attribute: aux_heat
              name: Aux Furnace
            - attribute: equipment_running
              name: Equipment Running
          fallback: 68°F
        - type: horizontal-stack
          cards:
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:sun-snowflake-variant
                  icon_color: '#999DA0'
                  tap_action:
                    action: call-service
                    service: climate.set_aux_heat
                    target:
                      device_id: 1a6f7a9ed590bf102a162461492c875c
                    data:
                      aux_heat: false
                  hold_action:
                    action: more-info
                  content: Switch to Electric Heat Pump/Cooling
            - type: custom:mushroom-chips-card
              chips:
                - type: template
                  entity: switch.vedge_switch_15
                  double_tap_action:
                    action: none
                  icon: mdi:fire
                  icon_color: orange
                  tap_action:
                    action: call-service
                    service: climate.set_aux_heat
                    target:
                      device_id: 1a6f7a9ed590bf102a162461492c875c
                    data:
                      aux_heat: true
                  hold_action:
                    action: more-info
                  content: Gas Auxilliary Furnace-Only Engaged

Now I’m no longer reliant on SmartThings integration to switch to aux heat.

Thanks again.