
Este artículo puede contener enlaces de afiliado. Si compras desde estos enlaces, el precio para ti es el mismo y la tienda me paga una pequeña comisión que ayuda a mantener Tecnoyfoto.
Actualizado el 1 de agosto de 2026. He revisado el cableado, los GPIO y la configuración para las versiones actuales de ESPHome.
Controlar un módulo de relé con ESPHome permite encender y apagar cargas desde un ESP32 o ESP8266 e integrarlas como interruptores en Home Assistant. El concepto es sencillo, pero hay tres detalles que no debemos improvisar: la tensión de alimentación del módulo, el nivel lógico de sus entradas y el comportamiento de los GPIO durante el arranque.
Advertencia de seguridad: esta guía muestra la parte de control a baja tensión. Haz todas las pruebas sin conectar 230 V ni otra tensión peligrosa a los contactos del relé. La instalación en la red eléctrica requiere envolvente, protecciones, separación, conductores y montaje adecuados; si no tienes la formación necesaria, encárgasela a un electricista cualificado.
En el ejemplo utilizaré un ESP32 y una placa de cuatro relés. Si todavía estás eligiendo microcontrolador, puedes consultar mis análisis del ESP32, el ESP8266 y la compacta Wemos D1 Mini.
Qué hace un módulo de relés
Un relé es un interruptor accionado eléctricamente. La entrada IN recibe la orden del microcontrolador y los contactos COM, NO y NC conmutan un circuito separado. NO significa normalmente abierto y NC, normalmente cerrado. En mi guía sobre qué es un relé y cómo funciona explico estos contactos con más detalle.
Que el relé proporcione aislamiento galvánico no convierte automáticamente todo el módulo en una instalación segura. La distancia entre pistas, los bornes, la caja y el cableado también deben ser apropiados para la carga. Para aprender y verificar la configuración no necesitamos conectar nada a los contactos de potencia: los LED y el sonido mecánico del relé son suficientes.
Material necesario
- Una placa ESP32 compatible con ESPHome.
- Un módulo de cuatro relés cuya alimentación y entradas estén documentadas.
- Una fuente de baja tensión adecuada para el módulo.
- Cables Dupont para las señales de control.
- Un multímetro para comprobar tensiones y continuidad.
- Un ordenador con ESPHome Device Builder y una instalación de Home Assistant.
No des por hecho que cualquier módulo marcado como «5 V» acepta correctamente una señal de 3,3 V. Esos 5 V pueden referirse a la bobina, mientras que la entrada lógica tiene otros requisitos. Consulta el esquema o la ficha del modelo concreto. Si necesitas contexto antes de empezar, aquí explico qué es ESPHome y qué es Home Assistant.
Cómo elegir los GPIO del ESP32
No existe una cifra universal de «salidas disponibles» válida para todas las placas ESP32 o ESP8266. Cambian el chip, el módulo, la memoria, el diseño de la placa y los periféricos ya conectados. Además, algunos pines son de arranque o strapping, otros están reservados para la memoria y, en el ESP32 clásico, GPIO34 a GPIO39 son solo de entrada.
Para un ESP32 DevKit clásico sin PSRAM utilizaremos como ejemplo GPIO16, GPIO17, GPIO18 y GPIO19. Antes de cablear, comprueba el pinout exacto de tu placa y deja libres los pines utilizados por I²C, SPI, UART, pantalla u otros componentes de tu proyecto. ESPHome muestra avisos o errores cuando detecta algunos pines problemáticos: no los ocultes sin comprender la causa.
| Canal | ESP32 de ejemplo | Módulo de relés |
|---|---|---|
| Relé 1 | GPIO16 | IN1 |
| Relé 2 | GPIO17 | IN2 |
| Relé 3 | GPIO18 | IN3 |
| Relé 4 | GPIO19 | IN4 |
Cableado del módulo de relé con ESPHome
- Desconecta todas las fuentes antes de modificar el cableado.
- Conecta GPIO16, GPIO17, GPIO18 y GPIO19 a IN1, IN2, IN3 e IN4.
- Alimenta el módulo con la tensión que indique su fabricante. Muchos módulos de relé mecánico emplean 5 V, pero no todos son iguales.
- Conecta las referencias de masa cuando el diseño del módulo lo requiera. Si dispone de JD-VCC, jumper u optoacopladores, sigue su esquema: retirar o mantener el puente cambia la forma de alimentación y aislamiento.
- Deja COM, NO y NC sin conectar durante la primera programación y las pruebas.
No alimentes las bobinas de varios relés desde el pin de 3,3 V del ESP32. Los relés pueden demandar más corriente de la que ese regulador puede proporcionar y provocar reinicios o inestabilidad. Usa una fuente dimensionada para la placa de relés y evita que el consumo de las bobinas haga caer la alimentación del microcontrolador.
Código ESPHome para cuatro relés
Añade este bloque al YAML que ESPHome haya creado para tu dispositivo. Está pensado para módulos activos en nivel bajo, muy habituales: inverted: true hace que la entidad encendida corresponda con el relé activado. Si tu módulo es activo en nivel alto, elimina esa línea. Verifícalo primero con los LED del módulo.
switch:
- platform: gpio
id: relay_1
name: "Relé 1"
pin:
number: GPIO16
inverted: true
restore_mode: ALWAYS_OFF
- platform: gpio
id: relay_2
name: "Relé 2"
pin:
number: GPIO17
inverted: true
restore_mode: ALWAYS_OFF
- platform: gpio
id: relay_3
name: "Relé 3"
pin:
number: GPIO18
inverted: true
restore_mode: ALWAYS_OFF
- platform: gpio
id: relay_4
name: "Relé 4"
pin:
number: GPIO19
inverted: true
restore_mode: ALWAYS_OFFrestore_mode: ALWAYS_OFF ordena a ESPHome inicializar cada interruptor apagado. Es una elección prudente para una guía genérica, pero no elimina los posibles pulsos que un GPIO puede presentar antes de que arranque el firmware. Una aplicación donde una activación inesperada pueda causar daños necesita medidas de seguridad en el propio hardware.
Compilar, instalar y hacer la primera prueba
- En ESPHome Device Builder, pulsa Validate para comprobar el YAML.
- Instala el firmware por USB con el módulo de relés desconectado si es la primera carga.
- Apaga la placa y realiza las conexiones de baja tensión.
- Alimenta el conjunto y observa el registro de ESPHome.
- Activa cada interruptor por separado desde ESPHome o Home Assistant y comprueba el LED y el clic del canal correcto.
- Reinicia y corta la alimentación para verificar que los cuatro canales permanecen apagados al arrancar.
La API nativa de ESPHome crea las cuatro entidades de tipo interruptor en Home Assistant. Desde ahí puedes renombrarlas, asignarlas a un área y utilizarlas en automatizaciones. También puedes añadir un botón de reinicio de ESPHome para facilitar el mantenimiento.
Relés activos en nivel bajo y relés activos en nivel alto
Si el relé se activa cuando el GPIO pasa a nivel bajo, es activo en LOW y necesita inverted: true. Si se activa con nivel alto, es activo en HIGH y la inversión no se utiliza. Un síntoma típico de una configuración invertida es que la interfaz muestre «apagado» mientras el LED del relé permanece encendido.
Que los cuatro relés hagan un clic breve al encender la fuente puede indicar un problema de arranque o una entrada flotante. Cambia a GPIO adecuados, revisa la alimentación y considera una etapa de control con polarización definida. El software no puede corregir lo que sucede antes de tomar el control del pin.
Cuándo usar interbloqueo
Persianas, motores y actuadores de dos sentidos no deben recibir simultáneamente las órdenes de subir y bajar. ESPHome permite crear un interlock entre interruptores, pero su propia documentación advierte que es una protección de software. Para una carga que pueda dañarse, utiliza también un interbloqueo eléctrico o mecánico independiente y un tiempo muerto entre direcciones.
No copies el ejemplo genérico de cuatro interruptores para controlar directamente un motor reversible. Ese caso necesita un diseño específico y una condición física que impida energizar ambos sentidos.
Problemas frecuentes
El relé no se activa
Comprueba VCC y GND con el multímetro, confirma que la entrada admite 3,3 V y revisa que el número GPIO coincide con el pin físico. Prueba un canal cada vez sin cargas conectadas.
El ESP32 se reinicia cuando conmuta
La causa habitual es una alimentación insuficiente, una caída de tensión o ruido eléctrico. Separa o mejora la fuente del módulo, utiliza cables cortos y revisa la masa. No intentes solucionarlo únicamente con cambios de YAML.
El estado aparece al revés
Añade o elimina inverted: true según la lógica real del módulo. Comprueba el resultado mirando el LED y escuchando el relé, no solo el estado mostrado en pantalla.
La placa no arranca después de conectar el módulo
Es probable que hayas elegido un pin de arranque o reservado, o que el módulo esté alterando su nivel durante el encendido. Desconecta las entradas, recupera la placa y consulta su pinout antes de reasignarlas.
Vídeo: mi montaje con cuatro relés
En este vídeo puedes ver el montaje original y el funcionamiento práctico. Utiliza el código y las recomendaciones actualizadas de esta página, porque son más recientes que la grabación.
Preguntas frecuentes
¿Puedo usar este código con un ESP8266?
Sí, el componente switch.gpio es compatible, pero debes sustituir los GPIO por otros adecuados para tu placa ESP8266. No copies los números del ESP32 ni confundas las etiquetas D0, D1 o D2 con el número GPIO.
¿Necesito una fuente separada para los relés?
Depende del módulo y de la fuente principal. Cuatro bobinas pueden consumir lo suficiente para volver inestable una alimentación USB o un regulador pequeño. Sigue la ficha del módulo y dimensiona la fuente con margen.
¿Qué ocurre si Home Assistant deja de funcionar?
El ESP32 continúa ejecutando su firmware. Sin embargo, si tu única orden procede de Home Assistant perderás el control remoto hasta recuperar la comunicación. Para funciones críticas conviene diseñar controles locales y estados seguros independientes.
Conclusión
Un módulo de cuatro relés con ESPHome es una forma flexible de añadir salidas a Home Assistant. La configuración YAML ocupa pocas líneas; la parte importante es elegir bien los GPIO, conocer si las entradas son activas en LOW o HIGH, proporcionar una alimentación estable y decidir qué debe ocurrir durante un reinicio.
Empieza siempre con pruebas a baja tensión y sin cargas en los contactos. Cuando cada canal responda correctamente y el arranque sea predecible, podrás diseñar la aplicación final con las protecciones y el montaje que requiera.
Fuentes técnicas
- ESPHome: GPIO Switch.
- ESPHome: Switch Component y restore_mode.
- ESPHome: preguntas frecuentes sobre pines de arranque.
- Espressif: GPIO del ESP32 y sus restricciones.
- ESPHome: conexión física y advertencias de seguridad.
Si el artículo te ha resultado útil, puedes suscribirte al canal de TecnoYFoto en YouTube para seguir los próximos proyectos.
Continúa leyendo
Siguiente guía relacionada · 7 min de lectura
Sustituciones y packages en ESPHome: guía práctica actualizada
Actualizado el 2 de agosto de 2026 para la sintaxis actual de ESPHome. Cuando tienes varios dispositivos ESPHome, copiar el mismo Wi-Fi, la API,…
Continuar con este artículo

