ESPHome hardware and component support for Toshiba central air-conditioning and ESTIA hydronic heat-pump systems that communicate over the two-wire AB bus.
This project is not suitable for most split systems that are controlled only by an infrared remote.
The TU2C protocol is now fully functional, thanks to contributions from @yvertman and @Dieghito72.
Thanks to @JuhaniVu, the first-generation Toshiba
ESTIA R410A frame format is fully implemented. Select frame_format: estia and
use a 2400 baud, 8N1 UART (parity: NONE). See the
complete R410A configuration.
Thanks to @7tobias, Toshiba R32 ESTIA Series 1 systems are supported. The component can detect the normal TCC-Link, HM and ESTIA R32/A0 formats, and address assignment avoids duplicate-address E09 errors. Thanks to @mtthidoteu, HM-format support and hardware UART operation improve compatibility and stability.
The component can operate without another wall controller, supports configurable commercial-system read/write command modes and a filter-alert sensor, and has more robust frame handling and logging. See the relevant complete YAML example below for the optional settings.
- v3.2: revised UART pins, a 3300 µF 3.3 V rail capacitor, easier-to-solder USB-C, boot/reset buttons, a power-selection jumper and easier assembly.
- D1 mini: a simpler board designed with @issalig, using RX D7 and TX D8.
- v3: wider AB-line voltage range, improved filtering, a comparator-based receiver and selectable AB/USB power.
The component decodes traffic between a Toshiba indoor unit and its wired remote, reports the system to ESPHome/Home Assistant, and sends commands as a wall remote would. It supports:
- conventional air-to-air systems using classic TCC-Link, its HM variation, or the now fully functional TU2C protocol;
- ESTIA hydronic systems, including tested R410A and R32 generations;
- operation alongside a wall remote or, where supported, autonomous operation.
The hardware is an ESP8266/ESP-12 interface board designed in EasyEDA. It powers from the AB line (or USB for initial flashing only, no comms) and converts the AB bus to UART safely. Do not connect the AB terminals directly to an ESP UART.
You need a supported ESPHome board/interface from the hardware
folder (or an electrically equivalent reader/writer circuit), access to the
unit's wired A/B remote terminals, and an ESPHome/Home Assistant installation.
The current board has been used with Toshiba central/commercial HVAC, multi-split
indoor units that expose an AB wired-controller connection, and ESTIA heat pumps.
Model names are useful hints, not guarantees: Toshiba has used different protocols within related product ranges. Confirm that your unit has an AB port, then use the selection tables below and the protocol/frame-format reference.
Hardware design, construction, installation and case
The recommended v3.2 board includes AB-line power conversion, noise filtering, a comparator receiver and a transistor writer. Isolate the HVAC system before opening a controller or changing AB wiring. Select USB power for initial flashing and AB power only after USB power has been disconnected.
Board fabrication files, schematics, bills of materials, assembly advice, installation steps and enclosure details are collected in the hardware guide. Go directly to a board revision:
- v3.2 — recommended full board
- D1 mini — simpler modular variant
- v3 and v1 — older revisions
- all hardware and printable case files
Air-to-air systems (conventional air conditioning)
Air-to-air units use one of three supported AB protocol variations:
| Variation | Typical systems and examples | UART | frame_format |
|---|---|---|---|
| TCC-Link | Most established central/commercial systems. Tested examples include indoor RAV-SM1103DT-A and MMD-AP0366BHP1-E with RBC-AMT32E/RBC-AMT54E controllers; repository reports also include RAV-SM802BT-E. |
2400 baud, 8E1 (EVEN) |
auto (recommended) or normal |
| HM (TCC-Link variation) | Newer RAV-HM/RAV-RM systems. Examples reported in this repository include RAV-RM801BTP-E + RAV-GM801ATP-E, RAV-RM801KRTP-E, and RAV-HM561KRTP-E. HM retains TCC-Link semantics but uses a different envelope. |
2400 baud, 8E1 (EVEN) |
auto or hm |
| TU2C | Common in newer U-series systems; examples include RAS-M16U2MUVG, RAS-M24U2DVG-E and M07U2DVG-E. TU2C support is fully functional, but it is not auto-detected. |
2400 baud, 8N1 (NONE) |
tu2c |
For byte-level differences, aliases and detection behavior, read Toshiba AB protocol frame formats.
This is the complete component-specific portion for TCC-Link/HM. Add your normal
ESPHome device, Wi-Fi, API and OTA sections. For TU2C, change both highlighted
settings to parity: NONE and frame_format: tu2c.
logger:
baud_rate: 0
external_components:
- source: github://makusets/esphome-toshiba-ab
uart:
tx_pin: GPIO12 # GPIO10 on v3; GPIO15 on v1; D8 on D1 mini
rx_pin: GPIO13 # D7 on D1 mini
baud_rate: 2400
parity: EVEN # NONE for TU2C
rx_buffer_size: 2048
climate:
- platform: toshiba_ab
name: "Toshiba AC"
id: toshiba_ac
frame_format: auto # use tu2c for TU2C systemsSee complete_example.yaml for autonomous operation,
addresses, temperature reporting, diagnostic sensors, power estimation and all
other air-to-air options. example.yaml is a ready-to-edit,
smaller device configuration.
The boards expose I²C so a BME280 can publish local temperature, humidity and
pressure. Its temperature can also be sent to the air conditioner as the room
temperature. The relevant I²C, sensor and report_sensor_temp YAML belongs in
the example configuration rather than this overview; see
complete_example.yaml.
Hydronic systems (Toshiba ESTIA)
ESTIA changed protocol between the R410A and R32 generations. Both are supported, but their UART parity and frame-format settings are not interchangeable.
| Generation | Protocol | Example/tested models | UART | frame_format |
|---|---|---|---|---|
| R410A / first generation | First-generation ESTIA, TU2C-style wrapped frames | R410A ESTIA systems using first-generation wired controllers | 2400 baud, 8N1 (NONE) |
estia (must be explicit) |
| R32 | ESTIA A0 protocol | Series 1 HWT-1101HRW-E outdoor + HWT-1101XWHT9W-E indoor; HWT-1102S21SM3W-E is also reported in the repository |
2400 baud, 8E1 (EVEN) |
a0 |
R32/A0 provides bidirectional power, heat/cool mode and setpoint control, autonomous temperature/runtime polling, optional 0–10 V demand-interface emulation, runtime sensors and command retries. First-generation support includes the R410A status, setpoint, Zone 1 and domestic-hot-water controls documented in its complete example. See the protocol reference and first-generation ESTIA protocol notes for technical detail.
uart:
tx_pin: GPIO15
rx_pin: GPIO13
baud_rate: 2400
parity: NONE
climate:
- platform: toshiba_ab
name: "Toshiba Estia R410A"
frame_format: estiaUse estia_R410A.yaml for the complete R410A configuration.
uart:
tx_pin: GPIO15
rx_pin: GPIO13
baud_rate: 2400
parity: EVEN
climate:
- platform: toshiba_ab
name: "Toshiba Estia R32"
frame_format: a0Use example_estia.yaml for the complete R32 configuration,
including optional demand emulation, sensors and runtime switches.
A BME280 may be connected to the board's I²C header to expose local temperature, humidity and pressure in ESPHome. ESTIA-specific control and polling do not require it. Keep the actual BME280 configuration in the appropriate complete YAML file if you choose to add one.
This project builds on the difficult protocol-decoding and initial hardware work
by @issalig in
toshiba_air_cond, and the initial
ESPHome component by @muxa in
esphome-tcc-link.
Special thanks to @7tobias for ESTIA R32 support, @JuhaniVu for first-generation/R410A ESTIA support, @mtthidoteu for HM support and hardware UART improvements, and @yvertman and @Dieghito72 for their contributions to fully functional TU2C support. Thanks also to every contributor and tester who has shared hardware findings, models, captures, code and documentation.
If you are after a fully finished product, I usually have some fully assembled boards that I am happy to sell. Search for "makusets" on eBay.
