ESPurna, palabra catalana y valenciana que significa «chispa» —una partícula incandescente de combustión o roce, o figurativamente una pequeña cantidad o persona ingeniosa—, adquiere nuevo sentido como firmware open-source para ESP8266 y ESP32. Desarrollado inicialmente por Xose Pérez y adaptado para ESP32 en forks como RDobrinov/espurna32, transforma placas económicas en hubs IoT para interruptores, luces y sensores. Soporta MQTT con auto-descubrimiento, Alexa, Google Assistant, modos de bajo consumo, hasta 5 redes WiFi, mDNS, NetBIOS y OTA vía web, ideal para domótica avanzada.

Características Destacadas de ESPurna
ESPurna gestiona switches con botones digitales/analógicos, pulsos configurables, sincronización de relés (todos iguales, solo uno ON) y estados al boot (ON/OFF/toggle). Incluye luces con color/brightness, sensores de potencia (voltaje, corriente, energía), temperatura/humedad (DHT, BME280), y LED notificadores para WiFi/relés/MQTT. Ofrece REST API para relays/sensores, backup/restore, AP/STA WiFi con IP estático, y protección contra KRACK en Arduino Core >=2.4.0; botones permiten toggle, AP mode (doble click), reboot (largo) o factory reset (extra largo).
Preparación del Entorno con PlatformIO
PlatformIO en VSCode es la herramienta oficial para compilar ESPurna ESP32, gestionando Arduino-ESP32 core, lib_deps como FauxmoESP, AsyncTCP, MQTT y sensores.
Estos son los pasos resumidos para instalar el entorno:
- Instala VSCode desde code.visualstudio.com, añade extensión PlatformIO IDE (marketplace)
- Clona
git clone https://github.com/RDobrinov/espurna32.gitvía terminal (Terminal > New Terminal), - Aabre la carpeta con File > Open Folder.
- PlatformIO detecta
platformio.iniautomáticamente - Descarga dependencias;
- Edita para
default_envs = esp32dev,board = esp32dev,framework = arduino,upload_speed = 921600, - Compila con icono check (Build).
- Verifica logs en terminal para errores;
- Reinicia VSCode o
pio lib installsi faltan paquetes.
Instalación Paso a Paso en ESP32
Requisitos: Cable USB, drivers CH340/CP210x, esptool.py (pip install esptool). Pon ESP32 en bootloader (BOOT/GPIO0 a LOW al resetear/alimentar); verifica esptool.py --chip esp32 --port /dev/ttyUSB0 chip_id.
- Borrado:
esptool.py --chip esp32 --port /dev/ttyUSB0 erase_flash. - Flasheo:
esptool.py --chip esp32 --port /dev/ttyUSB0 write_flash -z 0x1000 espurna-esp32.bin(binario de releases). - Alternativa PlatformIO: Build exitoso > Upload; Arduino IDE requiere boards ESP32 y abrir espurna.ino.
Post-instalación: Conéctate a AP «espurna-XXXXXX» (pass: espurna123), accede 192.168.4.1 para WiFi/MQTT/OTA; soporta reverse proxy seguro.
Integración con Home Assistant vía MQTT
Configura MQTT en web ESPurna (broker IP/usuario/pass/puerto 1883) y activa «Home Assistant MQTT Discovery» para auto-publicación de switches/luces/sensores. En HA: Añade integración MQTT (Configuración > Integraciones > MQTT), conecta broker (Mosquitto recomendado para retain y estabilidad). Dispositivos aparecen automáticamente vía topics homeassistant/switch/[device]/config; controla relés, mide potencia/RGB sin YAML. Evita «unavailable» en reinicios HA con retain flags; ideal para energy dashboards.
ESPurna vs. ESPHome: Comparativa Detallada
| Aspecto | ESPurna | ESPHome |
|---|---|---|
| Configuración | Compilación hardware-específica, web intuitiva | YAML declarativo, compilación automática |
| Integración HA | MQTT Discovery robusto, topics estándar | Nativa profunda, zero-config en HA |
| Facilidad de Uso | Avanzados: control firmware detallado | Principiantes: automatizaciones rápidas |
| Soporte Hardware | Amplio (sensores, relés, Alexa/Google/OTA) | HA-optimizado, actualizaciones fluidas |
| Personalización | Edición código, REST API | Config centralizada, sin código directo |
| Curva Aprendizaje | Pronunciada por compilación manual | Baja, ideal domótica compleja |
ESPurna brilla en versatilidad MQTT y soporte multi-plataforma para expertos en IoT/hardware, mientras ESPHome prioriza simplicidad HA. Prueba ESPurna si buscas personalización profunda en ESP32 para NILM o sensores energéticos.
