Nuit : la recovery batterie est une passe unique, pas un oscillateur
La bande de 2 points du Fix A engageait le takeover a SOC 33 et le relachait a 35 : 0,34 kWh, soit une demi-heure de conso nocturne plate. Trois cycles EDF la nuit du 26-27/08, six la nuit du 20-21/08, 2,5 kWh importes pour rien. Une seule passe de recovery par session de nuit. Le plancher dur reste un terme independant, l hysteresis garde sa bande 20/30, et le vrai critere de re-engagement (un budget d energie) appartient au bilan, pas a une constante de plus ici. Golden 40 -> 42, preuve par mutation. Documente aussi deux acteurs non lus : les charges programmees de l ESS (45 % la nuit, contre notre cible 35 %) et le regime majoritairement hors reseau. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
@@ -582,8 +582,8 @@ export const scenarios = [
|
||||
},
|
||||
},
|
||||
{
|
||||
id: 'night-recovery-rearm-sous-bande',
|
||||
label: 'Nuit HC 05:30, recovery done mais SOC 32 ≤ cible−2 → ré-engagement takeover (recharge batterie)',
|
||||
id: 'night-recovery-done-pas-de-reengagement',
|
||||
label: 'Nuit HC 05:30, recovery done et SOC 32 sous la cible → AUCUN ré-engagement (la recovery est une passe unique, 27/08)',
|
||||
time: '2026-08-08T05:30:00+02:00',
|
||||
overrides: {
|
||||
...VEHICLE_NIGHT, soc_percent: '32', allow_grid_hc_night: 'on',
|
||||
@@ -595,15 +595,65 @@ export const scenarios = [
|
||||
expect: {
|
||||
profile: 'night_hc',
|
||||
sourceMode: 'blocked',
|
||||
state: 'night_session_done_idle',
|
||||
// Collant désormais : la recovery ayant eu lieu, l'état reste
|
||||
// 'night_recovery_done_idle' même sous la cible — c'est lui qui autorise
|
||||
// la coupure EDF immédiate côté hystérésis (E2) dès SOC >= grid_soc_off.
|
||||
state: 'night_recovery_done_idle',
|
||||
decision: 'hold',
|
||||
desiredCharging: false,
|
||||
currentA: 6,
|
||||
takeoverNeeded: true,
|
||||
takeoverNeeded: false,
|
||||
edfOnAction: false,
|
||||
takeoverHelperService: 'turn_off',
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
// L'oscillateur mesuré : nuit du 26-27/08, Jeep pleine restée branchée,
|
||||
// cible 35. L'ancienne bande de 2 points ré-engageait le takeover pile à
|
||||
// SOC 33 -> EDF ON 04:24/05:31/07:05, OFF 05:16/06:50/07:30, 2,5 kWh
|
||||
// importés une nuit où le lendemain était annoncé à 43 kWh.
|
||||
id: 'night-oscillateur-nuit-2627',
|
||||
label: 'Nuit HC 05:31, recovery done et SOC 33 (cible 35 − 2) → le takeover NE se ré-engage pas : plus d\'oscillateur',
|
||||
time: '2026-08-27T05:31:00+02:00',
|
||||
overrides: {
|
||||
...VEHICLE_NIGHT, soc_percent: '33', allow_grid_hc_night: 'on',
|
||||
grid_state: 'off', victron_acin1_available: '0',
|
||||
battery_current_a: '-11', night_takeover_prev: 'off',
|
||||
evcs_charging_switch: 'off',
|
||||
prev_surplus_state: 'night_recovery_done_idle',
|
||||
},
|
||||
expect: {
|
||||
profile: 'night_hc',
|
||||
sourceMode: 'blocked',
|
||||
state: 'night_recovery_done_idle',
|
||||
takeoverNeeded: false,
|
||||
edfOnAction: false,
|
||||
takeoverHelperService: 'turn_off',
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
// Le filet de sécurité doit rester intact : sous le plancher dur, le
|
||||
// takeover se ré-engage même si la recovery a déjà eu lieu, parce que
|
||||
// batteryBelowHardFloor est un terme INDÉPENDANT de nightGridTakeoverNeeded.
|
||||
id: 'night-recovery-done-plancher-dur',
|
||||
label: 'Nuit HC 05:31, recovery done mais SOC 21 sous le plancher dur 22 → ré-engagement du takeover (sécurité)',
|
||||
time: '2026-08-27T05:31:00+02:00',
|
||||
overrides: {
|
||||
...VEHICLE_NIGHT, soc_percent: '21', allow_grid_hc_night: 'on',
|
||||
grid_state: 'off', victron_acin1_available: '0',
|
||||
battery_current_a: '-11', night_takeover_prev: 'off',
|
||||
evcs_charging_switch: 'off',
|
||||
prev_surplus_state: 'night_recovery_done_idle',
|
||||
},
|
||||
expect: {
|
||||
profile: 'night_hc',
|
||||
takeoverNeeded: true,
|
||||
takeoverHelperService: 'turn_on',
|
||||
},
|
||||
},
|
||||
|
||||
{
|
||||
id: 'night-vw-statut-charged',
|
||||
label: 'Nuit HC 03:00, statut EVCS brut 3 (charged), sans état VDF préalable → fin de charge immédiate (Fix D)',
|
||||
|
||||
Reference in New Issue
Block a user