ESPHome 2026.10: OTA на треть меньше, исходящее подключение API и ломающие правки в конфигах

Иллюстрация к статье про ESPHome 2026.10

21 октября вышел ESPHome 2026.10 — релиз, в котором много «тихих» изменений: прошивки стали легче, обновления по воздуху — меньше, а в конфигах появилось несколько ломающих правок. Если у вас в доме десяток ESP32-устройств на ESPHome, перед обновлением стоит потратить десять минут на чтение списка изменений. Разберём главное.

Обложка: плата ESP32 и надпись ESPHome 2026.10
Иллюстрация к статье

Что нового

  • Сжатые OTA-загрузки. На ESP32, RP2040, LibreTiny и host образы при обновлении по воздуху сжимаются — примерно на треть меньше. Старые клиенты и старые прошивки при этом обновляются как раньше.
  • Исходящее подключение Native API. Опция outgoing_connection в блоке api: позволяет устройству самому «позвонить» серверу — удобно, если оно за NAT. Требуется включённое encryption:.
  • Мастер настройки в Home Assistant. Блок wizard: в api: описывает страницы онбординга; Home Assistant покажет его начиная с версии 2026.11.
  • Быстрее сборка ESP-IDF. Сборка вызывает cmake и ninja напрямую, а флаг --skip-bootloader ускоряет сборки только для OTA.
  • Zigbee на ESP32. Компонент zigbee получил поддержку переключателей и опцию cluster: device_class, которая публикует датчики через кластеры измерений вместо Analog/Binary Input.
  • Экономия памяти. Упаковка полей, таблицы кодогенерации во флеше и инлайнинг заголовков снижают расход RAM и flash. На ESP32 также можно держать кэш NVS в PSRAM (когда PSRAM гарантированно есть), а лишние драйверы флеш-чипов — отключать.
  • Новые компоненты. Добавлено 20, среди них espectre (определение движения по Wi-Fi), counter, stcc4, tfluna и tas58xx.
  • ESP8266. По умолчанию используется нативный тулчейн arduino: сборка быстрее, а на Mac с Apple Silicon не нужен Rosetta.
Схема: устройство за NAT само подключается к Home Assistant
Иллюстрация к статье: исходящее соединение Native API

Что может сломаться

Самое заметное — замена restore_mode на restore_state у света. Старый ключ пока работает, но объявлен устаревшим. Новый позволяет для каждого свойства отдельно оставить, инвертировать или принудительно задать значение. Важный побочный эффект: свет с initial_state: {state: on} и без явного restore_mode: теперь будет включаться при загрузке, тогда как раньше по умолчанию принудительно выключался. Просмотрите все лампы, где задан initial_state, иначе после перепрошивки часть света может зажечься среди ночи.

Остальные правки из чек-листа обновления:

  • Для ESP8266 можно вернуться к старому пути: toolchain: platformio в блоке esp8266:. Он объявлен устаревшим и будет удалён в версии 2027.4.0.
  • В компоненте speaker удалён codec_support_enabled — конфиги с этим ключом не пройдут валидацию; для прежнего поведения задайте в пайплайне format: NONE. Громкость и mute теперь независимы.
  • В climate IR режим heat_cool больше не предлагается, если supports_heat: false или supports_cool: false; чтобы сохранить его, добавьте supports_heat_cool: true.
  • У remote_receiver на ESP8266, RP2040, LibreTiny, ESP32-C2 и ESP32-C61 buffer_size: теперь в байтах — явные значения нужно умножить на 4.
  • Перекрывающиеся записи usb_uart не проходят валидацию; разделяйте их фильтрами manufacturer и product.
  • Сборка платформы host идёт нативно через ninja, поддержка Windows для неё прекращена.

Практическая часть: безопасное обновление

Не обновляйте все устройства сразу. Сначала проверьте конфиги на валидность и посмотрите предупреждения об устаревших ключах — на одном тестовом устройстве:

pip install -U esphome
esphome version
esphome config my-device.yaml        # валидация и предупреждения
esphome compile my-device.yaml       # проверка сборки
esphome run my-device.yaml --device OTA

Если ESP8266-проект не собирается новым тулчейном, временно закрепите старый:

esp8266:
  board: nodemcuv2
  toolchain: platformio   # устаревший путь, удаляется в 2027.4.0

Для климата с ИК-управлением, где нужен режим «авто/heat_cool» при выключенных нагреве или охлаждении:

climate:
  - platform: ...        # ваш ИК-климат
    supports_heat_cool: true

Если в лямбдах используется поле raw_state сенсора, замените его вызовом метода — иначе сборка упадёт:

// было
float v = id(my_sensor).raw_state;
// стало
float v = id(my_sensor).get_raw_state();

Для устройств с подписанными OTA-обновлениями релиз вводит параметр allow_plaintext_upload: true в ota: encryption: — он разрешает одну миграционную установку; после неё его стоит убрать. Точный синтаксис restore_state, outgoing_connection и wizard: смотрите в документации компонентов на esphome.io: он зависит от платформы и версии, и копировать его «по памяти» не стоит.

Выводы

Релиз 2026.10 в основном про эксплуатацию: меньшие образы для OTA, ускоренные сборки и возможность подключить устройство из-за NAT. Цена — несколько ломающих изменений, самое коварное из которых — поведение света при загрузке. Обновляйтесь поэтапно: один тестовый узел, проверка esphome config, затем остальные.

Источники

Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *