Revue glissante toutes les 15 min (alertes), recharge maximale jugee contre le possible

This commit is contained in:
Tallagrand Thierry
2026-10-10 15:07:37 +02:00
parent b9bdb44f4c
commit 3988a0a7f5
4 changed files with 146 additions and 10 deletions

View File

@@ -75,8 +75,9 @@ const sessionMidi = (d, requis) => {
const c = constatsRevue(d).constats.find((x) => x.code === 'batterie_sous_objectif_midi');
ok('midi-sous-objectif-0710', !!c && /35 % pour 43,6 % vises, il manquait 2,6 kWh/.test(c.texte), JSON.stringify(c)); }
{ const d = base(); sessionMidi(d, 100);
const r = constatsRevue(d); const c = r.constats.find((x) => x.code === 'charge_max_midi');
ok('midi-charge-max-info', !!c && c.gravite === 'info' && /31 % -> 35 % \(\+1,2 kWh\)/.test(c.texte) && !codes(r).includes('sous_objectif'), JSON.stringify(r.constats)); }
const r = constatsRevue(d); const c = r.constats.find((x) => /charge_max/.test(x.code));
// 10/10 : 31 -> 35 % en 2 h (+1,2 kWh) quand l'abonnement en permettait ~13 kWh = le 07/10, recharge BRIDEE.
ok('midi-charge-max-bridee-0710', !!c && c.code === 'charge_max_bridee' && c.gravite === 'a_examiner' && /31 % -> 35 % \(\+1,2 kWh/.test(c.texte) && !codes(r).includes('sous_objectif'), JSON.stringify(r.constats)); }
{ const d = base(); sessionMidi(d, 43.6);
d.acmA = [{ ts: T('07T12:00:00'), v: 30 }]; d.consigneW = [{ ts: T('07T12:30:00'), v: 5198 }];
@@ -85,5 +86,24 @@ const sessionMidi = (d, requis) => {
ok('etat-joint-au-constat', !!c && /a 13:24/.test(c.etat) && /ACM 30 A/.test(c.etat) && /consigne reseau 5198 W/.test(c.etat)
&& /mode de nuit sans_edf/.test(c.etat) && /session HC engagee oui/.test(c.etat) && /budget voiture sans EDF inconnu/.test(c.etat), c && c.etat); }
// 10/10 : recharge maximale jugee contre le possible. Releve du 09/10 : maison ~2,2 kW,
// 49 -> 62 % (+3,9 kWh) sur 2 h ; possible ~ min(7,3 ; 10,8 - 2,2) x 0,92 x 2 = 13,4 kWh.
{ const d = base(); sessionMidi(d, 100);
d.soc = [{ ts: T('07T12:20:00'), v: 49 }, { ts: T('07T14:20:00'), v: 62 }];
d.maisonW = [{ ts: T('07T12:00:00'), v: 2200 }];
const c = constatsRevue(d).constats.find((x) => /charge_max/.test(x.code));
ok('charge-max-bridee-a-examiner', c && c.code === 'charge_max_bridee' && c.gravite === 'a_examiner' && /13,4 kWh permis/.test(c.texte), c && c.texte); }
{ const d = base(); sessionMidi(d, 100);
d.soc = [{ ts: T('07T12:20:00'), v: 40 }, { ts: T('07T14:20:00'), v: 75 }];
d.maisonW = [{ ts: T('07T12:00:00'), v: 2200 }];
const c = constatsRevue(d).constats.find((x) => /charge_max/.test(x.code));
ok('charge-max-normale-info', c && c.code === 'charge_max_midi' && c.gravite === 'info', c && c.texte); }
{ const d = base(); sessionMidi(d, 100);
d.soc = [{ ts: T('07T12:20:00'), v: 49 }, { ts: T('07T13:30:00'), v: 52 }];
d.maisonW = [{ ts: T('07T12:00:00'), v: 2200 }];
d.debut = T('07T11:30:00'); d.fin = T('07T13:30:00'); d.enCours = true;
const c = constatsRevue(d).constats.find((x) => x.code === 'charge_max_bridee_en_cours');
ok('charge-max-bridee-en-cours', c && /depuis 12:24/.test(c.texte) && c.gravite === 'a_examiner', JSON.stringify(constatsRevue(d).constats.map((x) => x.code))); }
console.log(echecs ? `\n${echecs} ECHEC(S)` : '\nREVUE OK');
process.exit(echecs ? 1 : 0);