Air Conditioner Firmware — Wi-Fi, Home Assistant and Alice on ESP32

Free ESP32 firmware that plugs into your air conditioner's UART port in place of the stock Wi-Fi module. Control your air conditioner locally or through Home Assistant, MQTT and Yandex Alice. Flash it straight from your browser — no soldering iron, no mandatory cloud.

  • ESP32-C6 / C3
  • Local MQTT
  • OTA Updates
  • Home Assistant
  • Open Source

Firmware Installation

Works in Chrome, Edge and other browsers with Web Serial. The page must be opened over HTTPS.

⚠️ Flash at your own risk. Make sure your air conditioner is compatible and cut power to the unit before connecting the ESP32 module. The project author is not liable for any damage to your equipment.
This browser doesn't support Web Serial. Open the page in Chrome or Edge on a computer.
Flashing requires an HTTPS domain or localhost.
Android App for ESP Setup

Quick module setup over the AC-Setup Wi-Fi access point or Bluetooth BLE, local air conditioner control, and WQTT connection later.

The RuStore build updates through the store, while the APK from this page updates in-app. Module setup and control work the same in both builds.

1. Connect the Module

Connect the ESP32-C6 SuperMini over USB. If the browser can't see the port, hold the BOOT button while plugging it in.

2. Set Up Wi-Fi

After flashing, the module brings up the access point AC-Setup-xxxx. Set up Wi-Fi through the Android app over Bluetooth/Wi-Fi or via the page 192.168.4.1. You can connect WQTT later.

3. Check Alice

Once WQTT registration succeeds, your air conditioner shows up in the device list. Commands go over MQTT, with no Home Assistant needed.

App Setup in a Couple of Minutes

1
Open “My Home”
Tap “Add Device”.
2
Find the Module over Bluetooth
The app finds PirogovX-AC-xxxx on its own.
3
Share Wi-Fi
Network and password go over BLE. The WQTT token is optional.
4
The Device Adds Itself
IP, name, protocol and key — set automatically.
5
Control It
Power, mode, temperature, turbo/night — locally or through Alice.
PirogovX App for Android

Free, Android 8.0+. Set up the module over Bluetooth and Wi-Fi, and control your air conditioner and smart home from your phone.

Firmware for Remote Air Conditioner Control

PirogovX AC Flash is free ESP32 firmware that turns an ordinary air conditioner into a smart one. The ESP32 module plugs into the UART port on the air conditioner board — the same slot where the stock Wi-Fi module goes — and talks to the air conditioner in its native protocol: Midea, TCL, Haier, Hisense, Gree, Samsung NASA (F1/F2) and others.

The firmware reads the air conditioner's actual state over UART: temperature, mode, fan speed, louver position. You can control it locally — from your phone via the app, from a browser or over MQTT — with no mandatory cloud.

From there, take your pick: Home Assistant, your own MQTT broker, Yandex Alice via WQTT, or Matter and Zigbee for your smart home. Updates install over the air (OTA) straight from this page.

The firmware is free and open source. Installation takes a couple of minutes: pick your air conditioner model, connect the module over USB, press one button.

Why UART/Wi-Fi Control Beats an IR Remote

  • Real state feedback. The module reads the air conditioner's actual state over UART — temperature, mode, fan, louvers — rather than “assuming” it.
  • Your stock IR remote keeps working. The module polls state over UART, so changes made with the remote show up right away in the app and your smart home — everything stays in sync.
  • Home Assistant and apps see actual data. The real room temperature and the current mode are available in your smart home.
  • Control doesn't depend on where the IR beam points. Commands travel over wires — no need to aim the module at the air conditioner, and walls or furniture don't get in the way.
  • Local MQTT. MQTT control with no mandatory cloud.

Air Conditioner Control via Home Assistant, MQTT and Alice

Home Assistant sees your air conditioner as a full climate entity — mode, temperature, fan and louvers in a single card.

  • MQTT Discovery

    The device shows up in Home Assistant automatically.

  • Modes and Temperature

    Cool, heat, auto, dry, fan and one-degree setpoints.

  • Local Control

    Commands run through your MQTT broker inside your home.

Home Assistant

The Zigbee builds (ESP32-H2 and ESP32-C6) connect to Home Assistant through Zigbee2MQTT: add the external converter esp-ac.js and run Reconfigure on the device. The air conditioner appears in Home Assistant with control over temperature, mode, fan and louvers, plus temperature telemetry.

The Wi-Fi builds work over MQTT — you can use your own broker or the WQTT cloud. The Android app can control Home Assistant climate entities directly (by address and token).

MQTT

The firmware supports MQTT: local command control and state feedback from the air conditioner. No cloud required — you can run an MQTT broker at home.

Yandex Alice

Alice connects through WQTT: enter your WQTT API token in the module settings, link your WQTT account in the “House with Alice” app — and you can control your air conditioner by voice. A step-by-step guide is in the WQTT/Alice section below.

Runs on Your Network

Control through your local MQTT broker and Home Assistant. The cloud is used only for Alice voice scenarios via WQTT — your choice.

AC
ESP32
MQTT
Home Assistant

OTA — No Need to Remove the Board

Once the ESP32 is installed in your air conditioner, you can update the firmware over the air. No need to take the unit apart again.

v0.6.5current
v0.6.7over the air

Which Air Conditioners Are Supported

The firmware has been tested on air conditioners from Royal Clima, Midea, TCL, Haier, Hisense, Gree, Samsung NASA, Kentatsu, Ballu, Hommyn, Neoline, JAX, NewTek and others — the full model list is below. Compatibility depends on the board and the UART protocol, so one firmware build often fits several brands at once (Midea OEM).

Check Your Model

Enter your air conditioner's manufacturer or model. If there's no exact match, send a request and I'll add the model to the compatibility list after checking it.

Report a model

How to Tell If the Firmware Fits Your Air Conditioner

  • Your air conditioner has a UART port for the stock Wi-Fi module (usually on the indoor unit board).
  • The stock module is an OSK102, OSK103, OSK302 or EU-OSK103 (Syncleo dongle).
  • The air conditioner's native app is NetHome Plus, Midea Air or MSmartHome.
  • The air conditioner is a Midea OEM brand: Royal Clima, Kentatsu, Ballu, MDV, Lanzkraft, Abion and others.
  • Your model is in the search above or in the compatibility list below.
  • If you can't find your model, send a request through the “Report a model” form or message us on Telegram: we'll use the UART logs to work out the right firmware profile.

Compatible Model List

Models are grouped by firmware profile: chip, protocol and build status. The first models of each profile are shown right away; the full list is behind the “Show All” button.

Universal firmware (ESP32-C6) — recommended

ESP32-C6 · Protocol: auto-detect · 15 models · Recommended

  • Midea OEM
  • Royal Clima
  • Royal Clima RCI
  • Royal Clima RCI-TWA22HN
  • TCL
  • Haier
  • Hisense
  • NewTek NT-77HSDC
  • GREE
  • JAX
Show All 15 Models
  • Kentatsu KSGU
  • Lessar
  • Samsung NASA (F1/F2)
  • Samsung AC120MNMDKH/EU
  • Samsung AC120MXADKH/EU

Universal Midea / TCL / Haier (ESP32-C6)

ESP32-C6 · Protocol: TCL UART · 33 models · Stable

  • Royal Clima
  • Royal Clima Gloria Inverter
  • Royal Clima RCI
  • Royal Clima RC
  • Royal Clima RCI-TWA22HN
  • Royal Clima RCI-TWA22HN TRIUMPH
  • RCI-TWA22HN
  • TRIUMPH
  • Axioma ASX09H1/ASB09H1
  • Ballu Discovery DC BSVI-07HN8
Show All 33 Models
  • Ballu Discovery DC BSVI-09HN8
  • Ballu Discovery DC BSVI-12HN8
  • Daichi AIR20AVQ1/AIR20FV1
  • Daichi AIR25AVQS1R-1/AIR25FVS1R-1
  • Daichi AIR35AVQS1R-1/AIR35FVS1R-1
  • Daichi DA35EVQ1-1/DF35EV1-1
  • Dantex RK-12SATI/RK-12SATIE
  • Ecostar Radium KVS-RAD09CH
  • TCL ELI ONF 12
  • TCL Liferise ONF 09
  • TCL TAC-CT09INV/R
  • TCL One Inverter TACM-09HRID/E1
  • TCL TAC-07CHSA/TPG-W
  • TCL TAC-09CHSA/TPG
  • TCL TAC-09CHSA/DSEI-W
  • TCL TAC-09HRID/E1
  • TCL TAC-12CHSA/TPG
  • TCL TAC-12CHSA/TPGI
  • TCL TAC-XAL24I
  • TCL TPG31IHB
  • OSK102
  • OSK103
  • OSK302

Hommyn / Neoline / Midea — 0x64 (ESP32-C6, pins are configurable)

ESP32-C6 · Protocol: Midea UART · 9 models · Stable

  • Neoline NAM 07HN1
  • Hommyn
  • Royal Clima (old revision)
  • Royal Clima RCI-T30HN/IN
  • Midea OEM (old UART revision)
  • OSK102
  • OSK103
  • EU-OSK103
  • OSK302

Hisense / NewTek RS-485 (ESP32-C6)

ESP32-C6 · Protocol: Hisense RS-485 · 9 models · Stable

  • Hisense
  • Hisense AS-10UW4RYDTV02
  • Hisense AS-10UW4RYDTV02G
  • Hisense Expert Pro DC Inverter
  • NewTek NT-77HSDC07
  • NewTek NT-77HSDC12
  • NewTek NT-77HSDC09
  • NewTek NT-77HSDC18
  • NewTek NT-77HSDC24

Universal UART Module (ESP32-C3)

ESP32-C3 · Protocol: Midea UART · 12 models · Stable

  • Royal Clima
  • Royal Clima RCI
  • Royal Clima RC
  • Royal Clima RCI-TWA22HN
  • Royal Clima RCI-TWA22HN TRIUMPH
  • RCI-TWA22HN
  • TRIUMPH
  • Midea
  • Haier AS09TT4HRA
  • OSK102
Show all 12 models
  • OSK103
  • OSK302

Hommyn / Neoline (ESP32-C3, configurable pins)

ESP32-C3 · Protocol: Midea UART · 6 models · Stable

  • Neoline NAM 07HN1
  • Hommyn
  • Royal Clima (old revision)
  • Midea OEM (old UART revision)
  • OSK103
  • EU-OSK103

Royal Clima / Midea OEM (Matter ESP32-C6)

ESP32-C6 · Protocol: Matter (Midea UART) · 8 models · Testing

  • Royal Clima
  • Royal Clima RCI-TWA22HN
  • Royal Clima RCI-TWA22HN TRIUMPH
  • RCI-TWA22HN
  • TRIUMPH
  • OSK102
  • OSK103
  • OSK302

TCL UART (Matter ESP32-C6)

ESP32-C6 · Protocol: Matter (TCL UART) · 13 models · Testing

  • TCL
  • TCL ELI ONF 12
  • TCL Liferise ONF 09
  • TCL TAC-CT09INV/R
  • TCL One Inverter TACM-09HRID/E1
  • TCL TAC-07CHSA/TPG-W
  • TCL TAC-09CHSA/TPG
  • TCL TAC-09CHSA/DSEI-W
  • TCL TAC-09HRID/E1
  • TCL TAC-12CHSA/TPG
Show all 13 models
  • TCL TAC-12CHSA/TPGI
  • TCL TAC-XAL24I
  • TCL TPG31IHB

Royal Clima / Midea OEM (Zigbee ESP32-H2)

ESP32-C6 · Protocol: Zigbee (Midea UART) · 11 models · Stable

  • Royal Clima
  • Royal Clima RCI-TWA22HN
  • Royal Clima RCI-TWA22HN TRIUMPH
  • RCI-TWA22HN
  • TRIUMPH
  • Kentatsu KSGYK35HZRN1
  • Kentatsu KSRYK35HZRN1
  • Kentatsu KSGYK35HZRN1/KSRYK35HZRN1
  • OSK102
  • OSK103
Show all 11 models
  • OSK302

TCL UART (Zigbee ESP32-H2)

ESP32-C6 · Protocol: Zigbee (TCL UART) · 14 models · Testing

  • TCL
  • TCL ELI ONF 12
  • TCL Liferise ONF 09
  • TCL TAC-CT09INV/R
  • TCL One Inverter TACM-09HRID/E1
  • TCL TAC-07CHSA/TPG-W
  • TCL TAC-09CHSA/TPG
  • TCL TAC-09CHSA/DSEI-W
  • TCL TAC-09HRID/E1
  • TCL TAC-12CHSA/TPG
Show all 14 models
  • TCL TAC-12CHSA/TPGI
  • TCL TAC-XAL24I
  • TCL TPG31IHB
  • Royal Clima TCL

Midea / Royal Clima / Hommyn (Zigbee ESP32-C6)

ESP32-C6 · Protocol: Zigbee (Midea UART) · 9 models · Testing

  • Neoline NAM 07HN1
  • Hommyn
  • Royal Clima
  • Royal Clima RCI-TWA22HN TRIUMPH
  • Midea OEM
  • Kentatsu
  • OSK102
  • OSK103
  • OSK302

GREE / JAX / Kentatsu / Lessar (Zigbee ESP32-C6)

ESP32-C6 · Protocol: Zigbee (GREE) · 5 models · Testing

  • JAX ACY-09HE/R32
  • JAX inverter
  • GREE
  • Kentatsu KSGU
  • Lessar

GREE / JAX / Kentatsu / Lessar (Zigbee ESP32-H2)

ESP32-H2 · Protocol: Zigbee (GREE) · 5 models · Testing

  • JAX ACY-09HE/R32
  • JAX inverter
  • GREE
  • Kentatsu KSGU
  • Lessar

Firmware by brand

Firmware for Royal Clima air conditioners

Royal Clima is supported by these profiles: Universal firmware (ESP32-C6) — recommended; Universal Midea / TCL / Haier (ESP32-C6); Hommyn / Neoline / Midea — 0x64 (ESP32-C6, pins are configurable); Universal UART module (ESP32-C3).

Model examples: Royal Clima, Royal Clima RCI, Royal Clima RCI-TWA22HN, Royal Clima Gloria Inverter, Royal Clima RC

Firmware for Midea air conditioners

Midea is supported by these profiles: Universal firmware (ESP32-C6) — recommended; Hommyn / Neoline / Midea — 0x64 (ESP32-C6, pins are configurable); Universal UART module (ESP32-C3); Hommyn / Neoline (ESP32-C3, pins are configurable).

Model examples: Midea OEM, Midea OEM (older UART revision), Midea

Firmware for TCL air conditioners

TCL is supported by these profiles: Universal firmware (ESP32-C6) — recommended; Universal Midea / TCL / Haier (ESP32-C6); TCL UART (Matter ESP32-C6); TCL UART (Zigbee ESP32-H2).

Model examples: TCL, TCL ELI ONF 12, TCL Liferise ONF 09, TCL TAC-CT09INV/R, TCL One Inverter TACM-09HRID/E1

Firmware for Haier air conditioners

Haier is supported by these profiles: Universal firmware (ESP32-C6) — recommended; Universal UART module (ESP32-C3).

Model examples: Haier, Haier AS09TT4HRA

Firmware for Hisense air conditioners

Hisense is supported by these profiles: Universal firmware (ESP32-C6) — recommended; Hisense / NewTek RS-485 (ESP32-C6).

Model examples: Hisense, Hisense AS-10UW4RYDTV02, Hisense AS-10UW4RYDTV02G, Hisense Expert Pro DC Inverter

Controlling Gree air conditioners with ESP32

Gree is supported by these profiles: Universal firmware (ESP32-C6) — recommended; GREE / JAX / Kentatsu / Lessar (Zigbee ESP32-C6); GREE / JAX / Kentatsu / Lessar (Zigbee ESP32-H2).

Model examples: GREE

Firmware for Samsung air conditioners

Samsung is supported by these profiles: Universal firmware (ESP32-C6) — recommended.

Model examples: Samsung NASA (F1/F2), Samsung AC120MNMDKH/EU, Samsung AC120MXADKH/EU

Other supported brands

Kentatsu (Kentatsu KSGU, Kentatsu KSGYK35HZRN1, Kentatsu KSRYK35HZRN1); Ballu (Ballu Discovery DC BSVI-07HN8, Ballu Discovery DC BSVI-09HN8, Ballu Discovery DC BSVI-12HN8); Daichi (Daichi AIR20AVQ1/AIR20FV1, Daichi AIR25AVQS1R-1/AIR25FVS1R-1, Daichi AIR35AVQS1R-1/AIR35FVS1R-1); Dantex (Dantex RK-12SATI/RK-12SATIE); Ecostar (Ecostar Radium KVS-RAD09CH); NewTek (NewTek NT-77HSDC, NewTek NT-77HSDC07, NewTek NT-77HSDC12); Hommyn (Hommyn); Neoline (Neoline NAM 07HN1); JAX (JAX, JAX ACY-09HE/R32, JAX inverter); Lessar (Lessar); Axioma (Axioma ASX09H1/ASB09H1)

Factory Wi-Fi modules

Air conditioners with factory OSK102, OSK103, OSK302 or EU-OSK103 modules (the Syncleo dongle) are a typical sign of compatibility with the Midea OEM profiles.

How to get a WQTT token and link it to Alice

These steps are for the Wi-Fi firmware. First set up a WQTT account and API token, then flash the module, enter the token in the ESP settings and refresh the devices in WQTT/Alice.

1. Setting up WQTT
  1. Open your WQTT account page and sign in.
  2. Go to your profile settings and create an API token.
  3. After flashing, connect the ESP to Wi-Fi. You can add the WQTT token later in the air conditioner settings in the Android app.
  4. Once the air conditioner shows up in WQTT, tap refresh devices in Yandex.
2. Cloud binding for WQTT in the Dom s Alisoy app
  1. Open the Dom s Alisoy app and add a new smart home device.
  2. Find the manufacturer WQTT.RU.
  3. Tap account linking and sign in to WQTT with the same account.
  4. Refresh the device list. The air conditioner will appear in the room you selected in WQTT.

Wiring diagram: ESP32-C6 to the air conditioner board

ESP32-C6 SUPERMINI USB-C ESP32-C6 SuperMini 3V3 GND 5V GPIO7 TX GPIO6 RX GND 5V power TX → RX (crossover) RX ← TX (crossover) Air conditioner board UART · Midea/TCL · 9600 baud GND 5V RX TX ⚠ Cut power to the air conditioner before wiring · TX and RX are crossed — that is normal

5V power comes from the air conditioner indoor unit (usually available on the board). If there is no 5V, use an external supply and connect a common GND.

For current firmware ESP32-C6 Wi-Fi and Matter TCL: TX GPIO7 → air conditioner RX, RX GPIO6 ← air conditioner TX. For ESP32-C3 SuperMini: TX GPIO5 → air conditioner RX, RX GPIO6 ← air conditioner TX. The older test Matter Midea build uses a different pinout, listed explicitly on its card.

Firmware profiles

Profile overview: chip, protocol and build status. A good sign of compatibility is a factory OSK102 / OSK103 / OSK302 Wi-Fi module or the NetHome Plus, Midea Air or MSmartHome apps. The wiring diagram and pins are in the Wiring section above.

Profile Models Chip Status

FAQ

The browser does not see the board / no port shows up

Try connecting the ESP32-C6 while holding the BOOT button on the board — that puts it into bootloader mode. Release the button once the port appears in the browser.

If the port still does not appear: check the cable (some USB cables are charge-only, with no data lines) and try another USB port. This works only in Chrome and Edge on a computer — mobile browsers do not support Web Serial.

The AC-Setup-xxxx access point does not appear after flashing

Wait 10–15 seconds after flashing — the module reboots and brings up its AP. If the access point is missing, open the Serial Monitor at 115200 and check the logs after the reboot.

Make sure you picked the right air conditioner profile before flashing. If the profile was wrong, flash it again with the correct one.

The air conditioner does not respond to commands after Wi-Fi setup

Check the physical wiring: TX → air conditioner board RX, RX → TX. It must be crossed — that is the UART standard. Make sure GND is connected. For ESP32-C6: TX GPIO7 / RX GPIO6. For ESP32-C3: TX GPIO5 / RX GPIO6.

Check the baud rate: the firmware uses 9600 baud — the Midea standard. If your board uses a different UART, it may not match.

Can I use a regular ESP32 or ESP8266?

No. The firmware is built specifically for ESP32-C6 (RISC-V core, Matter/Zigbee radio). The classic ESP32, ESP32-S2/S3 and ESP8266 are not compatible — different architecture and peripherals.

You can buy an ESP32-C6 SuperMini on AliExpress for about $3–5. Search for “ESP32-C6 SuperMini” or “ESP32-C6 development board”.

“Not supported” or “HTTPS required” error

Web Serial works only over HTTPS or on localhost. If you opened the page over HTTP, the browser will block access to the port.

Make sure the address starts with https://. Browser: Chrome or Edge (Firefox and Safari do not support Web Serial).

I cannot find my air conditioner in the compatibility list

Many air conditioners sold under different brands use the same Midea OEM board. Try the “Royal Clima / Midea OEM” profile — it works for most brands: Royal Clima, Kentatsu, Lanzkraft, Abion and other Midea OEM brands.

If that does not help, send a request via the “Report a model” form. I will check it and add it to the compatibility list.

What if my air conditioner has a factory OSK102, OSK103 or OSK302 module?

OSK102, OSK103 and OSK302 are common on Midea OEM air conditioners and compatible brands. If the factory module works with NetHome Plus, Midea Air or MSmartHome, it usually makes sense to start with the Royal Clima / Midea OEM profile.

The ESP32 plugs into the same UART connector the factory module used. Cut power to the air conditioner before connecting and check the TX/RX/GND pinout.

Will Ballu, TCL, Lessar, MDV or Dantex work?

Some models from these brands use the Midea/TCL UART protocols, but compatibility depends on the specific indoor unit board. Verified models are added to the site's search database through the admin panel.

If your model is not listed, message us on Telegram or send a request. The UART log shows which profile you need: Midea OEM, TCL or a separate test profile.

How do I update the firmware on a module that is already installed?

Just connect the ESP32-C6 over USB and flash it again through this same page. The firmware uses OTA partitions — your existing Wi-Fi settings and WQTT token are kept if you use the same profile.

If you need to reset all settings, hold the BOOT button for more than 5 seconds while powering on.

Can I connect the air conditioner to Alice without buying a Wi-Fi module?

Yes. Instead of a ready-made Wi-Fi module at 3000–7000 ₽, you can use an ESP32-C6 SuperMini — the board costs about 200–400 ₽ on AliExpress. The firmware is free and installs straight from the browser in 5 minutes, with no soldering or programming.

The result is the same: control via Alice, schedules, voice commands — but 10–20 times cheaper. Works with Royal Clima, Midea, Kentatsu and other Midea OEM brands.

Which air conditioners can be connected to Alice with an ESP32?

Air conditioners using the Midea UART protocol are supported — that covers most budget and mid-range brands on the Russian market: Royal Clima, Midea, Comfee, MDV, Kentatsu, Ballu, Lessar, Lanzkraft, Abion, Dantex and other OEM models.

A quick compatibility test: if the shop sells a NetHome Plus, Midea Air or MSmartHome Wi-Fi adapter for your air conditioner, our firmware will almost certainly work. The list of compatible models on this page keeps growing.

Are Samsung air conditioners supported (NASA F1/F2 bus)?

Yes, since version 0.6.44. On Samsung NASA-series air conditioners (for example with the factory MIM-H04N Wi-Fi kit) the bus F1/F2 is RS-485, not a regular UART, so an RS-485 transceiver (MAX3485/SP3485) is required between the ESP32 and the air conditioner.

The “Samsung NASA” profile is detected automatically: passive detection from F1/F2 frames — the module transmits nothing on the bus until you send a command. You can also select the profile manually. Verified models: indoor unit Samsung AC120MNMDKH/EU and outdoor unit AC120MXADKH/EU. Control: on/off, auto/cool/dry/fan/heat modes, temperature, fan, louvers; statuses: room and outdoor temperature.

How do I wire an ESP32 to a Samsung NASA (F1/F2) air conditioner?

Only through an RS-485 transceiver — you must not connect GPIO pins directly to F1/F2 (it is an RS-485 bus and a direct connection can damage the board):

TX GPIO7 → DI (MAX3485/SP3485), RX GPIO6 ← RO, transceiver outputs A → F1 and B → F2, common GND. If needed, enable DE/RE direction control in the app (uart_de_gpio); the protocol runs at 9600 8E1 — the firmware will set the profile itself.

How much does a DIY Wi-Fi module for an air conditioner cost?

A DIY Wi-Fi module costs around 200–400 ₽: an ESP32-C6 SuperMini board from AliExpress plus three wires GND/TX/RX. No extra components needed.

For comparison, a ready-made branded Wi-Fi module (NetHome Plus, OSK102/103) costs 2500–7000 ₽ while offering the same features — phone control, voice control via Alice, schedules. Our firmware is free and open source.

How does WQTT differ from Home Assistant for air conditioner control?

WQTT is a cloud MQTT broker that lets you control the air conditioner through Alice without a server. Setup takes 5 minutes: register at wqtt.ru, enter the token in the ESP32 web interface — and the air conditioner appears in Yandex Smart Home.

Home Assistant — a full smart home system running on your own server (Raspberry Pi or NAS). More flexibility, but you have to deploy and maintain the infrastructure. Our firmware supports MQTT, so it works with Home Assistant as well — just specify your own MQTT broker instead of WQTT.

Royal Clima: how do I connect it to Wi-Fi and Alice?

For Royal Clima (RCI, RCI-TWA, TRIUMPH and other Midea OEM series), select the “Royal Clima / Midea OEM” profile on this page. Connect the ESP32-C6 to the air conditioner board's UART connector: TX GPIO7 → RX, RX GPIO6 → TX, GND → GND.

Once the firmware is flashed and Wi-Fi is configured, the air conditioner will appear in the WQTT app and in Alice. Controls: on/off, temperature, mode, fan speed, louver swing, Turbo/Quiet.

What is the “Universal firmware” and how do I set it up?

The universal firmware (ESP32-C6) detects the air conditioner protocol on its own: Midea, TCL, Haier (SmartAir2 and hOn), Hisense (RS-485 via HW-519), Gree and Samsung NASA (F1/F2, RS-485). You do not need to pick a protocol on the website — select the ESP32-C6 board and click “Flash”.

After flashing: power up the module, open the PirogovX Climate app, add a new device and choose automatic detection. The app will pass the Wi-Fi settings over, and the module will detect the protocol on its own.

For some Midea models, the app may ask you to press LED on the remote control 7 times in a row until AP appears on the air conditioner display.

Can I control the air conditioner through Home Assistant?

Yes. The Zigbee builds (ESP32-H2 and ESP32-C6) connect to Home Assistant via Zigbee2MQTT: add the external converter esp-ac.js and run Reconfigure on the device. The air conditioner will appear in Home Assistant with control over temperature, mode, fan and louvers, plus temperature telemetry.

The Wi-Fi builds work over MQTT: you can use your own MQTT broker or the cloud WQTT. The Android app can control Home Assistant climate entities directly.

Does air conditioner control work without the cloud?

Yes. Local control works without WQTT and without the internet: the app controls the module over the local network, and scenarios run on the ESP itself.

The cloud (WQTT) is only needed for Yandex Alice and for remote access from anywhere.

How do I check whether my air conditioner model is compatible?

Signs of compatibility: the air conditioner has a UART connector for a stock Wi-Fi module, an original OSK102/OSK103/OSK302 module, or the original NetHome Plus / Midea Air / MSmartHome app.

Look up your model in the search on the page or in the compatibility list; if it is not there, submit a request via the “Report a model” form. We will use the UART logs to determine the right profile.

Can I control the air conditioner from my phone?

Yes, there is a PirogovX Android app for that: it is published on RuStore, and you can download the APK on this page. The module is set up over Bluetooth or through its Wi-Fi access point, after which you control temperature, mode, fan and louvers — locally or through Alice.

Is Yandex Alice supported?

Yes, through WQTT. Enter the WQTT API token in the module settings, then link your WQTT account in the “House with Alice” app — the air conditioner will appear in the device list.

A step-by-step guide is in the “WQTT/Alice” section on this page.

Which ESP32 module do I need?

The main recommendation is the ESP32-C6 SuperMini: for the Wi-Fi, Matter and Zigbee builds. The ESP32-C3 SuperMini is used in some Wi-Fi builds (TCL, Hommyn/Neoline), and the ESP32-H2 only in Zigbee builds.

A regular ESP32, the ESP32-S2/S3 and the ESP8266 are not suitable.

Do I need to solder anything?

No. The firmware is installed from the browser over USB (Web Serial), with no soldering iron and no programming.

Connecting to the air conditioner board takes three wires — GND/TX/RX — to the UART connector.

✅
Flashing complete! If this helped, buy me a coffee 😊
Support