Most problems with Tepi come down to one of the things below. If yours isn't here, write to me — I read everything.
One person answers this. Tepi has no analytics, so what you write is the only way a problem reaches me — the more specific, the better.
Use it — Tepi isn’t a replacement for it, and both change your thermostats the same way: a local HomeKit write. Neither is faster than the other.
The difference that matters is that the Home app doesn’t know tado° exists. It sees a generic thermostat. So when you change a temperature there, it can’t tell you that tado° has received it as a hold that may never expire — which silently stops that room following its schedule, from then on. Nothing in the Home app says so, because nothing in the Home app can know. Tepi does, and every temperature it writes has an undo: Resume tado° schedule, per room or for the house.
It also checks that the change actually landed. HomeKit reports success when a write is accepted, not when it takes effect — and through a bridge, a room can accept every change and control nothing. The Home app shows the new number and moves on. Tepi reads the thermostat back and tells you when it reports something else.
Then the smaller things: every room’s temperature on one screen instead of three taps each, room history, battery and firmware per device, and both tado° generations in one list whichever way they reach your home.
Where the Home app is better, plainly: everything else in your house, automations that run because a home hub executes them, widgets, Control Center, Siri and the Watch. Tepi has none of those. If you have one tado° room and change it twice a winter, the Home app is all you need.
Keep it. Tepi deliberately doesn’t do everything tado° does, and a few things only their app can change: your schedules, the per-room setting that decides how long a manual change lasts, Auto-Assist, and anything to do with your tado° subscription or billing.
Tepi is the screen for the thing you do every day — look at the house, change a room. The rest stays where it was.
Tepi reads your rooms from Apple's Home app, so they have to be there first. Open Home and check your tado° devices appear.
For tado° V3+, the Internet Bridge speaks HomeKit directly: in Home, tap +, then Add Accessory, and scan the HomeKit code on the bridge or in its manual. No HomePod or Apple TV needed.
For tado° X, which uses Matter over Thread, your home needs Thread connectivity before Apple will let the devices join at all — usually a HomePod, an Apple TV, or another Thread border router. That is Apple's requirement, not Tepi's: what the Home app can't see, Tepi can't see either.
If Home shows them and Tepi doesn't, check Settings → Privacy & Security → HomeKit → Tepi.
This is the most common thing people write to me about, and it isn't Tepi — it happens in Apple's own Home app too. The short version: a HomeKit home belongs to an Apple Account, not to an address. Living in the same house, on the same Wi-Fi, with the same thermostats on the wall, doesn't give a second iPhone any access to them.
The person who set the thermostats up has to invite the other person: Home app → the house icon → Home Settings → Invite People. Once that invitation is accepted, the thermostats appear in their Home app, and Tepi finds them with no extra setup. Give them Allow Editing, and Allow Remote Access if they should be able to use Tepi away from home.
But there's a catch, and it may stop you. Under Apple's current Home architecture, inviting anyone requires a home hub — a HomePod, HomePod mini or Apple TV. An iPad no longer counts. Check under Home Settings → Home Hubs & Bridges.
If there is no hub listed, the invitation simply isn't available, and there is nothing Tepi or any other app can do about it: the second person cannot see those thermostats in Apple Home at all, so no app reading from Apple Home can show them. The options are to add a hub, or for that person to use the tado° app instead, which uses a tado° account rather than a HomeKit home.
On their phone, Tepi should be saying "No home set up yet" with instructions underneath. If it says something else — or nothing — tell me, because that would be a bug.
No. Everyday control — temperatures, off, boost — goes straight to the thermostats over HomeKit and never touches tado°. Adding your account is optional and enables the things HomeKit doesn't carry: generation badges, room history, device health, handing a room back to its tado° schedule, and reaching the house when you're away without an Apple home hub.
Tap Explore a demo home on the first screen or in Settings. It's a synthetic household — both generations, two accounts, a room behind a bridge, one unreachable — and nothing leaves your phone while it's running.
Linking is how Tepi knows which tado° room a HomeKit thermostat is. It matches on the device serial first, and on the room's name second.
Open that room and scroll down — Tepi prints the serial it looked for and every name it tried. If tado° reports none of them, the room is called something different in the two apps. Rename it on either side so they match, then use Sync rooms with tado° in Settings.
Renaming the room inside Tepi links it immediately and costs nothing against your daily tado° allowance, because Tepi already knows what tado° calls its rooms — it just couldn't connect the two names.
Tepi will not guess. A name that could mean two different tado° rooms produces no link rather than a wrong one, because the cost of a wrong link is a command sent to the wrong radiator.
Home Assistant users: HA publishes its entity id where HomeKit
expects a serial number, and Tepi reads the tado° serial out of it. If you have
renamed a valve in Home Assistant, its entity id no longer contains the serial
(climate.guest_bathroom rather than
climate.tado_smart_radiator_thermostat_va0000000001), so name
matching is all that's left.
If you also run Home Assistant, Homey, openHAB, Homebridge or another third-party tado° app on the same tado° account, this is very likely why.
tado° publishes exactly one public client id for third-party apps, and every one of them — Tepi included — has to use it. tado° also rotates the refresh token every time it is used. Two apps holding tokens for the same account under the same identity can therefore invalidate each other, and whichever refreshed last wins. The other is told its sign-in expired.
There is no fix on Tepi's side. Signing in again works, and then the other app takes its turn. Until tado° issues per-app credentials, the options are to keep one third-party app signed in to a given tado° account at a time, or to use a second tado° account for Tepi.
Everything local is unaffected. Temperatures, off and boost go over HomeKit and don't need the tado° sign-in at all.
This is the check Tepi exists for, and it is worth taking seriously. A bridge whose tado° integration has lost its token keeps reporting temperatures and keeps accepting changes while the valve never moves. Everything looks fine and the room stays cold.
If Tepi says tado° holds the room at one temperature and the thermostat reports another, something between them has stopped listening — on a Home Assistant setup, usually its tado° integration needing to sign in again.
tado° allows 100 API requests a day on a free account. Tepi is careful with them — nothing polls in the background, and it keeps the last few in reserve — but a day of heavy browsing can reach it.
Changing temperatures at home is unaffected: that goes to the thermostat over HomeKit. History, device health, resuming a schedule and remote access all need tado°, so they wait until the allowance resets.
Off sends HomeKit's off, which tado° treats as switching the room off — frost protection. Some thermostats, particularly ones bridged through Home Assistant, publish a target temperature and no on/off control at all. Tepi can't send off to those, so it turns the room down to the lowest temperature the valve accepts and says so rather than pretending it went off.
If the room is linked to a tado° account, Tepi switches it off through tado° instead, which works regardless of what the valve exposes.
Tepi sends a change and then reads the thermostat back a few seconds later to check it took. This message means the read didn't get through — not that the change failed. A write can succeed and the read still fail, particularly through a bridge.
Worth checking the radiator, or the room in the tado° app.
Three usual causes, none of them Tepi: the boiler is in summer mode, the valve isn't driving its radiator, or another zone is holding the system. Tepi says so explicitly when the thermostat itself reports that it has accepted the setting and isn't heating.
Any temperature change — from Tepi, from the tado° app, or from the dial on the wall — reaches tado° as an overlay, and a tado° setting per room decides how long one lasts. Set to “until I change it”, which many homes are, the room stops following its schedule from that moment.
Resume schedule on a room, or for the whole house, hands it back. It needs a linked tado° account: HomeKit knows a temperature and nothing about where it came from.
Nothing. No accounts of its own, no servers, no analytics, no tracking. Your tado° token lives in your iPhone's Keychain and everything else stays on the device. The full text is in the privacy policy.
Settings → Reset all Tepi data clears favourites, order, hidden rooms, cached history and signed-in tado° accounts. Your thermostats and their tado° settings are untouched, and rooms you renamed keep their new name, because the rename went into Apple's Home app. Deleting the app removes the rest.