# Parches para htracker (rama `feature/test500unidades`) Parches propuestos al backend que **no** se aplican desde aquí: Gibran es el dueño de `htracker`. Se generan contra la última `origin/feature/test500unidades` (`retranslator.py` no cambió entre `d8dc4cf` y `2cdcb5e`) y se prueban con el parser real antes de proponerlos. ## 2026-09-18 — `retranslator_phlg-v5-extra_phev_alertas.patch` (fw 0.5.1-fm) Aplicar en el clon del servidor o en el Mac: ```bash cd htracker && git checkout feature/test500unidades && git pull --ff-only git apply --check ../../02-Architecture-Software/htracker-patches/2026-09-18_retranslator_phlg-v5-extra_phev_alertas.patch git apply ../../02-Architecture-Software/htracker-patches/2026-09-18_retranslator_phlg-v5-extra_phev_alertas.patch python3 -m py_compile retranslator.py ``` Qué hace (solo `retranslator.py`, 152 líneas; `web_monitor.py` queda para Gibran): 1. **`$PHLG` de 29 campos** (`_PHLG_FIELDS_V5_EXTRA = up_s, pwr, v5min, vbat_min, bkp_n`). Append-only: las tramas de 21 (v2.x) y 25 (v3.x) campos siguen parseando igual. 2. **`$PHEV,,,*CS`** — eventos en banda (STACK_ON/OFF, BACKUP_START/END, RECOVERY, LIMP, TEMP_CUT/REARM, V5_LOW/LOST/OK, IGN_ON/OFF, SLEEP, MODOB_ON/OFF, BOOT). Se guardan los últimos 200 por unidad (`DEVICE_EVENTS`) y salen en el status JSON como `events` (últimos 20, con `age_s`). 3. **Reglas de diagnóstico** en `_note_health` (van al log como WARNING → Loki/Grafana): - `reset_cause=IWDG` → el MCU se colgó. - `up_s` bajó → reinicio; ≥ 2 en una hora → «¿BUCLE DE ARRANQUE?». `reboots_1h` sale en el snapshot. - `recoveries` subió → la unidad cicló la etapa RTK. - `v5min < 4.60 V` con el riel presente → zona PFI del LTC4040: ajustar la fuente del gabinete a ~5.3 V. - `pwr=BATT` → en respaldo (cargador OFF en 0.x: el paquete es de un solo uso); regreso a `VEH` en INFO. Probado con el parser real: tramas de 24 y 29 campos, `$PHEV`, checksum malo rechazado, y las cinco reglas disparan. Sugerencias para `web_monitor.py` (Gibran): columna «Eventos» (últimos `events`), badge `reboots_1h`, `v5min` junto a `v5v` en el medidor de riel, `pwr=BATT` en amarillo, y graficar el RSSI que ya viene en `$GPTXT,NET,H00xx,TELCEL,,…`.