Техновости
Новости

ESPHome 2026.10.0b3: улучшения для ESP8266 и ESP32

Вышел бета-релиз ESPHome 2026.10.0b3: экономия flash на ESP8266, обработчик прерываний mcp23xxx в IRAM, числовые ID планировщика для Wi-Fi и MQTT, отслеживание conn_id в ESP32 BLE-клиенте и правки сборки с ESP-IDF.

Editor 5 мин 0 просм.
ESPHome 2026.10.0b3: улучшения для ESP8266 и ESP32

Первоисточник: github.com

Что вошло в бета-релиз ESPHome 2026.10.0b3

Опубликован бета-релиз ESPHome 2026.10.0b3 — предварительная сборка перед стабильной версией. Основные изменения: экономия памяти на ESP8266, упрощение планировщика, доработки BLE-клиента на ESP32 и правки сборки.

  • ESP8266: таблицы float ArduinoJson перенесены во flash (Arduino core 3.1.2-esphome.3).
  • ESP8266: обработчик прерываний mcp23xxx_base удерживается в IRAM.
  • Ядро: zstd_module перенесён из api wizard в esphome.helpers.
  • Wi-Fi, MQTT и improv_serial: переход на числовые идентификаторы планировщика.
  • ESP32 BLE-клиент: conn_id отслеживается для каждой попытки подключения.
  • Сборка и CI: правки для ESP-IDF, toolchain-тестов и Windows.

Оптимизация памяти на ESP8266: таблицы float ArduinoJson во flash

На ESP8266 таблицы float библиотеки ArduinoJson теперь размещаются во flash, а не в оперативной памяти. Изменение пришло вместе с обновлением Arduino core до версии 3.1.2-esphome.3. Для устройств с малым объёмом RAM это освобождает килобайты, которые обычно уходят под буферы и стек.

Обработчик прерываний mcp23xxx_base в IRAM на ESP8266

Для компонента mcp23xxx_base на ESP8266 обработчик прерываний теперь удерживается в IRAM. Это важно, потому что во время операций записи во flash выполнение кода из flash приостанавливается, и обработчик, расположенный в IRAM, продолжает работать корректно.

  • Меньше пропущенных прерываний при работе с flash.
  • Более предсказуемое поведение расширителей портов MCP23xxx.
  • Изменение касается именно платформы ESP8266.

Изменения ядра: перенос zstd_module в esphome.helpers

Модуль zstd_module перемещён из api wizard в esphome.helpers. Это внутренняя перестройка структуры кода: логика сжатия становится доступной из общего места, а не только из мастера настройки API. Пользовательских изменений в конфигурации это не требует.

Числовые идентификаторы планировщика в Wi-Fi и MQTT

Сразу несколько компонентов перешли со строковых имён на числовые идентификаторы планировщика: Wi-Fi, отложенная публикация состояния в MQTT и таймаут подключения к Wi-Fi в improv_serial. Числовые ID дешевле по памяти и быстрее в сравнении, что особенно заметно на устройствах с ограниченными ресурсами.

Где применены числовые ID планировщика
КомпонентЧто изменилось
wifiИспользуются числовые ID вместо строковых имён
mqttЧисловой ID для отложенной публикации состояния
improv_serialЧисловой ID для таймаута подключения к Wi-Fi

ESP32 BLE-клиент: отслеживание conn_id и логирование

В компоненте esp32_ble_client теперь conn_id отслеживается для каждой попытки подключения, а при неудачном открытии соединения ошибка больше не пишется в лог. Это делает логи чище и упрощает диагностику повторных попыток подключения.

Исправления сборки и CI: ESP-IDF, toolchain, Windows

Заметная часть релиза — правки инфраструктуры сборки и непрерывной интеграции. Они не меняют поведение прошивки, но влияют на стабильность и скорость сборок.

  • Сборка очищается при смене цели ESP-IDF.
  • Toolchain-тесты больше не устанавливают ESP-IDF.
  • Исправлены нативные сборки ESP8266 и host на Windows без ccache.
  • Дублирующиеся варианты CI-тестов для ethernet и OTA объединены.
  • Партнёры по шине остаются на одном runner в CI.
  • Исправлена ошибка сборки nrf52 на 3.4.0 при включённом PCH.

Другие изменения и исправления компонентов

  • usb_host: предупреждение вместо ошибки при дублировании записи usb_uart.
  • canbus: исправлены падения при высоких частотах кадров из-за неограниченной итерации.
  • teleinfo: добавлены предопределённые свойства для основных тегов стандарта TIC (breaking change) и исправлено чтение за границами при разбиении кадра.
  • heatpumpir: исправлены скорости вентилятора для протокола mitsubishi_msc.
  • zephyr_mcumgr: включён MCUMGR_GRP_OS для UART-транспорта, а не только BLE.
  • nrf52: исправлено обнаружение BLE OTA/лог-устройств и выбор транспорта на macOS.
  • Обновлён встроенный esphome-device-builder до 1.23.1.

Как обновиться до 2026.10.0b3 и что проверить

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

  1. Обновите ESPHome до версии 2026.10.0b3 через привычный способ установки.
  2. Пересоберите прошивку для своих устройств и проверьте размер образа и свободную память.
  3. На ESP8266 проверьте работу компонентов mcp23xxx и общий запас RAM.
  4. На ESP32 проверьте стабильность BLE-подключений и чистоту логов.
  5. Если используете teleinfo, проверьте конфигурацию из-за breaking change.
  6. Сообщите о проблемах в трекере проекта, если что-то работает не так.

Итоги и что ожидать в стабильном релизе

ESPHome 2026.10.0b3 — это в первую очередь техническая подготовка: экономия памяти на ESP8266, более лёгкий планировщик, аккуратный BLE-клиент и надёжная сборка. Если бета не выявит регрессий, эти изменения войдут в стабильный релиз 2026.10.0.

Это стабильный релиз?

Нет, 2026.10.0b3 — бета-версия перед стабильным релизом. Она предназначена для тестирования.

Нужно ли менять конфигурацию после обновления?

В большинстве случаев нет. Исключение — компонент teleinfo, где изменение помечено как breaking change.

Что даёт перенос таблиц float ArduinoJson во flash?

На ESP8266 это освобождает оперативную память, так как константные таблицы хранятся во flash.

Почему обработчик прерываний mcp23xxx перенесли в IRAM?

Чтобы он продолжал работать во время операций записи во flash, когда выполнение кода из flash приостанавливается.

Читайте также