Por qué reemplazar el firmware de un enchufe inteligente comercial
¿Sabes realmente quién controla tu enchufe "inteligente"? La mayoría de los enchufes WiFi económicos del mercado dependen de servidores en la nube, cuentas con el fabricante y apps propietarias que pueden dejar de funcionar el día menos pensado. El Aubess Power Monitor Switch es uno de esos casos: hardware sólido (relé apto para red, medidor de energía BL0942 dedicado), pero firmware cerrado encima de un módulo WiFi propietario tipo ESP02S o BK7231 que limita todo.
Este tutorial muestra cómo recuperar el control: vas a reemplazar el módulo WiFi cerrado por un ESP8685 WROOM 03 (basado en ESP32 C3), instalar el Lifecycle Manager (LCM) como capa previa al arranque y subir un firmware de código abierto con integración nativa a Apple HomeKit y medición de potencia precisa por UART.
Resumen del proyecto
Al terminar tendrás:
- Un medidor de consumo eléctrico que se comunica solo en tu LAN (sin telemetría, sin nube)
- Pareo nativo con la app Casa de Apple usando HomeKit
- Actualizaciones OTA seguras y reversibles vía LCM
- Lectura real de voltaje (V), corriente (A), potencia (W) y energía acumulada (kWh) desde el BL0942
⚠️ Advertencia de alto voltaje: este proyecto involucra un dispositivo que se conecta directamente a 220 V AC. Desenchufa siempre antes de abrir, nunca trabajes con el equipo energizado y usa herramientas aisladas. Si dudas, consulta con un eléctrico certificado SEC.
Hardware base: qué hay dentro del Aubess
Antes de modificar nada, conviene entender el circuito de fábrica:
- Voltaje de operación: 220 a 240 V~ 50/60 Hz
- Carga máxima: 16 A / ~3680 W
- Un relé apto para red eléctrica
- Un IC de medición de energía BL0942 (comunica por UART, no por pulsos CF/CF1)
- Un módulo WiFi cerrado que vas a reemplazar
El BL0942 es la pieza clave que justifica todo el trabajo: transmite tramas seriales estructuradas con voltaje, corriente, potencia activa y energía acumulada, lo que hace que la calibración y la lectura sean mucho más robustas que los esquemas basados en conteo de pulsos.
Paso 1: abrir la carcasa sin romperla
Herramientas:
- Spudger plástico
- Spudger metálico fino
Procedimiento:
- Inserta el spudger plástico entre las dos mitades de la carcasa
- Genera una pequeña separación
- Desliza el spudger metálico fino para llegar a los clips internos
- Avanza lentamente hacia una esquina
- Suelta los clips uno a uno
Si fuerzas, vas a romper los clips internos y la carcasa quedará floja al cerrarla.
Paso 2: desoldar el módulo WiFi original
Herramientas recomendadas:
- Estación de soldar con control de temperatura (350 a 380 °C)
- Malla desoldadora (cinta de cobre)
- Flux líquido
- Alcohol isopropílico
Procedimiento:
- Fotografía la PCB en alta resolución antes de tocar nada (vas a necesitar la referencia)
- Aplica flux generosamente sobre los pads del módulo
- Calienta el cautín a 350 a 380 °C
- Retira el estaño con malla desoldadora
- Levanta el módulo solo cuando todos los pads estén libres
- Limpia los pads con alcohol isopropílico e inspecciona con lupa
Nunca fuerces el módulo hacia arriba: si arrancas un pad, completar el proyecto se vuelve mucho más difícil.
Paso 3: preparar el ESP8685 WROOM 03 reemplazante
El módulo nuevo se programa antes de soldarlo en la PCB. Hay dos opciones:
Opción A, jig magnético impreso en 3D (recomendada, sin soldar pads): permite sujetar el módulo con contacto firme para flashear, sin riesgo de dañarlo. Diseño: studiopieters.nl/esp8685-wroom-03-programmer.
Opción B, cables soldados a los pads de programación: si no tienes acceso a impresora 3D, suelda cables finos a los pads UART y reset/boot.

Borra la flash del módulo nuevo:
esptool.py erase_flash
Ejemplo de salida:
Chip is ESP32-D0WD-V3
Erasing flash...
Chip erase completed successfully
MAC: cc:8d:a2:dd:af:e0
⚠️ Guarda la dirección MAC que aparece. La necesitas para generar el código QR de HomeKit.
Paso 4: generar el código QR de HomeKit
Apple Home necesita un QR criptográfico para parear el accesorio. Usa el generador de código abierto de Studio Pieters:
./gen_qrcode 7 693-41-208 M4T8 cc8da2ddafe0 new/qrcode.png

Significado de los argumentos:
| Argumento | Significado |
|---|---|
7 |
Tipo de accesorio: Outlet (enchufe) |
693-41-208 |
Setup code de HomeKit |
M4T8 |
Setup ID |
cc8da2ddafe0 |
MAC (sin dos puntos) |
Esto genera una imagen PNG con el QR más el setup code legible para humanos. Imprime el resultado como sticker y pégalo en la carcasa del enchufe para futuro pareo.

Repo: github.com/AchimPieters/esp32-homekit-qrcode
Paso 5: flashear el Lifecycle Manager (LCM)
LCM es una capa de firmware previa al arranque que se encarga de:
- Portal cautivo WiFi para configuración inicial
- Instalación OTA del firmware de aplicación
- Verificación de integridad antes de bootear
- Recovery automático si una actualización falla
Esto significa que una vez instalado LCM, el dispositivo nunca más necesita abrirse físicamente. Cualquier cambio de firmware se hace por aire.
Flashear LCM (chip esp32c3):
python -m esptool --chip esp32c3 -b 460800 \\
--before default_reset --after hard_reset write_flash \\
--flash_mode dio --flash_size 4MB --flash_freq 80m \\
0x0 build/bootloader/bootloader.bin \\
0x8000 build/partition_table/partition-table.bin \\
0xe000 build/ota_data_initial.bin \\
0x20000 build/esp32-lifecycle-manager.bin
Repo: github.com/AchimPieters/esp32-lifecycle-manager
Paso 6: instalar el ESP8685 WROOM 03 en la PCB del Aubess
Procedimiento de soldadura:
- Alinea el módulo cuidadosamente sobre la huella original
- Suelda un pad de esquina primero (tack)
- Verifica alineación en los 4 lados
- Suelda la esquina opuesta
- Arrastra el estaño sobre el resto de los pads usando flux
- Quita puentes de estaño con malla desoldadora
- Limpia con alcohol isopropílico e inspecciona
Tómate tu tiempo en la inspección visual: la mayoría de las fallas se detectan antes de energizar.
GPIO usados por el firmware
El firmware se configura por Kconfig: los pines GPIO no están hardcodeados y se pueden cambiar con idf.py menuconfig. Valores por defecto para ESP8685 WROOM 03 (target ESP32 C3):
| Función | Opción Kconfig | GPIO por defecto |
|---|---|---|
| Wall switch input | ESP_SWITCH_GPIO |
GPIO5 |
| Relay control | ESP_RELAY_GPIO |
GPIO4 |
| Button input (Aubess) | ESP_BUTTON_GPIO |
GPIO1 |
| LED de estado azul | ESP_BLUE_LED_GPIO |
GPIO6 |
Para cambiar:
idf.py menuconfig
Cómo funciona el BL0942 por UART
El BL0942 transmite tramas seriales con voltaje, corriente, potencia y energía acumulada. La conexión:
- BL0942 RX (SDI) ← ESP UART TX
- BL0942 TX (SDO) → ESP UART RX
- Pin SEL atado a GND (modo UART)
- Baud rate definido por strap de hardware

Esto es más robusto que los esquemas de medición basados en conteo de pulsos (CF/CF1) porque el chip ya entrega valores calibrados listos para usar.
Sincronización entre el interruptor físico y HomeKit
El switch de pared funciona como toggle, no como estado fijo. Esto evita el problema clásico de desincronización:
- Toggle físico → relé ON → HomeKit recibe el cambio
- App HomeKit OFF → relé OFF
- Toggle físico otra vez → relé ON → HomeKit actualizado
No importa desde dónde lo enciendas, el estado siempre está sincronizado.
Botón trasero: funciones por duración
| Duración del press | Acción |
|---|---|
| < 1 segundo | Toggle del relé |
| 30 segundos | Forzar entrada a LCM recovery |
Mantener 30 segundos devuelve el equipo a modo LCM incluso si el firmware de aplicación quedó corrupto.
Instalar el firmware de aplicación vía LCM
Una vez que LCM está corriendo:
- Conéctate al AP
LCM-XXXXXdesde tu celular o PC - Se abre el portal cautivo automáticamente
- Ingresa las credenciales WiFi de tu casa
- Firmware source:
AchimPieters/ESP32-power-monitor-switch - Habilita GPIO6 (LED azul) y "Led Level On"
- Click en Join
El firmware se instala OTA y reinicia automáticamente.

Parear con Apple Home
- Abre la app Casa en tu iPhone o iPad
- Toca el botón +
- Añadir accesorio
- Escanea el QR generado en el Paso 4
- Acepta el aviso "Accesorio no certificado" (es normal en DIY)
- Asigna nombre y habitación
Listo: sin nube, sin cuenta, sin app del fabricante.
Actualizaciones futuras
Las actualizaciones OTA se disparan desde HomeKit. Como la app Casa de Apple no expone controles de update, se usa la app Eve para gatillarlas. El proceso es seguro y reversible: si una actualización falla, LCM hace recovery automático.
Variantes y mejoras
Tres ideas concretas para extender el proyecto:
Medición de energía multifase con varios módulos: si tienes un tablero con 3 fases, instala uno de estos enchufes modificados en cada fase y agrupa las lecturas en Home Assistant via la app puente HomeKit Controller. Vas a poder ver consumo agregado de toda la casa.
Alertas por consumo anómalo: combina el firmware con la API de Eve y configura una automatización en HomeKit que envíe notificación si la potencia supera 2000 W más de 30 segundos. Es útil para detectar refrigeradores que dejaron la puerta abierta o cargas fantasma fuera de horario.
Logger local con Home Assistant: aunque HomeKit no expone los datos históricos del BL0942 más allá de 10 días, si lo enlazas a Home Assistant via HomeKit Controller integration, los valores quedan en InfluxDB con resolución de 10 segundos. Útil para auditorías de consumo o cálculo de horas equivalentes de cada electrodoméstico.
Personalización para Chile
Algunas piezas clave para replicar este proyecto en Chile:
| Componente | Producto en MechatronicStore | SKU | Precio CLP |
|---|---|---|---|
| Módulo ESP32 reemplazante (equivalente funcional al ESP8685 WROOM 03) | ESP32 ESP WROOM 32 Tipo C | X2-10V2 | $7.990 |
| Estación de soldar con control de temperatura | Estación de Soldar Certificada ZD-99 | K-301 | $32.000 |
| Malla desoldadora 2 mm | Cinta de malla desoldadora 2mm 1.5m | E-205 | $2.190 |
| Flux líquido | Flux Pasta NC-559 10cc | E-006 | $3.490 |
Aclaración importante sobre el módulo WiFi: el tutorial original usa el ESP8685 WROOM 03 (basado en ESP32 C3), que en Chile no se vende como módulo OEM separado. Si vas a hacer este proyecto exacto, conviene importar el módulo. Como alternativa más accesible, puedes hacer una variante del proyecto montando el sensor BL0942 sobre un ESP32 WROOM 32 estándar (SKU X2-10V2) en un PCB perforado o caja externa, sin reemplazar el módulo dentro del Aubess. Pierdes la integración compacta pero ganas en simplicidad y precio.
Sobre el enchufe Aubess Power Monitor Switch: no se vende en MechatronicStore. Lo encuentras en AliExpress y otras tiendas chinas a ~CLP $9.000 puesto en Chile.
Sobre el voltaje: en Chile la red es 220 V / 50 Hz, que está dentro del rango operativo del relé original (220 a 240 V~ 50/60 Hz). El proyecto funciona sin modificaciones eléctricas.
Recursos y descargas
- Tutorial original: ESP32 Mini Smart Switch with monitor
- ESP32 Lifecycle Manager: github.com/AchimPieters/esp32-lifecycle-manager
- Firmware ESP32 Power Monitor Switch: github.com/AchimPieters/ESP32-power-monitor-switch
- Framework ESP32 HomeKit: github.com/AchimPieters/esp32-homekit
- Generador de QR HomeKit: github.com/AchimPieters/esp32-homekit-qrcode
Versión chilena inspirada en el tutorial de Studio Pieters, con componentes en stock local en MechatronicStore.








