Cible du matin fixee par le bilan dans les deux sens ; urgence avant depart seulement s'il manque de l'energie

This commit is contained in:
Tallagrand Thierry
2026-10-01 07:42:33 +02:00
parent 677a0388d7
commit df7395109e
4 changed files with 48 additions and 13 deletions

View File

@@ -353,8 +353,15 @@ const balanceMorningTargetApplied =
balanceTargetAgeMin !== null &&
balanceTargetAgeMin <= BALANCE_TARGET_MAX_AGE_MIN;
// ⚠️ 01/10/2026 — DECISION DU PROPRIETAIRE : LE BILAN FIXE LA CIBLE, DANS LES
// DEUX SENS. « La valeur de 35 % c'est idiot si le besoin est prevu 26,6 %, et
// c'est aussi idiot si la prevision est de 60 % pour une journee nuageuse. »
// Le sens unique ci-dessus (03/09) gardait le palier comme plancher : le
// 01/10 a 06:00, cible 35 (palier « forte prevision ») pour un besoin du bilan
// de 28,6 %. Le palier n'est plus qu'un REPLI quand le bilan est absent,
// perime ou degrade. Bornes : le plancher dur en bas, 90 % en haut.
const batteryMorningTargetPct = balanceMorningTargetApplied
? Math.min(90, Math.max(batteryMorningTargetBasePct, params.balanceRequiredSocPct))
? Math.min(90, Math.max(batteryHardFloorPct, params.balanceRequiredSocPct))
: batteryMorningTargetBasePct;
const maxBatteryDischargePoints =
@@ -387,8 +394,13 @@ const batteryRecoveryMinutesNeeded =
? (batteryKwhMissingToTarget / params.evcsNightBatteryRecoveryPowerKw) * 60
: 0;
// 01/10/2026 : l'urgence avant depart exige qu'il MANQUE de l'energie. Sans
// cette garde, « 0 min de recharge + 30 min de marge >= 30 min » la declenchait
// a 06:00 chaque jour de depart, batterie au-dessus de sa cible (01/10 : SOC 37,
// cible 35, EDF ferme 06:00-06:38 pour rien ; idem 21, 22, 25 et 27/09).
const batteryRecoveryUrgent =
nightSessionActive &&
batteryKwhMissingToTarget > 0 &&
Number.isFinite(minutesUntilDeparture) &&
minutesUntilDeparture >= 0 &&
(