ESPHome: remove the platform key from the [esphome] block

Ошибка про ключ platform после обновления ESPHome связана со старым форматом YAML, где platform и board находятся внутри esphome:. Для перехода на новый формат перенесите плату в отдельный блок esp8266: или esp32:. Общие вопросы работы с ESPHome разобраны в гайде ESPHome и ESP32 в Home Assistant.

Как выглядит проблема

После обновления ESPHome или его аддона (дополнения Home Assistant) возникают ошибки сборки и обновления:

  • дисплей Veneer не обновляется после обновления аддона - ESPHome отвергает конфиг старого образца;
  • устройства на ESP8266 перестают собираться с ошибкой про ключ platform;
  • камера на ESP32 не обновляется, потому что platform остался в блоке esphome:.

Текст ошибки такой:

Please remove the `platform` key from the [esphome] block and use the correct platform component. This style of configuration has now been removed.

В случае с камерой на ESP32 сообщение содержало строки конфига:

Please remove the `platform` key from the [esphome] block and use the correct platform component. This style of configuration has now been removed.
  platform: Esp32
  board: esp32dev

Причина

В ESPHome 2025.2.0 удалили поддержку старого способа настройки платы, когда platform и board писали внутри блока esphome:. Изменение описано в анонсе релиза.

ПричинаКак проверитьЧто сделать
Удалена поддержка старого форматаНайти сообщение об ошибке выше и ключи platform и board внутри esphome:Перейти на отдельный компонент платформы по шагам ниже

Рабочее решение

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

  1. Удалите platform и board из блока esphome:.
  2. Добавьте блок esp8266: для плат на ESP8266 или esp32: для ESP32 на том же уровне, что и esphome:.
  3. Перенесите значение board внутрь нового блока.

Для ESP8266 новый конфиг выглядит так:

esphome:
  name: some-name

esp8266:
  board: someboard

Для платы на ESP32, например камеры esp32-cam, так:

esphome:
    name: esp32-cam
esp32:
  board: esp32dev

В документации ESP8266 параметр board отмечен как обязательный. Сопоставление старого и нового формата для ESP32 показывает предложение изменения кода (pull request 8118) в репозитории ESPHome.

Если не помогло

Проверьте расположение блоков и отступы в YAML. Внутри esphome: не должны оставаться platform и board. Блок esp8266: или esp32: должен стоять на одном уровне с esphome:, а board - внутри выбранного блока платформы.

Если сборка прошла, но устройство не отвечает по Modbus RS485, посмотрите разбор ошибки no response received в ESPHome и Modbus.

Частые вопросы

В какой версии ESPHome удалили старый формат?

Старый формат удалили в ESPHome 2025.2.0 от 19 февраля 2025 года. На форуме встречалось предположение о версии 2024.6.0, но оно ошибочно. Анонс 2025.2.0 прямо связывает удаление поддержки прежнего способа настройки микроконтроллера и платы с этим релизом. Поэтому при определении версии, в которой изменился формат, ориентируйтесь на официальный анонс.

Что означает значение board?

board задает идентификатор платы в системе PlatformIO. Так параметр описан в документации ESP8266. Например, на ее странице показан board: nodemcuv2, а в примере камеры на ESP32 используется esp32dev. Это значения для разных плат. В примере ESP8266 из форума стоит someboard - условное обозначение платы, которое не следует подставлять вместо собственного значения.

Поможет ли заменить значение platform?

В случае с камерой на ESP32 замена значения не помогла. Пользователь пробовал esp32, esp32_camera и esp32_dev, но обновление по-прежнему не устанавливалось. В сообщении об ошибке были строки platform: Esp32 и board: esp32dev. Сама ошибка требует убрать ключ из блока esphome: и использовать соответствующий компонент платформы. Перебор названий внутри прежнего блока оставлял старую структуру конфига.

Андрей Ковалев, редактор. Собирает решения из веток форума Home Assistant и сверяет команды и настройки с официальной документацией.