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:
@@ -47,24 +47,90 @@ Script automat pentru testarea lunară a bateriei UPS care rulează pe data de 1
|
||||
|
||||
## Evaluare Sănătate Baterie
|
||||
|
||||
Scriptul evaluează sănătatea bateriei bazat pe scăderea încărcării în timpul testului:
|
||||
**Evaluarea se face pe tendință, nu pe praguri absolute.** Din 2026-08-27; înainte
|
||||
se folosea scăderea încărcării față de praguri fixe, care nu funcționa — vezi
|
||||
[De ce s-a schimbat metoda](#de-ce-sa-schimbat-metoda) mai jos.
|
||||
|
||||
| Scădere Încărcare | Sănătate | Status | Acțiune Necesară |
|
||||
|-------------------|----------|--------|------------------|
|
||||
| < 10% | **EXCELLENT** | ✅ Verde | Nicio acțiune necesară |
|
||||
| 10-30% | **GOOD** | ✅ Verde | Continuă monitorizarea |
|
||||
| 30-50% | **FAIR** | ⚠️ Galben | Planifică înlocuire în 3-6 luni |
|
||||
| > 50% | **POOR** | 🔴 Roșu | **URGENT: Înlocuiește bateria!** |
|
||||
### Metoda
|
||||
|
||||
### Exemple de rezultate reale:
|
||||
Se măsoară **căderea de tensiune sub sarcină** în cele ~40 de secunde de test și se
|
||||
compară cu linia de bază a acestei baterii:
|
||||
|
||||
**Test 1 (2025-10-06 20:45):**
|
||||
- Scădere încărcare: 0% (charge reporting delay)
|
||||
- Scădere tensiune: 1.64V (27.88V → 26.24V)
|
||||
- Evaluare: **EXCELLENT**
|
||||
- Recuperare: 30 secunde la 100%
|
||||
- **linia de bază** = mediana primelor 6 rulări înregistrate, adică bateria în cea
|
||||
mai bună stare pe care o avem măsurată;
|
||||
- **valoarea recentă** = mediana ultimelor 3 rulări, ca o lună atipică (frig,
|
||||
sarcină mare) să nu declanșeze singură o alarmă;
|
||||
- **raportul** dintre ele urcă pe măsură ce crește rezistența internă a bateriei,
|
||||
ceea ce dă avertisment cu luni înainte de cedare.
|
||||
|
||||
**Notă:** UPS-ul raportează uneori încărcarea cu întârziere. Scăderea tensiunii este un indicator mai precis al capacității bateriei.
|
||||
| Raport față de bază | Sănătate | Severitate email | Acțiune |
|
||||
|---------------------|----------|------------------|---------|
|
||||
| < 1.25x | **EXCELLENT** | info | Nicio acțiune |
|
||||
| 1.25 – 1.50x | **GOOD** | info | Uzură normală, urmărește lunar |
|
||||
| 1.50 – 2.00x | **FAIR** | ⚠️ warning | Planifică înlocuirea în 3-6 luni |
|
||||
| ≥ 2.00x | **POOR** | 🔴 error | **URGENT: înlocuiește bateria** |
|
||||
|
||||
Peste asta există o **plasă de siguranță pe tensiune absolută**, pentru cazul în
|
||||
care bateria cedează brusc, înainte să apuce mediana să urce:
|
||||
|
||||
| Minim atins în test | Efect |
|
||||
|---------------------|-------|
|
||||
| < 25.0 V | forțează cel puțin **FAIR** |
|
||||
| < 24.0 V | forțează **POOR** direct |
|
||||
|
||||
Până se strâng 9 rulări (6 pentru bază + 3 pentru fereastra recentă), verdictul
|
||||
este **BASELINE** — se colectează date, severitate `info`.
|
||||
|
||||
### Fișierul de tendință
|
||||
|
||||
`/var/log/ups-battery-trend.csv`, câte o linie per rulare:
|
||||
|
||||
```
|
||||
date,voltage_drop,min_voltage,charge_drop,before_load,after_load,duration
|
||||
2026-08-01,2.12,25.76,5,10,12,40
|
||||
```
|
||||
|
||||
Se poate reconstrui oricând din jurnal cu
|
||||
`/opt/scripts/ups-battery-trend-backfill.sh --force`. A fost populat inițial cu
|
||||
14 rulări extrase din `/var/log/ups-monthly-test.log` (2025-10-06 → 2026-08-01),
|
||||
ca linia de bază să fie validă imediat și nu peste 9 luni.
|
||||
|
||||
### Starea la 2026-08-27
|
||||
|
||||
| Perioadă | Cădere de tensiune |
|
||||
|----------|--------------------|
|
||||
| oct–dec 2025 (linia de bază) | 1.41 – 2.00 V, mediană **1.82 V** |
|
||||
| iun–aug 2026 (recent) | 2.12 – 2.23 V, mediană **2.12 V** |
|
||||
|
||||
Raport **1.16x** → **EXCELLENT**. Creșterea de ~16% în 10 luni e reală, dar sub
|
||||
banda de avertizare. Alarma (FAIR) s-ar da la o cădere de ~2.73 V.
|
||||
|
||||
### De ce s-a schimbat metoda
|
||||
|
||||
`battery.charge` **nu e o măsurătoare independentă** la acest UPS. Driverul
|
||||
`nutdrv_qx` / `Voltronic-QS-Hex` nu are contor de coulombi; deduce încărcarea
|
||||
liniar din tensiune, între `battery.voltage.low` (20.8 V) și `battery.voltage.high`
|
||||
(26.0 V):
|
||||
|
||||
```
|
||||
charge = (V - 20.8) / (26.0 - 20.8) * 100
|
||||
```
|
||||
|
||||
Verificat pe toate probele din 11 luni: 25.76 V → 95.4% → raportat 95%;
|
||||
25.29 V → 86.3% → raportat 86%. Se potrivește exact de fiecare dată.
|
||||
|
||||
Pragurile vechi, traduse înapoi în tensiune, cereau:
|
||||
|
||||
| Prag vechi | Însemna cădere de | Observat în 11 luni |
|
||||
|------------|-------------------|---------------------|
|
||||
| GOOD (drop 15%) | 2.66 V | maxim 2.59 V |
|
||||
| FAIR (drop 35%) | **3.70 V** | niciodată |
|
||||
| POOR (drop 55%) | **4.74 V** | niciodată |
|
||||
|
||||
EXCELLENT și GOOD sunt amândouă severitate `info`, deci primul prag care chiar
|
||||
trimite un avertisment era FAIR, la o cădere de 3.70 V într-un test de 40 de
|
||||
secunde. O baterie ajunsă acolo e practic un rezistor. De asta testul a raportat
|
||||
**EXCELLENT 11 luni la rând** și ar fi făcut-o și cu bateria pe moarte.
|
||||
|
||||
## Instalare
|
||||
|
||||
@@ -396,11 +462,14 @@ Recuperare: 25% în 300 secunde
|
||||
| Indicator | Bun | Acceptabil | Critic |
|
||||
|-----------|-----|------------|--------|
|
||||
| **Vârstă baterie** | < 2 ani | 2-4 ani | > 4 ani |
|
||||
| **Scădere încărcare** | < 10% | 10-50% | > 50% |
|
||||
| **Scădere tensiune** | < 2V | 2-5V | > 5V |
|
||||
| **Raport față de linia de bază** | < 1.25x | 1.25-2.0x | > 2.0x |
|
||||
| **Tensiune minimă în test** | > 25.0V | 24.0-25.0V | < 24.0V |
|
||||
| **Timp recuperare** | < 1 min | 1-5 min | > 5 min |
|
||||
| **Teste failed** | 0 | 1-2 | > 3 |
|
||||
|
||||
Scăderea încărcării nu mai e criteriu — la acest UPS e tensiunea rescalată, nu o
|
||||
măsurătoare separată.
|
||||
|
||||
### Factori care afectează durata de viață:
|
||||
|
||||
- **Temperatură:** Ideal 20-25°C (fiecare +10°C reduce durata cu 50%)
|
||||
|
||||
Reference in New Issue
Block a user