Saltar al contenido

WiFi ESPHome: configuración segura, roaming y errores (2026)

10/08/2022
ESP32 conectado a un router mediante WiFi ESPHome seguro con roaming

Actualizado el 5 de agosto de 2026 para ESPHome 2026.7.3.

WiFi en ESPHome es el componente que conecta un ESP32 o ESP8266 a tu red para comunicarse con Home Assistant, recibir actualizaciones OTA y resolver su nombre mediante mDNS. Una configuración mínima ocupa pocas líneas, pero la estabilidad real depende de cómo gestiones las credenciales, la cobertura, el ahorro de energía, los puntos de acceso y la dirección IP.

Esta guía parte de una configuración segura y explica cuándo usar varias redes, IP manual, AP de emergencia, roaming 802.11k/v, fast_connect y sensores de diagnóstico. También corrige ejemplos antiguos que exponían contraseñas o mezclaban dos bloques wifi: incompatibles.

Configuración WiFi ESPHome recomendada

Para la mayoría de instalaciones domésticas basta con guardar el SSID y la contraseña en secrets.yaml. Desde ESPHome 2026.6, tanto ESP32 como ESP8266 exigen WPA2 como nivel mínimo predeterminado; también aceptan WPA3. No necesitas declarar min_auth_mode si quieres ese comportamiento seguro.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password

Define los valores en el archivo de secretos del panel de ESPHome y no publiques ese archivo. Si ya compartiste una configuración con una clave real, eliminarla del YAML no basta: cambia la contraseña de la red y limpia también el historial del repositorio.

# secrets.yaml — no lo subas a un repositorio público
wifi_ssid: "NOMBRE_DE_TU_RED"
wifi_password: "CONTRASEÑA_LARGA_DE_TU_RED"

Los secretos evitan repetir datos sensibles en cada nodo. Para estructuras más grandes puedes combinar esta base con nuestra guía de sustituciones y packages en ESPHome. La guía oficial de seguridad de ESPHome recomienda WPA2 como mínimo, WPA3 cuando toda la red sea compatible, contraseñas fuertes y WPS desactivado.

ESP32, ESP8266 y redes de 2,4 GHz

La mayoría de placas ESP32 y ESP8266 utilizadas con ESPHome se conectan a 2,4 GHz. Un router con un único nombre para 2,4 y 5 GHz suele funcionar, pero una red IoT dedicada a 2,4 GHz facilita el diagnóstico cuando el band steering o determinadas opciones WiFi 6 causan asociaciones erráticas. No confundas la frecuencia con la seguridad: una red de 2,4 GHz puede y debe usar WPA2 o WPA3.

ESPHome necesita una interfaz de red válida y actualmente no permite declarar WiFi y Ethernet al mismo tiempo en el mismo nodo. Si todavía eliges placa, consulta la guía de ESP32, modelos y pinout.

AP de emergencia y captive portal: útil, pero protegido

El modo AP crea una red propia cuando el dispositivo no consigue conectarse al router. Con captive_portal puedes introducir nuevas credenciales desde un teléfono. El AP de respaldo se activa después de 90 segundos de forma predeterminada.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  ap:
    ssid: "sensor-salon-recovery"
    password: !secret fallback_ap_password

captive_portal:

No dejes el AP abierto. Si la red principal falla, cualquier persona cercana podría conectarse al ESP y alcanzar servicios expuestos por el dispositivo. Usa una contraseña larga y distinta en cada nodo, o elimina por completo el AP de recuperación en instalaciones de producción que puedas reprogramar por USB.

DHCP reservado o IP manual

Una IP fija no es obligatoria. La opción más sencilla suele ser reservar una dirección en el servidor DHCP del router: mantienes la configuración de red centralizada y evitas conflictos. La IP manual puede acelerar ligeramente la conexión porque elimina la negociación DHCP y ayuda cuando mDNS no atraviesa una VLAN, pero exige elegir correctamente dirección, puerta de enlace y máscara.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  manual_ip:
    static_ip: 192.168.10.42
    gateway: 192.168.10.1
    subnet: 255.255.255.0
    dns1: 192.168.10.1

Comprueba que la dirección esté fuera del rango dinámico o reservada para ese ESP. Un error en subnet, una IP duplicada o una puerta de enlace de otra VLAN puede hacer que el dispositivo parezca desconectado aunque el firmware compile.

Cambiar de IP o de nombre sin perder OTA

Cuando migras un nodo, use_address indica temporalmente a ESPHome la dirección antigua a la que debe enviar la actualización. Después de instalar el firmware y comprobar la nueva dirección, elimina esa línea; dejarla fija hará que las siguientes cargas sigan buscando el destino anterior.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  use_address: 192.168.1.42  # Solo durante esta migración

Si el problema es la carga inalámbrica y no la conexión, revisa la guía de OTA en ESPHome y solución de errores.

Conectar ESPHome a varias redes WiFi

Para disponer de una red principal y otra de respaldo, mueve las credenciales bajo networks:. No repitas otro bloque wifi: ni combines ssid al nivel superior con la lista. ESPHome intenta la red disponible con mejor señal; priority permite inclinar la elección cuando lo necesitas.

wifi:
  networks:
    - ssid: !secret wifi_ssid_primary
      password: !secret wifi_password_primary
      priority: 10
    - ssid: !secret wifi_ssid_backup
      password: !secret wifi_password_backup
      priority: 0

Una prioridad mayor puede hacer que el nodo prefiera una red aunque su señal sea algo peor. Para una migración de router es más seguro mantener temporalmente ambas redes, actualizar todos los nodos y retirar después la antigua.

Roaming automático desde ESPHome 2026.1

ESPHome 2026.1 añadió roaming posterior a la conexión y lo activa de forma predeterminada para redes visibles. Tras conectarse, el nodo realiza hasta tres comprobaciones espaciadas cinco minutos y puede cambiar a otro punto de acceso con el mismo SSID si ofrece una señal al menos 10 dB mejor. Así evita quedar anclado a un AP débil después de reiniciar el router o encender todos los nodos a la vez.

Este cambio no es totalmente transparente: las conexiones TCP, incluida la API nativa, pueden interrumpirse brevemente durante el salto. En un ESP32 con una red compatible puedes activar 802.11k/v; al hacerlo, ESPHome deshabilita automáticamente su roaming básico y deja la decisión al mecanismo nativo.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  enable_btm: true  # 802.11v, solo ESP32
  enable_rrm: true  # 802.11k, solo ESP32

No actives opciones del router como fast roaming a ciegas. Confirma primero que el modelo de ESP32, el firmware del AP y el método de seguridad sean compatibles. En ESP8266 mantén el roaming básico predeterminado.

Red oculta, fast_connect y ahorro de energía

Redes ocultas

Ocultar el SSID no añade seguridad real. Si aun así utilizas una red oculta, declara hidden: true dentro de la red. El inconveniente es importante en casas con varios AP: ESPHome no puede comparar correctamente cuál ofrece la mejor señal para ese SSID.

wifi:
  networks:
    - ssid: !secret hidden_wifi_ssid
      password: !secret hidden_wifi_password
      hidden: true

fast_connect

fast_connect omite el escaneo inicial y puede reducir el tiempo despierto en un sensor con batería o deep sleep. Está desactivado de forma predeterminada y no suele convenir en una red mesh: puede elegir el primer AP visto en lugar del mejor. Si el intento directo falla, ESPHome vuelve a escanear.

power_save_mode

El ahorro WiFi predeterminado es LIGHT en ESP32 y NONE en ESP8266. HIGH reduce consumo, pero puede aumentar latencia y desconexiones. Para un nodo alimentado permanentemente que pierde la API pese a tener buena cobertura, probar NONE es una prueba diagnóstica razonable, no una cura universal.

wifi:
  ssid: !secret wifi_ssid
  password: !secret wifi_password
  power_save_mode: none

Medir señal, IP, canal y punto de acceso

Antes de cambiar parámetros al azar, publica datos de diagnóstico. El sensor wifi_signal muestra RSSI en dBm; los sensores de texto indican IP, SSID, BSSID, MAC y resultados de escaneo. Un valor cercano a −50 dBm es excelente; alrededor de −67 dBm suele ser utilizable; por debajo de −75 dBm conviene revisar ubicación, antena, canal e interferencias.

sensor:
  - platform: wifi_signal
    name: "Señal WiFi"
    update_interval: 60s

text_sensor:
  - platform: wifi_info
    ip_address:
      name: "Dirección IP"
    ssid:
      name: "SSID conectado"
    bssid:
      name: "BSSID conectado"
    mac_address:
      name: "MAC WiFi"

El BSSID identifica el AP concreto. En una red mesh permite saber si el nodo se ha conectado al punto cercano o a otro al otro lado de la casa. La documentación oficial del componente WiFi recoge todas las variables y sus limitaciones actuales.

Solución de problemas WiFi ESPHome

  • No aparece ONLINE, pero responde al ping: revisa mDNS, el puerto 5353/UDP y la separación entre VLAN. Prueba la IP directa antes de cambiar el firmware.
  • Se reinicia cada 15 minutos: reboot_timeout vale 15 minutos por defecto cuando no hay conexión. Busca primero errores de autenticación, cobertura o DHCP; ponerlo a 0s puede ocultar el síntoma y dejar una interfaz bloqueada.
  • Se conecta a un AP lejano: comprueba el BSSID, evita SSID oculto y fast_connect, y usa el roaming predeterminado o 802.11k/v en ESP32.
  • Falla después de endurecer el router: confirma que la red IoT ofrece WPA2/AES o WPA3. No rebajes a WPA/TKIP salvo como prueba temporal con hardware heredado.
  • Compila, pero nunca conecta: valida el nombre del secreto, el SSID exacto, la banda de 2,4 GHz, la máscara y que no exista otra IP igual.
  • La API cae con buena señal: revisa alimentación, saturación del AP y ahorro energético. Un RSSI alto no descarta pérdidas de paquetes o una fuente de 5 V inestable.

Activa registros por USB o consulta el panel de ESPHome antes de acumular opciones encontradas en foros. Cambia una sola variable cada vez y conserva una copia del YAML que funcionaba.

Vídeo original y cambios posteriores

El siguiente vídeo acompaña la versión original de esta guía. Conserva explicaciones útiles sobre secretos, IP y sensores, pero fue grabado antes del roaming automático de 2026.1 y del mínimo WPA2 común de 2026.6. Para copiar configuración, utiliza los bloques actualizados de este artículo.

  • 2:08 — Uso de secrets.
  • 2:27 — IP estática.
  • 4:45 — Sensores WiFi.
  • 6:32 — Varias redes.
  • 8:21 — Prueba de sensores.

Configuración final equilibrada

Empieza con credenciales en secretos y los valores predeterminados. Añade AP protegido solo si realmente necesitas recuperación local; reserva la IP en el router si quieres una dirección estable; mide RSSI y BSSID antes de modificar radio o ahorro energético. En una red con varios AP, el roaming incluido desde 2026.1 resuelve muchos casos sin YAML adicional.

El objetivo no es reunir todas las opciones posibles, sino mantener una configuración pequeña, segura y observable. Si también expones una interfaz local, protege el Web Server ESPHome con autenticación actual y nunca abras el dispositivo directamente a Internet.

Continúa leyendo

Siguiente guía relacionada · 10 min de lectura

Web Server ESPHome: configuración segura, v3 y OTA (2026)

Actualizado el 5 de agosto de 2026 para ESPHome 2026.7.3. Web Server ESPHome permite abrir una página alojada en el propio ESP32 o ESP8266…

Continuar con este artículo