Direct answer: For Home Assistant 2026.3 and later, new Ecobee setup no longer requires obtaining a developer API key. Existing keys can continue working, but official documentation warns that revoking an existing key breaks that integration and requires removing the service from Home Assistant and setting it up again. Diagnose authentication before changing thermostat wiring, schedules, or HVAC settings.
Last reviewed: September 12, 2026. Applies to current Home Assistant installations using the official integration named below; menus can vary slightly by release and installation type.
Symptoms and scope
The Ecobee device may appear unavailable, stop updating temperature and occupancy, reject setpoint changes, or request reauthentication after an upgrade or account change. If the physical thermostat still controls heating and cooling normally, treat this first as an integration or cloud-authentication problem, not an HVAC hardware failure.
Prerequisites and evidence to preserve
Confirm the Home Assistant version is 2026.3 or later, the thermostat works locally, and the Ecobee account can see the device. Record entity IDs, dashboards, automations, helpers, and any legacy API-key history before removal. Do not expose tokens, cookies, passwords, or developer keys in logs or support posts.
Likely causes
1. A legacy Ecobee developer key was revoked or its authorization changed.
2. The Ecobee account session requires reauthentication.
3. The integration is temporarily unable to reach the cloud service.
4. An entity ID or device mapping changed after re-setup.
5. The thermostat itself is offline, which is distinct from a Home Assistant-only integration failure.
Least-destructive diagnostic sequence
Step 1: Check the physical thermostat first. Confirm it has power, shows the expected equipment state, and can safely control the system. If the thermostat itself is blank or reports an HVAC fault, stop software troubleshooting and follow Ecobee or qualified HVAC guidance.
Step 2: Open the Ecobee integration entry and record its exact status and repair message. A reauthentication prompt is more specific than a generic unavailable entity and should be handled through the provided flow. With username-and-password setup, Home Assistant supports authenticator-app TOTP codes; push, SMS, and email MFA are not currently supported. A password change can invalidate the refresh token and trigger reauthentication.
Step 3: Review Home Assistant logs around the first failure for authentication, authorization, rate-limit, timeout, or connection messages. Redact account identifiers and secrets before sharing anything.
Step 4: If you knowingly revoked the old developer key, plan a controlled remove-and-add operation because the official documentation says the existing integration will fail. First inventory every automation and dashboard reference so they can be checked after setup.
Step 5: Before removal, export or capture important Home Assistant configuration references. Removing an integration should not erase thermostat schedules stored by Ecobee, but Home Assistant entity identifiers may be recreated differently.
Step 6: Use the current Ecobee add-integration flow rather than following old tutorials that require creating a developer key. Complete account authorization only in the legitimate account window.
Step 7: After setup, compare the new entity IDs with the saved inventory. Repair references deliberately instead of renaming multiple entities blindly. Test read-only sensor updates before sending setpoint or mode changes.
Step 8: Observe at least two normal polling cycles, then make a small safe temperature adjustment and reverse it. Confirm both Home Assistant and the thermostat show the same state.
Diagnostic asset: choose the next branch
Version decision: before 2026.3, older setup instructions may discuss developer keys; on 2026.3 and later, use the current account-linking flow. Existing legacy keys may continue, but a revoked key cannot be repaired by repeatedly reloading; inventory references, remove the failed service, and add it again.
Deeper checks when the first sequence does not solve it
Begin with observation rather than removal. In Settings, Devices & services, open the integration entry and compare the integration status with individual entity states. Write down exactly what is unavailable, what remains responsive, and when the change began. This boundary prevents a narrow entity problem from being treated as a complete integration failure.
Check Settings, System, Repairs before changing configuration. A repair notice can describe a migration, deprecated behavior, reauthentication requirement, or duplicate-device correction more accurately than a generic entity state. Read the notice fully and record its wording before dismissing or applying it.
Use the device’s own local controls or official app as a comparison, but interpret that test carefully. A working vendor app may use a cloud path while Home Assistant uses the local network; conversely, a local device may work while its cloud account is unavailable. The comparison narrows the path but does not by itself identify the fault.
Build a short timeline from router events, Home Assistant updates, integration reloads, firmware changes, power interruptions, account changes, and the first failed automation. Correlation is not proof, but a reliable timeline tells you which evidence to inspect and which unrelated changes to leave alone.
Inspect diagnostics without publishing secrets. Useful evidence includes exact timestamps, sanitized error classes, addresses within your private network when appropriate, firmware versions, integration versions, and whether failures are continuous or intermittent. Remove tokens, cookies, serial numbers, email addresses, coordinates, and encryption material.
Change one variable at a time. After each change, repeat the same test and record the result. Simultaneously restarting the router, Home Assistant, bridges, and devices destroys the evidence needed to learn which action mattered and makes recurrence harder to prevent.
Prefer reload over restart when the integration supports it. Prefer reconfigure over delete-and-add when the host or account changed. Prefer a DHCP reservation over hard-coding addresses independently in several places. These choices preserve registry relationships and provide a simpler rollback.
Treat factory reset as recovery, not diagnosis. Before any reset, document pairings, automations, scenes, dashboards, entity IDs, network assignments, encryption keys, and manufacturer-specific recovery requirements. If those cannot be preserved, escalate before resetting.
When service returns, verify both directions: Home Assistant should read fresh state from the device, and a safe command from Home Assistant should be reflected by the device. Also confirm that a physical or vendor-app change is reported back to Home Assistant.
Test the real workflow, not only the device page. Trigger a representative automation in a controlled way, inspect its trace, confirm conditions and targets, and restore the previous state. A device can be healthy while an automation still points to an old entity.
Check recurrence across a normal operating period. Include at least one integration refresh, a DHCP lease check, or the next expected sensor update. For battery equipment, allow for its documented reporting interval instead of assuming silence means failure.
Create a rollback note containing the former value, new value, change time, and verification result. If the change worsens availability or creates duplicate entities, restore the known-good value before trying the next hypothesis.
Escalate with a compact evidence bundle when the problem survives safe local checks: model, firmware, Home Assistant version, integration name, sanitized first error, network topology relevant to the path, steps already attempted, and the smallest reliable reproduction. This gives maintainers actionable information without exposing the household.
Prevent recurrence by documenting address reservations, account ownership, update practices, backup location, integration-specific dependencies, and recovery contacts. Review these notes after router, firmware, or Home Assistant changes rather than waiting for the next outage.
Avoid unsupported certainty. An unavailable state describes a communication result, not necessarily a failed device. Power, privacy controls, address changes, authentication, sleeping behavior, rate limits, firmware, and network policy can create similar symptoms, so evidence must select the branch.
If the problem began immediately after an update, read the official integration documentation and current release notes before downgrading. A migration or renamed entity may be expected. Downgrades can introduce database incompatibility and should never be the first response to a single unavailable entity.
If several unrelated integrations fail together, stop device-specific troubleshooting. Check Home Assistant host health, DNS, time synchronization, network interfaces, Bluetooth or radio adapters, and upstream internet only where the affected integrations require it. Shared failures usually have a shared dependency.
If only one entity fails while sibling entities from the same device remain current, inspect whether it is disabled, unsupported, conditionally exposed, asleep, or dependent on a specific feature. Re-pairing the entire device is disproportionate until those possibilities are excluded.
Verification checklist
Confirm the integration reports loaded, the affected entities have current timestamps, state changes travel in both directions, and the original automation or dashboard works with the expected entity. Repeat the test after a normal reload. Do not declare success from a single momentary update.
Check that no duplicate device or replacement entity appeared. If a new entity ID was created, compare it with automations, scripts, scenes, dashboards, voice-assistant exposure, and history before removing or renaming anything.
Rollback and recovery
If the latest change made the system worse, restore the recorded prior address, option, entity reference, or integration configuration. Reload once and retest. If rollback cannot restore the known-good state, stop making changes, preserve logs, and use the evidence bundle described above.
Safety and privacy warning
Heating and cooling equipment can be damaged by inappropriate rapid cycling or extreme setpoints. Do not alter wiring, compressor protection, installer settings, or equipment thresholds to solve an authentication error. Keep a manual way to control the thermostat while integration work is underway.
Prevention
Keep Home Assistant, the official integration, and device firmware within supported versions, but avoid changing all layers on the same day. Maintain a current backup, reserve stable network addresses where appropriate, label devices by MAC address, and review logs after planned maintenance.
Related Troubliq guides
Start with the Smart-Home Diagnostic Decision Tree, visit the category hub, and compare these related guides: home assistant automation not triggering, alexa devices integration unavailable home assistant, duplicate devices home assistant 2026 8 repair.
Sources
Primary source: Home Assistant Ecobee integration documentation. This guide synthesizes the official behavior into a conservative diagnostic order; it does not claim hands-on testing of every model or network.
Frequently asked diagnostic questions
Do I still need an Ecobee developer key?
For Home Assistant 2026.3 and later, the official integration documentation says a new developer API key is no longer required. Avoid obsolete setup guides that instruct you to create one.
What happens if I revoked the old key?
The existing integration fails and must be removed and set up again, according to the official documentation. Inventory entity references first so dashboards and automations can be repaired predictably.
Can reloading restore a revoked credential?
No. Reloading can retry a temporary connection, but it cannot make a revoked authorization valid. Use the current reauthentication or setup flow.
Why does the thermostat work while Home Assistant is unavailable?
The thermostat can continue local HVAC control and communicate through paths separate from Home Assistant’s session. That pattern points toward integration or account connectivity rather than wiring.
Should I change HVAC settings during setup?
No. Authentication recovery does not require installer settings, compressor delays, wiring, or extreme setpoints. Keep safe manual control available and test only modest reversible commands.
What should I verify after adding it again?
Compare entity IDs, temperature and occupancy updates, HVAC mode, setpoints, dashboards, automations, voice exposure, and history. Reverse any small test change and observe multiple refresh cycles.
Final verification record
Record the date, Home Assistant version, device firmware, integration status, entity IDs checked, commands tested, state-update interval observed, and any network or account change that solved the failure. This record turns today’s repair into a faster and safer response if the symptom returns.
What not to do
Do not respond to an unavailable state by deleting every related device, clearing registries, changing several network rules, or restoring an old backup without first proving the scope. Those actions can create duplicate entities, break historical continuity, invalidate automation targets, and erase the best evidence. Do not follow screenshots from older releases when the current official integration flow differs.
Avoid disabling firewalls, privacy controls, encryption, account protections, or electrical safety features as a test. A safer test is narrow, timed, documented, and reversible. If a proposed action cannot be rolled back or its effect is unclear, collect diagnostics and escalate instead of experimenting on a live household system.
Maintenance check after recovery
One day after recovery, review entity history for another unavailable period, confirm the router or account still shows the expected relationship, and inspect the automation trace from a normal run. Remove temporary diagnostic logging so secrets and storage use do not accumulate, but keep a sanitized summary of the cause and verified fix.

