// nota de campo

El día en que mi cargador se volvió más lento sin decir nada

Un Wallbox Pulsar Plus que aguantaba 32 A toda la noche empezó a bajarse a 30 A y a no recuperarse. Nada cambió en la app, no se registró ningún error. Así caractericé el comportamiento exacto y acoté el cambio a una ventana de cuatro meses de 2025, usando solo la base de datos del propio cargador.

derating térmico wallbox pulsar plus mqtt home assistant septiembre 2026

El síntoma

Instalación doméstica monofásica, garaje subterráneo, Tesla Model 3, carga nocturna fija a 32 A sin modulación solar y sin límite puesto en el coche. El cargador arranca a 32,6 A y calienta de forma continua. Cuando la temperatura de línea alcanza 79 °C espera 105 segundos, aplica un recorte único de 2,1 A y se queda ahí el resto de la sesión.

254055708528303234°CA0 min10 min20 min30 minumbral 79 °Ccruza 79 °Crecorte · +105 s
Temperatura línea 1 Corriente línea 1 El recorte
Una sesión, muestreada a resolución de segundo desde el propio cargador. Temperatura ambiente del garaje esa noche: 28,5 °C.
MomentoTemp. L1Corriente L1Potencia
t+033 °C32,6 A7194 W
t+22m50s79 °C32,8 A7216 W
t+24m35s79 °C30,7 A6693 W
t+25m24s77 °C30,5 A6790 W
t+33m76 °C30,5 A6671 W

Tres propiedades que conviene anotar, porque determinan si eres capaz de detectar esto o no:

Ese último punto es la trampa. Si vigilas los campos de configuración —que son los que enseña la app, y los que el puente MQTT expone de forma más visible— no ves absolutamente nada. La única señal es la corriente real medida cayendo por debajo de lo que el máximo configurado permitiría, correlacionada con la temperatura.

Fechar el cambio

Mi recuerdo era «al principio funcionaba bien, y un día empezó, y así se quedó». Un recuerdo no es una prueba, así que: el cargador guarda una tabla session con dos años completos de historial, muchísimo más de lo que retiene el búfer de telemetría viva. La potencia media por sesión es una métrica burda —incorpora el tapering del propio coche cuando la batería se llena— pero es perfectamente válida para comparar sesiones equivalentes entre sí.

ventana del cambio234567kWjul 24ene 25jul 25ene 26jul 26~5,7 kW~5,2 kW (-10 %)2024-05-18 — 4,27 kW2024-05-25 — 2,15 kW2024-05-31 — 2,26 kW2024-06-18 — 5,16 kW2024-06-22 — 2,36 kW2024-07-06 — 3,62 kW2024-09-12 — 4,03 kW2024-09-14 — 5,41 kW2024-11-30 — 5,62 kW2024-12-07 — 5,63 kW2025-02-15 — 5,74 kW2025-02-21 — 5,26 kW2025-03-28 — 2,96 kW2025-04-25 — 5,25 kW2025-05-24 — 3,00 kW2025-06-23 — 5,15 kW2025-07-16 — 5,13 kW2025-07-17 — 5,16 kW2025-07-20 — 5,22 kW2025-08-03 — 5,11 kW2025-09-13 — 5,29 kW2026-01-04 — 5,06 kW2026-04-03 — 5,20 kW2026-04-12 — 5,31 kW2026-04-23 — 5,15 kW2026-04-24 — 5,31 kW2026-04-30 — 5,29 kW2026-05-10 — 5,37 kW2026-06-17 — 4,86 kW2026-08-18 — 4,19 kW2026-08-22 — 4,75 kW2026-08-30 — 6,83 kWtapa abierta
Sesión a corriente alta Sesión limitada (no comparable) Nivel anterior Nivel posterior
Todas las sesiones nocturnas iniciadas entre las 23:00 y la 01:00 con más de dos horas de carga. Los puntos huecos estaban limitados por otros motivos y quedan fuera de la comparación.
SesiónPotencia media
2024-11-305,62 kW
2024-12-075,63 kW
2025-02-155,74 kWúltima sesión al nivel antiguo
2025-06-235,15 kWprimera sesión al nivel nuevo
2025-07-165,13 kW
2025-08-035,11 kW
2026-01-045,06 kW
2026-05-105,37 kW

Una caída del 10 % y, después, quince meses completamente planos. Esa forma importa más que la magnitud: una resistencia de contacto degradándose por ciclado térmico daría un deslizamiento gradual. Un escalón que aterriza y se mantiene más de un año es un cambio de parámetro, no una pieza desgastándose.

Lo que el cargador registró en esa ventana

La tabla de errores es la única del dispositivo con marcas de tiempo utilizables tan atrás. Entre la última sesión buena y la primera mala contiene exactamente cuatro entradas, y cada una es el reinicio simultáneo de todos los servicios del equipo.

Reinicio completo del stack: blewallbox, micro2wallbox, mywallbox, ocppwallbox, wallboxsmachine, wallbox_login.

Reinicio completo, precedido del código de error 48, «No driver problem found».

Un segundo reinicio completo, un minuto después del anterior.

Reinicio completo del stack.

Un doble ciclo de reinicio en un minuto, con un evento de driver encajado entre ambos, es exactamente el aspecto que tiene una actualización de firmware remota vista desde dentro.

demostrado  El escalón de potencia y los reinicios registrados. Los dos con fecha, los dos procedentes del dispositivo.

inferido  Que la actualización cambiara el umbral térmico. Eso no puedo verificarlo desde el equipo: los paquetes de firmware en caché solo llegan hasta 2026 y no queda ningún fichero del sistema con fecha de 2025. El estado honesto de esta afirmación es correlación fuerte, mecanismo desconocido.

Mi hipótesis de trabajo es que el umbral se bajó deliberadamente por seguridad: el tipo de cambio que un fabricante despliega en silencio cuando los datos de campo empiezan a mostrar unidades funcionando más calientes de lo que le gustaría. Encaja con la forma de la evidencia mejor que cualquier modo de fallo que se me ocurra, y tiene una implicación incómoda: si eso es lo que pasó, no hay nada que reparar. La unidad está haciendo exactamente lo que se le ha mandado hacer.

Lo que no es

Cada una de estas fue una hipótesis viva en algún momento, y cada una costó mediciones matarla. Dejar constancia de los callejones sin salida es justamente el sentido de una nota de campo.

Lo que cuesta

Sesiones desde entonces
136
Energía entregada
3003 kWh
Horas de carga
635
Sobrecoste en tiempo
~58 h

Esas 58 horas son la diferencia entre entregar esa energía al nivel anterior y hacerlo al actual. En una noche normal son unos 30 minutos: molesto, no doloroso. El coste de verdad está en la cola de la distribución: en la peor noche registrada el recorte bajó hasta 18,3 A, y eso convierte una carga completa en un asunto de todo el día.

Cómo comprobar el tuyo

Nada de esto es visible desde la app del fabricante ni desde su API en la nube, así que todo salió del propio dispositivo. El Pulsar Plus corre Linux embebido y hay trabajo previo excelente para conseguir una shell de root y para sacar su estado por MQTT. Si quieres repetir las mismas mediciones en tu unidad, empieza por aquí — que quede claro: no escribí ninguno de los dos.

Con una shell, el estado interesante vive en una base de datos MySQL local llamada wallbox. Dos tablas contienen todo lo usado en este artículo:

-- telemetria viva: temp_l1, ac_current_rms_l1, max_charging_current...
-- buffer circular, 25k filas, unos 2,5 meses
SELECT timestamp, temp_l1, ac_current_rms_l1, max_charging_current
FROM state_values ORDER BY timestamp DESC LIMIT 50;

-- historial de sesiones: esta si guarda anos
SELECT DATE(start_time)              AS dia,
       ROUND(energy/1000, 1)         AS kwh,
       ROUND(charging_time/60)       AS minutos,
       ROUND(energy*3.6/charging_time, 2) AS kw_medio
FROM session
WHERE HOUR(start_time) IN (23, 0)   -- solo sesiones nocturnas
  AND charging_time > 7200          -- mas de dos horas
  AND energy > 15000
ORDER BY start_time;

Trampa que me costó un desvío: en la tabla session, start_time y end_time son columnas DATETIME, no marcas de tiempo Unix. Envúelvelas en FROM_UNIXTIME() por costumbre y obtienes una columna llena de NULL, que se parece exactamente a que el campo nunca se haya rellenado. Estuve a punto de concluir que no había historial utilizable.

Otra cosa que conviene saber: state_values_dc.POWER_DERATING_STATUS existe como columna, pero esa tabla está vacía en una unidad de AC — el esquema se comparte con los modelos de DC. En un Pulsar Plus no hay ningún flag de derating que leer. Hay que inferirlo de la corriente frente a la temperatura.

Por el lado de MQTT, los topics que quieres son wallbox_<serie>/temp_l1/state y wallbox_<serie>/charging_current_l1/state. Registra los dos con resolución de unos pocos segundos durante una sesión completa y la escalera se dibuja sola. Si además pasas el coche por TeslaMate, cruza charge_current_request_max del MQTT y no la columna charger_pilot_current de Postgres: esta última reportaba 16 A contra 30 A de corriente medida en mi coche, que es físicamente imposible, y me costó otro camino equivocado.

Cómo está la cosa

Sin resolver, siendo honesto. El umbral está caracterizado, el cambio está fechado en una ventana de cuatro meses, y el mecanismo detrás de esa ventana sigue siendo una inferencia. Hay dos cosas en la cola.

La primera es aburrida y probablemente funcione: convección forzada. Un ventilador de 120 mm, un relé inteligente, un soporte impreso en 3D y una automatización que lo arranque por encima de 60 °C mientras carga. Si la unidad no llega nunca a 79 °C, nunca recorta, sea cual sea el umbral que lleve el firmware. He hecho un par de sesiones con la tapa físicamente abierta y siguen tocando el umbral, lo cual es indicativo pero está muy lejos de ser noches suficientes para dar por muerta la convección natural. En cualquier caso, mover aire es un régimen físico distinto, y ese es el que merece probarse en serio.

La segunda es pedir al fabricante el historial de firmware de la unidad y ver si esa ventana coincide con un despliegue. Vaya como vaya esa respuesta, la parte interesante ya está hecha: el dispositivo registró su propia regresión, en dos tablas distintas, y la guardó durante dos años. Estaba ahí todo el tiempo, detrás de un formato de fecha que no cuadraba y de un campo de configuración que no se mueve nunca.

Cuando el ventilador esté puesto, la prueba es sencilla y los datos para comparar ya existen: que la corriente de línea aguante 32,6 A una sesión entera, en vez de bajar un escalón en el minuto veintitrés.