Control TECO iHome air conditioners from Home Assistant — power, HVAC mode, target temperature and indoor-temperature sensing — via the same cloud backend the official TECO iHome app uses.
Unofficial integration, not affiliated with TECO. It relies on a reverse-engineered cloud API and a plaintext TAISEIA 101 gateway. Please read the Disclaimer before installing.
- 🔌 Power on/off
- ❄️ HVAC mode — cool / dry / fan-only / auto / heat (only the modes your unit reports are exposed)
- 🌡️ Target temperature — 16–31 °C, 1° steps
- 📈 Indoor temperature sensor
- 🔁 Live state — changes made from the TECO app are reflected in Home Assistant within seconds (cloud push), with REST polling as a fallback
- 🔐 Password is never stored — only OAuth tokens are persisted; expired sessions re-authenticate automatically, with a reauth prompt as a fallback
- 🏠 Multiple air conditioners on one account are discovered automatically
| Capability | Status |
|---|---|
| Power, mode, target temperature | ✅ Verified end-to-end against real hardware |
| Indoor-temperature sensor | ✅ |
| Fan speed | ⏸️ Gated off — value semantics not yet confirmed by packet capture (FAN_SEMANTICS_VERIFIED = False in const.py) |
| Swing | ⏸️ Gated off (pending capture) |
| Energy / power sensors | Created only if the cloud reports consumption |
Gated capabilities are deliberately hidden so the integration never sends an unverified command to real hardware.
Click the button above to open this repository in HACS on your own Home Assistant, then download it and restart. Or add it manually:
- In HACS → ⋮ → Custom repositories, add
https://github.com/zodius/teco_ihomewith category Integration. - Search for TECO iHome, install it.
- Restart Home Assistant.
- Copy
custom_components/teco_ihome/into your Home Assistantconfig/custom_components/directory. - Restart Home Assistant.
- Settings → Devices & Services → Add Integration → “TECO iHome”.
- Enter your TECO iHome account email and password.
Your air conditioners are discovered automatically and appear as climate
entities plus a room-temperature sensor.
- Auth & discovery: HTTPS REST API at
api.tecoserver.com. - Control & state: a long-lived plaintext TCP connection to
tecoserver.com:8750carrying TAISEIA 101 6-byte binary frames (06 <saId> <service> <hi> <lo> <xor>), with a 5-second keepalive and exponential-backoff reconnect.
Commands are confirmed by the device's echo/state frame before Home Assistant updates the entity — there is no unconfirmed optimistic state.
See DISCLAIMER.md for the legal notice.
python3.13 -m venv .venv && . .venv/bin/activate
pip install -r requirements_test.txt
pytestThe pure protocol layer (taiseia.py) is verified against captured golden
frames in tests/contract/ and tests/unit/test_taiseia.py. REST, gateway,
coordinator, config-flow, climate and sensor layers are covered under tests/.
Issues and PRs welcome — see CONTRIBUTING.md. Packet captures that pin down fan-speed / swing value semantics are especially useful for un-gating those features.