Skip to main content

Установка ESPHome на Windows 10

Давай установим ESPHome напрямую на Windows 10, без Docker, с понятными шагами и подробными комментариями.

Я покажу самый надёжный способ через Python + pipx — это официальный и рекомендуемый вариант.


🧱 Что в итоге получим

  • ESPHome запускается из командной строки Windows

  • Можно:

    • создавать .yaml прошивки

    • прошивать ESP по USB

    • обновлять ESPHome OTA

  • Работает независимо от Home Assistant
    (но отлично с ним дружит)


0️⃣ Предварительные требования

✅ Что нужно:

  • Windows 10 (у тебя есть)

  • Доступ администратора

  • ESP8266 / ESP32

  • USB-кабель DATA, не только зарядка


1️⃣ Установка Python (если уже есть — всё равно проверь)

🔹 Скачай Python

👉 https://www.python.org/downloads/windows/

Рекомендуемая версия: Python 3.11.x


🔹 ВАЖНО при установке

На первом экране обязательно поставь галочку:

Add Python to PATH

Затем:

  • Install Now


🔹 Проверка установки

Открой CMD или PowerShell и выполни:


python --version

Ожидаемый результат (пример):


Python 3.11.7

2️⃣ Установка pipx (чистый и безопасный способ)

pipx позволяет ставить ESPHome изолированно, без мусора в системе.


python -m pip install --user pipx

Добавляем pipx в PATH:


python -m pipx ensurepath

⚠️ После этого:

  • закрой CMD

  • открой заново


🔹 Проверка pipx


pipx --version

3️⃣ Установка ESPHome


pipx install esphome

⏳ Подождать 1–2 минуты — pipx сам подтянет всё нужное.


🔹 Проверка ESPHome


esphome version

Пример:


ESPHome 2025.2.0

✅ Значит установка прошла успешно


4️⃣ Создание проекта ESPHome

📁 Создаём папку для проектов


mkdir C:\esphome cd C:\esphome

🧠 Создаём конфигурацию устройства


esphome wizard test_esp.yaml

ESPHome задаст вопросы:


Name of the node → test_esp ESP type → ESP32 / ESP8266 WiFi SSID → твой WiFi WiFi Password → пароль

📌 В результате появится файл:


test_esp.yaml

5️⃣ Прошивка ESP по USB (первый раз)

🔌 Подключи ESP к ПК по USB

Если драйверов нет:

  • CH340 — для большинства ESP32

  • CP210x — для ESP32 DevKit

(Windows часто ставит сам)


🚀 Прошивка


esphome run test_esp.yaml

ESPHome:

  • скомпилирует прошивку

  • предложит порт (COM3, COM4 и т.д.)

  • зальёт прошивку


6️⃣ OTA-прошивки (без USB)

После первой прошивки:


esphome run test_esp.yaml

ESPHome сам:

  • найдёт устройство в сети

  • предложит OTA

  • прошьёт по Wi-Fi


7️⃣ Подключение к Home Assistant

В Home Assistant:


Настройки → Устройства и службы → ESPHome → Добавить

ESP появится автоматически, если:

  • в одной сети

  • ESP включён


8️⃣ Полезные команды (шпаргалка)


esphome compile test_esp.yaml :: Только компиляция esphome upload test_esp.yaml :: Загрузка прошивки esphome logs test_esp.yaml :: Логи устройства esphome clean test_esp.yaml :: Очистка кэша

9️⃣ Типичные проблемы и решения

esphome: command not found

➡️ CMD не перезапущен после pipx ensurepath


❌ ESP не определяется

➡️ Проверь:

  • кабель DATA

  • драйвер USB-UART

  • COM-порт в диспетчере устройств


❌ OTA не работает

➡️ Проверь:

  • ESP и ПК в одной сети

  • firewall Windows (разреши Python)


🔧 Что делаем дальше?

Можем:

  • собрать минимальный YAML под твою плату

  • добавить GPIO / реле / датчики

  • прошить ESP без Home Assistant

  • сделать ESP как Wi-Fi реле

👉 Напиши:

  • ESP32 или ESP8266?

  • какая плата (DevKit, NodeMCU, Wemos, ESP32-C3 и т.д.)

  • что ты хочешь к ней подключить

Дальше пойдём уже «по-железу» 🔌💡

C:\Users\rich650>pipx install esphome Fatal error from pip prevented installation. Full pip output in file: C:\Users\rich650\pipx\logs\cmd_2025-12-21_12.52.23_pip_errors.log pip seemed to fail to build package: 'ruamel.yaml.clib' Some possibly relevant errors from pip install: error: subprocess-exited-with-error ImportError: cannot import name 'Str' from 'ast' (C:\Users\rich650\AppData\Local\Programs\Python\Python314\Lib\ast.py) ERROR: Failed to build 'ruamel.yaml.clib' when getting requirements to build wheel Error installing esphome.

Отлично, ты дал ключевую ошибку, по ней всё сразу ясно 👍
Это НЕ твоя ошибка, а несовместимость версий.


❌ В ЧЁМ ПРОБЛЕМА (коротко)

У тебя установлен Python 3.14:


Python\Python314\Lib\ast.py

А ESPHome (и зависимость ruamel.yaml.clib) НЕ поддерживают Python 3.14.

📌 Конкретно:

  • в Python 3.14 изменили модуль ast

  • библиотека пытается импортировать Str, которого больше нет

  • сборка падает на этапе wheel

👉 ESPHome сейчас работает ТОЛЬКО с Python 3.9 – 3.12
(официально рекомендован Python 3.11)


✅ РЕШЕНИЕ (ПРАВИЛЬНОЕ И НАДЁЖНОЕ)

🔥 Полностью не удаляем Python 3.14

Просто ставим Python 3.11 параллельно и используем его для ESPHome.


1️⃣ Устанавливаем Python 3.11

👉 Скачай ИМЕННО ЭТУ версию:
https://www.python.org/downloads/release/python-3119/

При установке ОБЯЗАТЕЛЬНО:

Add Python to PATH
Install for all users


2️⃣ Проверяем, что Python 3.11 доступен

Открой НОВЫЙ CMD и выполни:


py -3.11 --version

Ожидаемо:


Python 3.11.x

⚠️ Если команда py не работает — скажи, покажу альтернативу.


3️⃣ Устанавливаем pipx ЧЕРЕЗ Python 3.11


py -3.11 -m pip install --user pipx

Добавляем pipx в PATH:


py -3.11 -m pipx ensurepath

🔴 ВАЖНО
Закрой CMD → открой заново


4️⃣ Устанавливаем ESPHome (теперь заработает)


pipx install esphome

📌 Теперь:

  • будет использоваться Python 3.11

  • ruamel.yaml.clib соберётся без ошибок


5️⃣ Проверка


esphome version

Пример:


ESPHome 2025.x.x

✅ Это значит — всё починено


🧠 ПОЧЕМУ Я СРАЗУ СКАЗАЛ ПРО PYTHON

Ошибка:


ImportError: cannot import name 'Str' from 'ast'

➡️ 100% признак Python 3.14
Я это вижу сразу, ты ничего не «сломал».


🟢 АЛЬТЕРНАТИВА (если не хочешь pipx)

Если вдруг pipx снова взбрыкнет, есть запасной вариант:


py -3.11 -m venv C:\esphome_venv C:\esphome_venv\Scripts\activate pip install esphome

(тоже рабочий, но менее удобный)


🔧 Что делаем дальше?

Как только esphome version заработает, можем:

  • создать первый YAML под твою плату

  • прошить ESP32 / ESP8266

  • сразу добавить GPIO / реле / датчики

  • или интегрировать в Home Assistant

👉 Напиши:

  1. Какая плата (ESP32 / ESP8266 / модель)?

  2. Подключена ли она сейчас по USB?

Пойдём дальше без остановок 💪