1. Название и модель
Everest Air отличается от Core моторизованной заслонкой и датчиком открытой крышки фильтра. Штатный модуль — ESP32-C3-SOLO-1, обмен с MCU по UART 115200. В компоненте tuct модель пишется слитно: EVERESTAIR.
README советует ставить свой ESP и глушить штатный, замкнув EN на гребёнке на землю. Гребёнка та же шестёрка: EN, GND, 3,3 В, TX, RX, IO0.
Три чёрных винта сверху. Дальше крышка на клипсах, тянуть сзади вверх.
2. Что даёт перепрошивка
- Вентилятор с ручным, автоматическим и ночным режимами
- PM1.0, PM2.5 и PM10
- Угол заслонки 45–90°, это отдельное число Everest Air
- Датчик открытой задней дверцы: пока она открыта, аппарат выключается
- Фильтр, CADR, таймер, экран, блокировка, версия MCU
3. Что теряется
- Облако VeSync больше не управляет очистителем
- Гарантия после разбора обычно заканчивается
- Заслонка и датчик дверцы есть только у этой модели. Конфиг Core их не добавит
4. Что понадобится
- Отвёртка под три верхних винта и пластиковый съёмник клипс
- USB–UART 3,3 В и перемычка IO0, если прошиваете штатный модуль
- Свой ESP32-C3 или S3, если идёте рекомендованным путём замены
- Файл
levoit-everest-air.yamlили builder из того же каталога
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.
Выкручивают три чёрных винта сверху, поддевают заднюю кромку и снимают крышку с клипс слева и справа.
На фото UART и питания в README подписаны площадки нового модуля: EN штатного чипа на землю, питание и перекрёстные TX/RX. Для прошивки штатного модуля переходник сажают на гребёнку: TX адаптера на RX, RX адаптера на TX, IO0 на землю до включения.
Не переносите сюда номера GPIO с Core 200S, пока не открыли yaml именно Everest Air.
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.
Как собрать конфиг
- В Dashboard нажмите New Device и выберите чип, который стоит на плате: ESP8266, ESP32 или BK72xx. Имя — латиницей, без пробелов.
- Пароль Wi-Fi уберите в файл
secrets.yamlрядом с конфигом. В YAML оставьтеssid: !secret wifi_ssidиpassword: !secret wifi_password. - Блок UART, модель и скорости из раздела ниже вставьте в этот файл. Полный пример, если он длинный, берите по ссылке в источниках внизу страницы, а не из гайда соседней модели.
- Строки
api:иota:оставьте. Безapi:Home Assistant устройство не увидит. Ключ шифрования Dashboard предлагает сам, его потом спросит интеграция ESPHome.
Как залить первый раз
- Подключите USB–UART, как в разделе «Разборка и пины»: земля переходника на землю платы, TX переходника на RX модуля, RX переходника на TX модуля. Логика 3,3 В. Имена площадок на конкретной плате — там же.
- Для ESP8266 и ESP32 замкните GPIO0 (IO0, BOOT) на землю и в этот момент подайте питание. Для BK72xx ltchiptool сам просит перезапустить чип, обычно кратким отключением земли.
- В Dashboard: Install → Plug into this computer, выберите порт переходника. Либо Install → Manual download, сохраните
.binи откройте его на web.esphome.io. Из терминала то же самое делаетesphome run имя-устройства.yaml. - Когда в логе появится IP-адрес, GPIO0 от земли отпустите, провода можно отпаять. Следующие обновления идут по Wi-Fi, пункт OTA, паяльник больше не нужен.
Дальше — только то, чем эта модель отличается от общей схемы.
esptool read_flash 0 ALL levoit-everest-air-backup.bin
Пример GPIO17/16 — для штатного ESP32 из общего README компонента. Файлы замены называются levoit-everest-air-builder-c3.yaml и -s3.yaml. Возврат к заводской прошивке — запись своего дампа с нулевого адреса после erase_flash.
Базовый конфиг этой модели с карточки или из репозитория компонента. Wi-Fi, пароль и OTA задайте как в общем разделе выше. Пароли из исходника сюда не перенесены.
# levoit-everest-air.yaml
# Example levoit-everest-air.yaml for flashing the original ESP32-SOLO-1.
# NOTE: UART pins below are placeholders (original ESP32-SOLO-1 mapping) —
# verify against your wiring, see this device's README "Wiring New ESP".
substitutions:
device_name: levoit-everest-air
wifi_ap_ssid: "Levoit-EverestAir"
rx_pin: GPIO16 #TP82
tx_pin: GPIO17 #TP33
esphome:
name: ${device_name}
esp32:
board: esp32dev
framework:
type: esp-idf
sdkconfig_options:
CONFIG_FREERTOS_UNICORE: y
packages:
common: !include common.yaml
source: !include ../packages/source_git.yaml
# common.yaml
# Do not use this file directly, it is included in the device yaml files. Put common configuration here.
# Enable logging
logger:
level: DEBUG
uart:
- id: uart_mcu2esp
tx_pin:
number: ${tx_pin}
inverted: false
rx_pin:
number: ${rx_pin}
inverted: false
baud_rate: 115200
levoit:
id: leveverestair
model: EVERESTAIR
fan:
- platform: levoit
levoit: leveverestair
name: "Fan"
id: levoit_fan1
switch:
- platform: levoit
levoit: leveverestair
name: "Display"
type: display
- platform: levoit
levoit: leveverestair
name: "Child Lock"
type: child_lock
- platform: levoit
levoit: leveverestair
name: "Light Detect"
type: light_detect
number:
- platform: levoit
levoit: leveverestair
name: "Timer (min)"
type: timer
- platform: levoit
levoit: leveverestair
name: "Filter Months"
type: filter_lifetime_months
# EverestAir-specific: vent louver angle 45–90° (CMD 02 12 55)
- platform: levoit
levoit: leveverestair
name: "Vent Angle"
type: vent_angle
sensor:
- platform: levoit
levoit: leveverestair
name: "PM 1.0"
type: pm1_0
- platform: levoit
levoit: leveverestair
name: "PM 2.5"
type: pm25
- platform: levoit
levoit: leveverestair
name: "PM 10"
type: pm10
- platform: levoit
levoit: leveverestair
name: "AQI"
type: aqi
- platform: levoit
levoit: leveverestair
name: "Current CADR"
type: current_cadr
- platform: levoit
levoit: leveverestair
name: "Filter %"
type: filter_life_left
select:
- platform: levoit
levoit: leveverestair
name: "Fan Operating Mode"
type: fan_operating_mode
- platform: levoit
levoit: leveverestair
name: "Auto Mode"
type: auto_mode
text_sensor:
- platform: levoit
levoit: leveverestair
name: "MCU Version"
type: mcu_version
- platform: levoit
levoit: leveverestair
name: "ESP Version"
type: esp_version
- platform: levoit
levoit: leveverestair
name: "Timer Duration"
type: timer_duration_initial
- platform: levoit
levoit: leveverestair
name: "Timer Remaining"
type: timer_duration_remaining
- platform: levoit
levoit: leveverestair
name: "Error"
type: error_message
button:
- platform: levoit
levoit: leveverestair
name: "Filter Reset"
type: reset_filter_stats
binary_sensor:
- platform: levoit
levoit: leveverestair
name: "Filter Low"
type: filter_low
- platform: levoit
levoit: leveverestair
name: "Cover Open"
type: cover_open
7. Настройка в Home Assistant
Заслонку выведите числом рядом с вентилятором. Датчик открытой дверцы полезен в автоматизации: не слать команды, пока крышка фильтра снята, MCU всё равно погасит мотор.
8. Известные баги и как их обойти
- Имя модели в YAML —
EVERESTAIR, без пробела и без дефиса - EN нового модуля и EN штатного путают. На землю сажают EN старого чипа, чтобы он отпустил UART
- Дамп может не сняться из-за сторожа. README предлагает внешнее питание
- Угол заслонки вне 45–90° компонент не обещает
9. Источники
- GitHub tuct/levoit, Everest Air https://github.com/tuct/levoit/tree/main/devices/levoit-everest-air
- GitHub README компонента levoit https://github.com/tuct/levoit/blob/main/components/levoit/README.md
- GitHub tuct/levoit https://github.com/tuct/levoit