Обновлено 2026-09-22

Haier, кондиционер по UART

Haier, модель SmartAir2 и hOn. 4/5 · пайка. Модуль Wi-Fi говорит со вторым микроконтроллером.

1. Название и модель

Компонент haier говорит с блоками SmartAir2 и hOn. По проводу протоколы совместимы, команды разные. Поле protocol ставят по приложению: smartair2 или hon. Если поле не указать, документация берёт smartair2.

Старые блоки ходят с модулем KZW-W002. Его нельзя прошить и оставить. Нужен свой ESP или Pico W. Разъём на плате выглядит как USB, но USB-протокола там нет, это UART.

Новые блоки ставят плату ESP32-for-Haier на ESP32-S0WD. Часть из них прошивается, часть уже с шифрованием. Документация предупреждает: после попытки залить неподписанную прошивку плата уходит в цикл rst:0x10 (RTCWDT_RTC_RESET),boot:0x13 (SPI_FAST_FLASH_BOOT). Вернуть её можно только заводским образом. Сначала снимают резервную копию.

Питание и земля общие с блоком. Внутренний блок обесточивают, прежде чем резать кабель.

2. Что даёт перепрошивка

  • Климат Haier локально, без приложения hOn или SmartAir2
  • Свой ESP сажается на штатный разъём, плату кондиционера не перепаивают
  • Для hOn в компоненте есть дисплей, пищалка и направление шторок

3. Что теряется

  • Модуль KZW-W002 выбрасывают, облачное приложение с ним уходит
  • Зашифрованный ESP32-for-Haier прошивкой ESPHome не открывается
  • Команды, которых нет на пульте этой модели, документация не рекомендует включать

4. Что понадобится

  • ESP8266, ESP32 или Pico W
  • Кабель USB-A, который режут, либо разъём JST SM04B-GHS-TB, он стоит на плате
  • Резервная копия, если пробуете прошить штатный ESP32-for-Haier

5. Разборка и пины

Программатор USB–UART подключают к модулю, который прошивают, крест-накрест:

  • Земля переходника (GND) — на землю платы. Этот провод обязателен.
  • TX переходника — на RX модуля. На плате площадка часто подписана RX, RXD или RXD0.
  • RX переходника — на TX модуля. На плате это TX, TXD или TXD0.
  • Питание логики — 3,3 В. Пять вольт на эти площадки не подают. Если плату уже кормит её блок, линию 3,3 В с переходника не подключают вторым источником.
  • Для входа в загрузчик ESP8266 и ESP32 площадку GPIO0 (IO0, BOOT) замыкают на землю и в этот момент подают питание. После старта записи землю с GPIO0 снимают.

Если у этой модели в тексте ниже другие имена площадок, прямой порядок TX–TX или прошивка по USB, делайте как написано там. Общая схема выше — для обычного модульного UART.

Таблица документации для старого модуля, колонка ESP8266:

  • 5 В, VCC, красный — на 5 В ESP
  • земля, чёрный — на землю
  • TX, DATA+, зелёный — на RX ESP
  • RX, DATA−, белый — на TX ESP

На ESP8266 RX — это GPIO3, TX — GPIO1. Журнал с этой пары снимают. На другой плате цвета проводов те же, номера GPIO берут от её UART.

6. Прошивка

Готового файла «прошивка именно этой модели» на этом сайте нет. Её собирает ESPHome из текстового конфига YAML: туда входят Wi-Fi, пины и команды второго чипа. Чужой .bin из интернета почти наверняка собран с чужим паролем сети.

Какую программу ставить

  • ESPHome Dashboard — дополнение в Home Assistant или программа на компьютере. В ней пишут YAML, нажимают Install, и она сама собирает прошивку. Установка: дополнение для Home Assistant или команда pip install esphome.
  • ESPHome Web, сайт web.esphome.io, — загрузчик в браузере Chrome или Edge. Им записывают уже собранный .bin на ESP8266 и ESP32 через USB–UART. На BK72xx он не рассчитан.
  • esptool — программа Espressif, чтобы снять заводскую копию флеша и записать .bin, если браузер порт не видит. Репозиторий: espressif/esptool.
  • ltchiptool — то же самое для чипов Beken BK72xx (модули WB3S, WBR3, CB3S и похожие). ESPHome для них собирается через LibreTiny. Программа: libretiny-eu/ltchiptool, описание платы: компонент bk72xx.

Как собрать конфиг

  1. В Dashboard нажмите New Device и выберите чип, который стоит на плате: ESP8266, ESP32 или BK72xx. Имя — латиницей, без пробелов.
  2. Пароль Wi-Fi уберите в файл secrets.yaml рядом с конфигом. В YAML оставьте ssid: !secret wifi_ssid и password: !secret wifi_password.
  3. Блок UART, модель и скорости из раздела ниже вставьте в этот файл. Полный пример, если он длинный, берите по ссылке в источниках внизу страницы, а не из гайда соседней модели.
  4. Строки api: и ota: оставьте. Без api: Home Assistant устройство не увидит. Ключ шифрования Dashboard предлагает сам, его потом спросит интеграция ESPHome.

Как залить первый раз

  1. Подключите USB–UART, как в разделе «Разборка и пины»: земля переходника на землю платы, TX переходника на RX модуля, RX переходника на TX модуля. Логика 3,3 В. Имена площадок на конкретной плате — там же.
  2. Для ESP8266 и ESP32 замкните GPIO0 (IO0, BOOT) на землю и в этот момент подайте питание. Для BK72xx ltchiptool сам просит перезапустить чип, обычно кратким отключением земли.
  3. В Dashboard: Install → Plug into this computer, выберите порт переходника. Либо Install → Manual download, сохраните .bin и откройте его на web.esphome.io. Из терминала то же самое делает esphome run имя-устройства.yaml.
  4. Когда в логе появится IP-адрес, GPIO0 от земли отпустите, провода можно отпаять. Следующие обновления идут по Wi-Fi, пункт OTA, паяльник больше не нужен.

Дальше — только то, чем эта модель отличается от общей схемы.

Для новых блоков в YAML стоит protocol: hon. Для SmartAir2 строку меняют на smartair2. wifi_signal: true в документации отдаёт блоку уровень сети. Базовый конфиг ниже этого не делает. Потолок и пол температуры в примере документации — 16 и 30 °C.

Базовый конфиг этой модели с карточки или из репозитория компонента. Wi-Fi, пароль и OTA задайте как в общем разделе выше. Пароли из исходника сюда не перенесены.

logger:
  baud_rate: 0

# На ESP8266 TX это GPIO1, RX это GPIO3. Зелёный провод кондиционера идёт на RX, белый на TX.
uart:
  id: ac_port
  tx_pin: GPIO1
  rx_pin: GPIO3
  baud_rate: 9600

climate:
  - platform: haier
    id: haier_ac
    # hon — приложение hOn. Старые блоки SmartAir2: protocol: smartair2
    protocol: hon
    name: Haier
    uart_id: ac_port
    visual:
      min_temperature: 16 °C
      max_temperature: 30 °C
      temperature_step: 1 °C

7. Настройка в Home Assistant

Сущность климата придёт через API. Код аварии hOn смотрят в журнале ESPHome: триггер on_alarm_start отдаёт code и message. В базовый конфиг этот триггер не копировался.

8. Известные баги и как их обойти

  • Прошивка зашифрованного ESP32-for-Haier без резервной копии
  • Зелёный и белый перепутаны: зелёный это TX блока и RX ESP
  • protocol: hon на старом SmartAir2 или наоборот
  • Кабель воткнут как настоящий USB в порт компьютера. Это UART на корпусе USB

9. Источники