
Прошивка ESP32/ESP8266 через ESPHome
Если у вас есть плата на ESP, а подключать каждый раз для прошивки ее не хочется. Или по какой-то причине это не получается сделать через сторонние программы. То есть выход — прошить через ESPHome.
Внутри Home Assistant будет скачен необходимый софт и скомпилирован код. Управлять процессом прошивки, можно будет напрямую через браузер.
А в дальнейшем появится возможность прошивать через wifi, без необходимости подключать по проводу.
Подготовка к прошивке
У вас должна установлена интеграция ESPHome. Если ее нет, то воспользуйтесь нашим материалом — установка ESPHome Home Assistant.
Во время прошивки отключите все, что к ней подключено. Если этого не сделать, то может испортиться плата. В случае невозможности отключения, обязательно подключите внешнее питание на потребители.
Процесс прошивки
Создаем новое устройство в ESPHome. Нажимам на кнопку «+ New Device» и вводим удобное название, чтобы потом понимать, что за устройство. Так как их может быть несколько штук.
Если до этого вы не вводили данные от wifi сети, интеграция запросит их.

Далее требуется выбрать тип платы. В случае, если вы не знаете его, то посмотрите в интернет магазине, где была куплена ESP. Если и там нет, то не беда, выбирайте первый вариант. И при ошибке во время подключения указывайте следующий пункт. Рано или поздно интеграция подключится, без вреда плате.

После создания появится ключ для расшифровки. Запишите его, он понадобится для дальнейшей настройки в Home Assistant. Его можно посмотреть позже в конфигурации устройства и изменить.

Для примера добавим датчики HHCC Flower Monitor от Xiaomi.
esp32_ble_tracker:
sensor:
- platform: xiaomi_hhccjcy01
mac_address: '71:20:98:00:B9:BB'
temperature:
name: "Xiaomi HHCCJCY01 Temperature"
moisture:
name: "Xiaomi HHCCJCY01 Moisture"
illuminance:
name: "Xiaomi HHCCJCY01 Illuminance"
conductivity:
name: "Xiaomi HHCCJCY01 Soil Conductivity"
battery_level:
name: "Xiaomi HHCCJCY01 Battery Level"

При установке будет несколько вариантов, первый раз выбираем «Plug into the computer running ESPHome Dashboard». Последующие разы можно прошивать через Wifi, выбрав первый пункт.

Подключаем плату к нашему серверу Home Assistant по USB. И выбираем ее в списке.

Процесс установки в первый раз будет довольно долгий. Не закрывайте окно пока он полностью не завершится.

Добавление в Home Assistant
Переходим в список интеграций, находим в поиске ESPHome и вводим его IP (можно посмотреть в настройках роутера). Home Assistant так же автоматически предложит ее установить.
Важно установить статический IP для платы. Иначе DHCP на роутере поменяет внутренний IP и устройство пропадет. Придется править конфигурацию.


Далее нас просят ввести тот самый ключ расшифровки

После чего устройство появляется в общем списке. Данные с него не всегда приходят в момент установки. Необходимо подождать до 1 минуты.


Мой сервер на RPI3 очень долго заливалась прошивка, но в конечном итоге получилось. Спасибо!
Долго перебирал всякие типы ESP. Уже думал ничего не подойдет, предпоследний сработал. Прошивку смог загрузить.
Тоже самое, на самой ESP ничего не написано. Только последняя и сработала
У меня так и не получилось ничего сделать. Но как оказалось ESP сдохла. Заказал новую, буду еще раз пробовать.
Доброго времени, статья хорошая. Можно поподробнее про изменение «encryption» ключ для расшифровки?
Доброго времени, а что именно интересует? На этапе создания нового устройства, вам выдается уникальный ключ. Сам по себе он не изменяется, нужен для безопасного соединения.
Если по какой-то причине вы его забыли, то можно нажать на три точки справа снизу на карточке устройства и выбрать «Show API Key»
Не понятно при чем тут датчики Xiaomi, у меня есть esp к которой подключены датчики на пинах esp, и вот ее надо добавить в HomeAssistent. Такой вариант получится?
А можно ли из ESP32 передавать данные по BLE сразу в home assistant? Чтобы данные появлялись в виде сенсоров. Без wifi и esphome, только по BLE
Интересно. А может кто-нибудь подсказать, устройство с прошивкой ESPhome может работать локально, без связи с сервером HomeAssistant? Чтобы на случай упадения сервера устройство продолжало отрабатывать свои локальные таймеры и правила?
Добрый день, дорогие друзья! Очень прошу помочь новичку.
Установил HA через VirtualBox, который стоит на Win10. установил ESPHome. Однако ESPHome не компилирует и выдает ошибку.
INFO ESPHome 2025.6.3
INFO Reading configuration /config/esphome/test.yaml…
INFO Generating C++ source…
INFO Updating https://github.com/espressif/esp-protocols.git@mdns-v1.8.2
INFO Compiling app…
Processing test (board: esp32dev; framework: espidf; platform: https://github.com/pioarduino/platform-espressif32/releases/download/53.03.13/platform-espressif32.zip)
———————————————————————————
HARDWARE: ESP32 240MHz, 320KB RAM, 4MB Flash
— framework-espidf @ 3.50302.0 (5.3.2)
— tool-cmake @ 3.30.2
— tool-esptoolpy @ 4.8.6
— tool-mklittlefs @ 3.2.0
— tool-ninja @ 1.7.1
— tool-riscv32-esp-elf-gdb @ 14.2.0+20240403
— tool-xtensa-esp-elf-gdb @ 14.2.0+20240403
— toolchain-esp32ulp @ 2.35.0-20220830
— toolchain-xtensa-esp-elf @ 13.2.0+20240530
Reading CMake configuration…
— git rev-parse returned ‘fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).’
— The CXX compiler identification is unknown
— The ASM compiler identification is GNU
— Found assembler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-gcc
— Detecting CXX compiler ABI info
— Detecting CXX compiler ABI info — failed
— Check for working CXX compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-g++
— Check for working CXX compiler: /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-g++ — broken
— Configuring incomplete, errors occurred!
fatal: not a git repository (or any parent up to mount point /)
Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).
CMake Error at /data/cache/platformio/packages/tool-cmake/share/cmake-3.30/Modules/CMakeTestCXXCompiler.cmake:73 (message):
The C++ compiler
«/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-g++»
is not able to compile a simple test program.
It fails with the following output:
Change Dir: ‘/data/build/test/.pioenvs/test/CMakeFiles/CMakeScratch/TryCompile-eaAbBU’
Run Build Command(s): /data/cache/platformio/packages/tool-ninja/ninja -v cmTC_efe3a
[1/2] /data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-g++ -mlongcalls -Wno-frame-address -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_efe3a.dir/testCXXCompiler.cxx.obj -c /data/build/test/.pioenvs/test/CMakeFiles/CMakeScratch/TryCompile-eaAbBU/testCXXCompiler.cxx
FAILED: CMakeFiles/cmTC_efe3a.dir/testCXXCompiler.cxx.obj
/data/cache/platformio/packages/toolchain-xtensa-esp-elf/bin/xtensa-esp32-elf-g++ -mlongcalls -Wno-frame-address -fno-builtin-memcpy -fno-builtin-memset -fno-builtin-bzero -fno-builtin-stpcpy -fno-builtin-strncpy -o CMakeFiles/cmTC_efe3a.dir/testCXXCompiler.cxx.obj -c /data/build/test/.pioenvs/test/CMakeFiles/CMakeScratch/TryCompile-eaAbBU/testCXXCompiler.cxx
/data/build/test/.pioenvs/test/CMakeFiles/CMakeScratch/TryCompile-eaAbBU/testCXXCompiler.cxx: internal compiler error: Segmentation fault
0x164b716 internal_error(char const*, …)
???:0
0xca3022 cl_optimization_hash(cl_optimization const*)
???:0
0x103b85c build_optimization_node(gcc_options*, gcc_options*)
???:0
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See for instructions.
ninja: build stopped: subcommand failed.
CMake will not be able to correctly generate this project.
Call Stack (most recent call first):
/data/cache/platformio/packages/framework-espidf/tools/cmake/project.cmake:564 (__project)
CMakeLists.txt:3 (project)
========================== [FAILED] Took 7.06 seconds ==========================