Drogheda/02-Architecture-Software/htracker-patches/README.md

2.3 KiB

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:

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,<up_s>,<CODIGO>,<detalle>*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,<rssi>,….