Ecobee 3 and Homekit - Thermostat Occupancy stuck in "Occupied"

I installed a new instance of Home Assistant last week to receive events from a Ecobee Thermostat locally vs. calling to their cloud services. Twice now I have seen only the thermostats status of occupancy being stuck “on”. The remote sensors don’t seem to have this issue. I have verified via the API and the Ecobee web portal that the status of the Thermostat during those periods was unoccupied.

Has anyone else seen this behavior?

Here is the timeline, top is Ecobee’s site and bottom is Home assistant:

2 Likes

This happens to me as I’ve been trying to move towards the local polling constantly, sometimes the homekit thermostat sensors are stuck for days until I unplug the thermostat. Since ecobee is no longer offering developer accounts this seems like an issue.

The top bar is my thermostat via ecobee integration
middle is thermostat via homekit
bottom is the ecobee smart sensor (same spot for testing) via homekit

Did you ever identify anything to fix the problem?

I added a polling item that seems to have reduce the occurrence of the issue. Where I used to get the stuck sensor every other day it seems to only happen once a month now.:

This one seemed more reliable to refresh the “device” level

alias: Thermostat Refresh
description: ""
trigger:
  - platform: time_pattern
    minutes: "*"
    hours: "*"
    seconds: "5"
condition: []
action:
  - service: homeassistant.update_entity
    target:
      device_id:
        - 470fa7cbf7a733a11e14b7481147b8d8
        - 6f8800ba8c7e5544c3d124d8c048bc18
        - 8f1d348dff1ba458959a391a6d259503
        - dcafa62ec824f5181b309712e2fff803
        - 39f7a8231846e6688bf6555991583f53
        - 239d2a851a27019ab96dd982940d3b5b
        - 6097bd2016754d285bf932db32309404
        - 4f62cac1b959405d4f18f2d7131151fe
    data: {}
mode: single

You can also try at the entity level:

alias: New automation
description: ""
trigger:
  - platform: time_pattern
    seconds: "16"
condition: []
action:
  - service: homeassistant.update_entity
    target:
      entity_id:
        - binary_sensor.home_occupancy
        - binary_sensor.office_occupancy
        - binary_sensor.kitchen_occupancy
        - binary_sensor.dining_room_occupancy
        - binary_sensor.living_room_occupancy
        - binary_sensor.guest_bedroom_occupancy
        - binary_sensor.master_bedroom_occupancy
        - binary_sensor.michael_bedroom_occupancy
        - binary_sensor.stephanie_bedroom_occupancy
    data: {}
mode: single
1 Like

Thanks for your reply, I tried replicating your script but I seem to still have the same issues as before…

I’ll try and post back if I find something that works.

Darn, I was hoping that would be more of a universal solution, but it appears otherwise.