The Tado HA community's wish list, shipped. Local HomeKit control, multi-home, smart valve compensation, weather compensation, and a polling system that respects Tado's API quota.
Quick Start • Features • Configuration • FAQ • Discussions
Tado CE is an alternative Home Assistant integration for Tado, built around requests the official integration hasn't picked up. Almost every feature here started as a GitHub issue or a Discussions thread — users with low API quotas asking for HomeKit local reads, OpenTherm boiler owners asking for flow-temperature modulation, multi-home accounts asking for proper isolation, radiator-TRV owners asking for external-sensor compensation. The 4.0 release is the first stable cut that pulls all of those together.
Developed independently of Tado. Targets Tado V2, V3, and V3+ hardware.
Three situations where it's worth considering:
- You've hit the Tado API quota. From 2025, Tado limits most households to 100 API calls per day. The official integration is cloud-polling only, so dashboards lag 15–20 minutes once the quota tightens. Pair your Internet Bridge V3+ via HomeKit and Tado CE reads temperature, humidity, and heating state locally — updates arrive in around 2 seconds and don't count against the quota. On a nine-zone test home, daily API usage dropped from ~394 calls to under 80 once HomeKit local control was active.
- Your TRV reads run hot, your room never reaches target. Radiator TRVs sit on the radiator and read warmer than the room, so Tado closes the valve before the room is up to temperature. Smart Valve Control compensates with an external sensor — either by writing a temperature offset Tado's own algorithm sees (Offset Sync) or by directly overriding the setpoint (Valve Target). Came from @Si-Hill's Discussion #231 and three months of debugging across the beta cycle.
- You need a feature the official integration doesn't have. Multi-home support, OpenTherm-aware Weather Compensation, Actionable Insights, mould-risk monitoring, thermal analytics, schedule-as-calendar entity, hot-water timer service, per-zone external sensor override — see the table below.
If none of those apply, the official Tado integration is fine — Tado CE isn't positioned as a replacement for healthy installs, but as the option when a specific need arises.
| Feature | Official Tado | Tado CE |
|---|---|---|
| Climate, AC, hot water control | ✅ | ✅ |
| Presence / geofencing | ✅ | ✅ |
| Weather data | ✅ | ✅ |
| HomeKit local control (LAN, quota-free) | ❌ | ✅ |
| Multi-home support | ❌ | ✅ |
| Smart Valve Control (Offset Sync / Valve Target) | ❌ | ✅ |
| Weather Compensation (OpenTherm flow temp) | ❌ | ✅ |
| Actionable Insights | ❌ | ✅ |
| Thermal analytics / preheat advisor | ❌ | ✅ |
| Mould-risk monitoring | ❌ | ✅ |
| Schedule calendar entity | ❌ | ✅ |
| Adaptive polling (API-quota aware) | ❌ | ✅ |
| Hot water timer (down to 1 minute) | ❌ | ✅ |
| Tado X series (Matter / Thread) | ✅ | ❌ |
Tado X is intentionally out of scope — those devices are Matter-over-Thread and handled best by Home Assistant's native Matter integration. A short migration note is in the FAQ.
- Home Assistant 2025.11 or newer
- A Tado account
- Tado V2, V3, or V3+ hardware (see Supported devices)
- Optional but recommended: an Internet Bridge V3+ for HomeKit local control
Tado CE is in the HACS default store, so no custom-repository setup is needed.
- Open HACS, search for Tado CE, and click Download.
- Restart Home Assistant.
The button above takes you straight to the Tado CE page in HACS.
Manual installation
Copy the custom_components/tado_ce/ directory from this repository into your Home Assistant config/custom_components/ directory and restart Home Assistant.
- Settings → Devices & Services → Add Integration → Tado CE
- Open the authorisation link shown (or visit the URL displayed and enter the code), authorise Home Assistant in your Tado account, and return.
- If your Tado account covers more than one home, pick which one to add. Each home becomes its own Home Assistant config entry.
No SSH, no manual token extraction, no YAML.
Check Settings → System → Logs for:
Tado CE: Integration loading...
Tado CE: Polling interval set to 30m (day)
Tado CE full sync SUCCESS
Tado CE: Integration loaded successfully
If you have an Internet Bridge V3 or V3+, pair it to Home Assistant via HomeKit:
- In the Tado app: Settings → Home Information → HomeKit — enable HomeKit and note the 8-digit pairing code.
- In Home Assistant: Settings → Devices & Services → Add Integration → HomeKit Device, then enter the code.
- Open Tado CE's Configure → General Settings → Hardware Connections → HomeKit, enable it, and restart Home Assistant.
Temperature and humidity entities will now show data_source: homekit when values arrive locally. See FEATURES_GUIDE.md for details.
Open the gear icon on the Tado CE integration card. Settings take effect immediately — no restart needed. Start with General Settings to enable the features you want; Advanced Settings only exposes tuning parameters for features you've enabled.
Full Home Assistant climate.*, water_heater.*, sensor.*, and binary_sensor.* entity coverage for every Tado zone and device type. Preset modes (Home / Away), timer overlays (manual / next-time-block / timer), and geofencing are mapped onto Home Assistant-native controls — no custom cards required.
With an Internet Bridge V3+ paired, Tado CE uses HomeKit for temperature reads, humidity reads, target-temperature writes, and HVAC-mode writes. Updates arrive in around 2 seconds over your LAN — cloud-only mode is bound by your polling interval, typically 5–30 minutes. The cloud API is used only for features HomeKit doesn't expose (schedules, geofencing, the Tado app's calibration engine).
When the bridge is unreachable, everything falls back to cloud automatically. A data_source attribute on each temperature sensor reports whether the current value came from HomeKit or cloud, and the HomeKit Connected sensor tracks how many API calls local control has saved you.
For rooms where the TRV reading differs from the actual room temperature (common with radiator TRVs — draughts, cold external walls, sensor placement), Tado CE can use an external temperature sensor to correct Tado's algorithm. Two modes:
- Offset Sync (recommended) — writes a device temperature offset so Tado's own heating algorithm sees your external sensor's reading. Tado then modulates as normal.
- Valve Target (advanced) — overrides the TRV setpoint directly. Use when Offset Sync's ±10 °C range isn't enough.
Both modes yield to manual changes (Tado app, physical TRV dial), resume on the next schedule block, and prefer HomeKit for the write when available (zero API cost).
For homes with an OpenTherm-compatible boiler, Tado CE can adjust the boiler's flow temperature based on outdoor temperature. Presets for radiators (aggressive / balanced / gentle) and underfloor heating are included; custom slopes are supported. Boiler flow temperature is read directly from the bridge every 60 seconds — independent of your cloud polling interval, since the bridge API doesn't count against your Tado quota.
Tado's per-home API quota varies (100 / 1,000 / 20,000 calls per day depending on tier). Tado CE detects the quota, tracks remaining calls, and adapts its polling cadence automatically — quick polls during the day when activity matters, longer intervals overnight. You can override with custom intervals under Configure → Advanced Settings → Polling & API.
With HomeKit connected, cloud polling drops further since temperatures arrive locally. Token refreshes also happen ~50% less often than in earlier versions, since the integration now reads the actual expiry from Tado's response instead of refreshing on a fixed 5-minute timer.
Per-zone and home-wide notifications that tell you what's wrong and what to do about it, rather than just surfacing raw metrics. Examples: open-window detection (with confidence scoring), zones heating outside scheduled times, low-quota warnings with a recommended configuration change, and cold-room alerts when a zone can't reach its setpoint.
Insights correlate and deduplicate across the home — a single underperforming boiler doesn't produce six near-identical notifications, it produces one home-level "heating system looks under-sized" insight.
Per-zone heating-rate and cooling-rate tracking, preheat-time advisor, and thermal-inertia estimation. Uses a rolling window so the values adapt when you rearrange furniture, change windows, or upgrade insulation — no manual retraining.
If your Tado account covers more than one home, each becomes its own Home Assistant config entry with full data isolation. Switching between homes in the Tado app updates the correct HA entry automatically.
This page covers the features most users will notice first. See FEATURES_GUIDE.md for the complete reference including Smart Comfort, Adaptive Preheat, Hot Water Timer, Mould Risk monitoring, Environment Monitoring, Zone Features Toggles, and per-feature configuration.
All settings live under Settings → Devices & Services → Tado CE → gear icon. Changes apply immediately without restart.
| Section | Purpose |
|---|---|
| General Settings | Enable/disable features. Organised by origin: Tado Features (Home Presence, Weather Data, Mobile Tracking, Schedule Calendar, Device Offsets), Hardware Connections (Internet Bridge, HomeKit), Smart Automations (Smart Comfort, Thermal Analytics, Adaptive Preheat, Weather Compensation), Advanced (Per-Zone Configuration). |
| Advanced Settings | Tuning parameters for enabled features. Polling intervals, HomeKit cloud-sync frequency, Smart Comfort preheat ceiling, Weather Compensation curves, and similar. |
| Zone Configuration | Per-zone: manual-override behaviour, temperature limits, heating type, external sensors, window detection, preheat mode, Smart Valve Control mode. |
| Reset to Defaults | Reset per feature or everything at once, without affecting your Tado account or bridge pairing. |
For usage scenarios (low-quota setup, high-quota setup, mixed zones, OpenTherm boiler), see FEATURES_GUIDE.md.
Tado CE creates entities covering hub-level diagnostics, per-zone climate and analytics, environment monitoring, hot water control, actionable insights, and weather compensation. See ENTITIES.md for the complete list of entity types and their attributes.
Highlights:
- Hub — API usage/reset/sync, weather, home-wide insights, presence mode, overlay mode, resume-all button.
- Per zone — Climate control, temperature, humidity, heating power, overlay status, battery, connection.
- Environment — Mould risk, comfort level, surface temperature, dew point, condensation risk (AC).
- Insights — Per-zone and home-aggregated actionable notifications.
- Smart Comfort — Heating/cooling rates, time-to-target, preheat advisor, schedule sensors.
- Thermal analytics — Thermal inertia, heating rate, preheat time, confidence scoring.
- Hot water — Water heater entity with timer buttons.
- Weather Compensation — Target flow temperature, compensation status.
- Switches — Child lock, early start per zone.
Tado CE exposes services for climate control, hot water timers, open-window mode, temperature offsets, restoring previous state, and more. All services appear under Developer Tools → Services with parameter documentation. See FEATURES_GUIDE.md for full details and examples.
Automations that need to act on Tado CE entities right after Home Assistant starts can listen for the tado_ce_ready event instead of guessing timing with delays — the event fires once all climate entities have real data, with home_id, entry_id, and zone_count in the payload.
| Device | Type | Support | HomeKit local control |
|---|---|---|---|
| Smart Thermostat V2 | HEATING | Full (community-verified) | ❌ (V2 bridge) |
| Smart Thermostat V3 / V3+ | HEATING | Full | ✅ |
| Smart Radiator Thermostat (SRT / VA02) | HEATING | Full | ✅ |
| Smart AC Control V3 / V3+ | AIR_CONDITIONING | Full | ✅ (temperature only) |
| Wireless Temperature Sensor | HEATING | Full | ❌ (not a HomeKit accessory) |
| Internet Bridge V3+ | Infrastructure | Required for local control | — |
| Tado X series | Matter / Thread | Not supported | — |
Tado X uses Matter over Thread. For those devices, use Home Assistant's native Matter integration.
Can I run Tado CE alongside the official Tado integration?
Yes, though there's usually no reason to. Both integrations read from the same Tado account and add to your API call count. If you want to compare, enable both, then pick one. Disabling the official integration is recommended once Tado CE is working.
Does HomeKit pairing interfere with other HomeKit apps (Apple Home, etc.)?
No. Home Assistant's HomeKit Device integration pairs as a second controller — your existing Apple Home setup keeps working unchanged.
What happens if my Tado API quota hits zero?
With HomeKit connected, you'll barely notice — temperature, humidity, target, and mode keep updating in real time. Cloud-only features (schedule changes from outside Home Assistant, geofencing updates, presence detection) pause until the quota resets. Without HomeKit, polling pauses entirely and you'll see a repair notice; again, everything resumes once the quota resets.
Why is my temperature reading different from the Tado app?
Three common causes:
- Tado's app shows a calibrated reading, not the raw TRV value. If your
sensor.*_temperatureis set to read the HomeKit / bridge value directly, it reports the TRV's uncorrected measurement — which runs hot during heating cycles. - External sensor with no Offset Sync configured. Tado's algorithm still uses the TRV's own reading to modulate. If your external sensor shows a different value, enable Smart Valve Control (Offset Sync mode) under Configure → Zone Configuration.
- Offset Sync saturation. If the gap between external sensor and TRV needs a correction larger than ±10 °C (Tado's device limit), the clamp fires. The climate entity reports this via
offset_clamped: true+offset_clamp_direction.
My authentication failed / I need to re-authenticate.
Open Settings → Devices & Services → Tado CE. If a re-authentication prompt is shown, follow it. Otherwise click Configure and re-run the device-authorisation flow.
Device trackers are missing.
Device trackers are only created for mobile devices that have geo-tracking enabled inside the Tado app. Enable it in the Tado app first, then reload the Tado CE integration.
How do I migrate from Tado X hardware?
Tado X runs on Matter / Thread and isn't supported here. Use Home Assistant's native Matter integration. You'll lose Tado-specific features (schedules, geofencing, Tado CE's insights) — that's an upstream Matter limitation, not something this integration can work around.
Enable debug logging
Add to configuration.yaml:
logger:
default: info
logs:
custom_components.tado_ce: debugRestart Home Assistant, reproduce the issue, then check Settings → System → Logs. Filter by tado_ce to focus on the relevant entries.
For issues not covered here, check Settings → System → Logs (filter by tado_ce), the existing GitHub Issues, or open a new issue with your log excerpt.
- Settings → Devices & Services → Tado CE → ⋮ → Delete
- Restart Home Assistant.
- In HACS: find Tado CE, ⋮ → Remove. Or for manual installs, delete the
config/custom_components/tado_ce/directory. - Restart Home Assistant again.
| Document | Purpose |
|---|---|
| FEATURES_GUIDE.md | Full feature reference, configuration scenarios, service examples |
| ENTITIES.md | Complete entity type list with attributes |
| API_REFERENCE.md | API call types, optimisation notes, troubleshooting |
| ROADMAP.md | Planned features and known limitations |
| CREDITS.md | Contributor credits per release |
| CHANGELOG.md | Version history |
- Tado API rate-limit announcement (HA community)
- Official Tado integration
- Tado API documentation (community project)
Tado CE's feature set is almost entirely driven by GitHub Issues and Discussions — specific user reports, data, and testing turn into features or fixes. If you've hit a problem or want something changed, open an Issue or Discussion; logs and screenshots are what make the difference between a triage round-trip and a same-day fix.
Code contributions are also welcome: fork, branch, commit, and open a PR. The Discussions tab is the best place to float an idea before writing code.
Released under the GNU Affero General Public License v3.0 (AGPL-3.0). Modifications must be released as open source under the same licence with attribution. See LICENSE for the full text.
Original author: Joe Yiu (@hiall-fyi)
Disclaimer
This project is not affiliated with, endorsed by, or connected to tado GmbH or Home Assistant. tado and the tado logo are registered trademarks of tado GmbH. Home Assistant is a trademark of Nabu Casa, Inc.
This integration is provided "as is" without warranty. Use at your own risk.