fix(ups): testul lunar de baterie nu putea da alarma niciodata

Verdictul se calcula din CHARGE_DROP, dar la acest UPS battery.charge nu e o
masuratoare independenta: driverul nutdrv_qx / Voltronic-QS-Hex o deduce liniar
din tensiune intre battery.voltage.low (20.8V) si .high (26.0V). Verificat pe
toate probele din 11 luni: 25.76V -> 95.4% -> raportat 95%.

Traduse in tensiune, pragurile vechi cereau o cadere de 3.70V pentru FAIR (primul
prag care trimite severity warning) si 4.74V pentru POOR, intr-un test de 40 de
secunde. Maximul observat in 11 luni a fost 2.59V. De asta raportul a iesit
EXCELLENT 11 luni la rand si ar fi facut-o si cu bateria pe moarte.

Evaluarea se face acum pe tendinta: mediana ultimelor 3 rulari fata de mediana
primelor 6, plus o plasa de siguranta pe tensiune absoluta (<25.0V forteaza FAIR,
<24.0V forteaza POOR). Fereastra de 3 impiedica o luna atipica sa declanseze
singura alarma - verificat pe feb 2026 (2.59V), care nu bascuelaza verdictul.

Istoricul se tine in /var/log/ups-battery-trend.csv, populat cu cele 14 rulari
extrase din jurnal (2025-10-06 -> 2026-08-01), ca linia de baza sa fie valida
imediat si nu peste 9 luni.

Starea la zi: baza 1.82V, recent 2.12V, raport 1.16x -> EXCELLENT. Cresterea de
~16% in 10 luni e reala dar sub banda de avertizare; FAIR s-ar da la 2.73V.

Instalat pe pvemini in /opt/scripts/, verificat cap-coada cu testul de baterie
anulat, ca sa nu descarce bateria: tendinta calculata corect, template-urile
regenerate cu campurile noi, notificarea PVE::Notify trimisa cu succes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RRyaDj39hPQ89SZS6URRpS
This commit is contained in:
Marius
2026-08-27 14:46:35 +03:00
parent bf73ccf5b1
commit 0b8e8f6892
4 changed files with 368 additions and 50 deletions

View File

@@ -10,12 +10,17 @@ Ghid complet pentru înlocuirea bateriei UPS când cluster-ul Proxmox este compl
### Indicatori din Testele Lunare:
Verdictul lunar se dă pe **tendința căderii de tensiune** față de linia de bază a
bateriei, nu pe praguri absolute de încărcare (vezi
[UPS-MONTHLY-TEST.md](UPS-MONTHLY-TEST.md#evaluare-sănătate-baterie) pentru de ce).
| Indicator | Acțiune |
|-----------|---------|
| **Health: POOR** (charge drop > 55%) | ⚠️ URGENT - Înlocuiește IMEDIAT |
| **Health: FAIR** (charge drop 35-55%) | 📅 Planifică în 1-3 luni |
| **Health: GOOD** (charge drop 15-35%) | ✅ Monitorizează lunar |
| **Health: EXCELLENT** (charge drop < 15%) | ✅ Baterie OK |
| **Health: POOR** (≥ 2.0x față de bază, sau minim < 24.0V) | ⚠️ URGENT - Înlocuiește IMEDIAT |
| **Health: FAIR** (1.5-2.0x, sau minim < 25.0V) | 📅 Planifică în 1-3 luni |
| **Health: GOOD** (1.25-1.5x) | ✅ Monitorizează lunar |
| **Health: EXCELLENT** (< 1.25x) | ✅ Baterie OK |
| **Health: BASELINE** | Se colectează istoric, sub 9 rulări |
### Alte Semne:
@@ -341,7 +346,18 @@ tail -30 /var/log/ups-monthly-test.log | grep -A 5 "Sănătate baterie"
```
**Așteptat pentru baterie nouă:**
- Charge drop: < 10% (EXCELLENT)
- Raport față de linia de bază: < 1.25x (EXCELLENT)
**După înlocuire, linia de bază trebuie resetată** — altfel bateria nouă se compară
cu media celei vechi și verdictul iese fals de bun:
```bash
mv /var/log/ups-battery-trend.csv /var/log/ups-battery-trend.csv.$(date +%Y%m%d).vechi
# primele 9 rulări vor raporta BASELINE, apoi verdictul redevine valid
```
Notează data înlocuirii în acest document — jurnalul nu o conține, iar vârsta
bateriei nu se poate deduce din software.
- Voltage drop: 1-2V
- Recuperare rapidă: < 60 secunde