ESP32-C3 SuperMini не подключается к Wi-Fi в ESPHome: Auth Expired и решение через BSSID

Короткий ответ: если ESP32-C3 SuperMini в ESPHome видит вашу 2.4 ГГц сеть, но не подключается и в логах повторяется Auth Expired, попробуйте указать не только SSID и пароль, но и точный BSSID точки доступа, включить fast_connect: true и поставить умеренную мощность Wi-Fi, например output_power: 8.5dB.

Эта заметка появилась после практической диагностики ESP32-C3 SuperMini с ESPHome 2026.6.2. Было проверено несколько плат ESP32-C3 SuperMini, разные кабели, iPhone hotspot и домашний роутер 2.4 ГГц. Пароль был правильный, другие устройства подключались, но ESP32-C3 раз за разом падала на авторизации.

Симптомы

Типичная картина выглядит так:

  • ESPHome успешно прошивается через USB;
  • плата сканирует эфир и видит нужный Wi-Fi;
  • сигнал может быть нормальным, например около -60 dB;
  • SSID и пароль точно правильные;
  • но IP-адрес не появляется;
  • в логах повторяется Auth Expired.
[W][wifi_esp32]: Disconnected ssid='WIFI_SSID_HERE' reason='Auth Expired'
[W][wifi]: Connecting to network failed

На этом этапе легко подумать, что пароль неверный. Но если телевизор, телефон или ноутбук подключаются к этой же сети, а ESP32-C3 нет, причина может быть не в пароле.

Что помогло

Рабочим решением стала привязка ESPHome к конкретной точке доступа через bssid. То есть ESP подключается не просто к сети по имени, а к конкретному радиомодулю роутера.

Было так:

wifi:
  ssid: "WIFI_SSID_HERE"
  password: "WIFI_PASSWORD_HERE"
  fast_connect: true
  power_save_mode: none

Стало так:

wifi:
  networks:
    - ssid: "WIFI_SSID_HERE"
      bssid: AA:BB:CC:DD:EE:FF
      password: "WIFI_PASSWORD_HERE"
  fast_connect: true
  output_power: 8.5dB
  power_save_mode: none
  ap:
    ssid: "ESPHome Fallback"
    password: "fallback-password"

После такой настройки плата получила IP и начала отвечать по сети:

[C][wifi]:   Connected: YES
[C][wifi]:   IP Address: 192.168.1.207
[C][wifi]:   SSID: 'WIFI_SSID_HERE'
[C][wifi]:   BSSID: AA:BB:CC:DD:EE:FF

Почему BSSID может помочь

SSID — это имя сети, которое видит человек. Например, Home_WiFi_2.4. Но за одним SSID может стоять несколько физических точек: основной роутер, mesh, репитер, гостевая точка или соседний узел с тем же именем.

BSSID — это MAC-адрес конкретной Wi-Fi точки. Когда мы указываем BSSID, ESP32-C3 перестаёт выбирать точку сама и подключается строго к заданному радиомодулю.

В нашем случае именно это изменило поведение: без BSSID были постоянные Auth Expired, а с BSSID плата подключилась и получила IP.

Как узнать BSSID

Самый простой способ — посмотреть логи ESPHome при сканировании. До подключения ESPHome обычно выводит найденные сети примерно так:

- 'WIFI_SSID_HERE' (AA:BB:CC:DD:EE:FF) Ch: 6 -61dB

Вот значение в скобках и есть BSSID. Его нужно вставить в YAML:

bssid: AA:BB:CC:DD:EE:FF

На macOS BSSID также можно посмотреть через Wi-Fi диагностику или сторонние Wi-Fi scanner приложения. На Android это часто видно в приложениях типа WiFi Analyzer.

Важная проверка: уровень сигнала

Если сеть видна с уровнем около -85…-90 dB, это очень слабый сигнал. ESP32-C3 SuperMini может видеть такую сеть в скане, но не удерживать авторизацию. В таком случае BSSID может не помочь: нужно поднести плату ближе к роутеру, использовать другую точку доступа или поставить репитер ближе.

Ориентиры по уровню сигнала:

  • -40…-60 dB — хорошо;
  • -60…-70 dB — обычно нормально;
  • -75 dB и ниже — уже рискованно;
  • -85…-90 dB — сеть может отображаться, но подключение будет нестабильным.

Пример для ESPHome + Midea climate

Если ESP32-C3 SuperMini используется как Wi-Fi модуль для кондиционера Midea через UART, сначала проверьте Wi-Fi отдельной тестовой прошивкой. Только после успешного IP переходите к полной конфигурации Midea.

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino

wifi:
  networks:
    - ssid: "WIFI_SSID_HERE"
      bssid: AA:BB:CC:DD:EE:FF
      password: "WIFI_PASSWORD_HERE"
  fast_connect: true
  output_power: 8.5dB
  power_save_mode: none

uart:
  id: uart_midea
  tx_pin: GPIO20
  rx_pin: GPIO21
  baud_rate: 9600

climate:
  - platform: midea
    name: "Midea AC"
    uart_id: uart_midea
    autoconf: true

Для компонента climate.midea в ESPHome важно использовать Arduino framework:

esp32:
  board: esp32-c3-devkitm-1
  framework:
    type: arduino

Чек-лист диагностики

  1. Проверьте, что сеть именно 2.4 ГГц. ESP32-C3 не подключается к 5 ГГц.
  2. Проверьте пароль на другом устройстве.
  3. Отключите MAC-фильтр, blacklist/whitelist и WPS на роутере.
  4. Поставьте WPA2-PSK/AES, без экзотических смешанных режимов.
  5. Посмотрите в логах ESPHome, видит ли плата сеть и какой уровень сигнала.
  6. Если видите Auth Expired, попробуйте конфигурацию с bssid.
  7. Если сигнал слабее -80 dB, проверьте рядом с роутером.
  8. Сначала прошейте Wi-Fi test, потом уже датчики, UART и Midea climate.

Почему лучше сначала делать Wi-Fi test

Если сразу прошить полную конфигурацию с кондиционером, UART и климатом, будет сложнее понять, где проблема: в питании, в Midea UART, в ESPHome-компоненте или в Wi-Fi. Минимальная Wi-Fi прошивка быстро отделяет сетевую проблему от всего остального.

FAQ

Что означает Auth Expired в ESPHome?

Это означает, что ESP начала подключение к Wi-Fi, но авторизация с точкой доступа не завершилась. Причина может быть в пароле, настройках безопасности роутера, слабом сигнале, mesh/роуминге или несовместимости конкретной платы с точкой доступа.

Если пароль точно правильный, почему ESP32-C3 всё равно не подключается?

Потому что Wi-Fi подключение — это не только пароль. ESP должна выбрать правильную точку доступа, пройти обмен пакетами авторизации и удержать сигнал. На некоторых роутерах ESP32-C3 SuperMini может срываться на этом этапе, хотя другие устройства работают нормально.

Можно ли публиковать свой настоящий BSSID в интернете?

Обычно BSSID не является паролем, но это идентификатор вашей точки доступа. В публичных примерах лучше заменять его на AA:BB:CC:DD:EE:FF, как в этой статье.

Нужно ли всегда указывать BSSID?

Нет. Если ESP подключается к Wi-Fi обычным способом, BSSID не нужен. Его стоит добавлять, когда есть повторяющиеся ошибки Auth Expired, несколько точек с одним SSID, mesh-сеть или нестабильное подключение.

Что будет, если поменять роутер?

BSSID изменится. После замены роутера, mesh-точки или репитера нужно заново посмотреть BSSID и обновить YAML.

Вывод

ESP32-C3 SuperMini может нормально работать с ESPHome, но иногда требует более точной Wi-Fi настройки. Если вы видите Auth Expired, не спешите менять пароль десять раз. Проверьте сигнал, отключите лишние фильтры на роутере и попробуйте привязку к BSSID.

В нашем случае именно эта настройка решила проблему: ESP32-C3 SuperMini подключилась к домашней 2.4 ГГц сети, получила IP и стала доступна по ESPHome API.

Оставьте комментарий

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

Прокрутить вверх