P9: charge réseau avant départ (hors HC) + sélecteur véhicule VW/JEEP

- helpers: input_select.victron_evcs_vehicle, departure_time_jeep (06:30),
  toggle allow_grid_departure_urgent (OFF) — package victron_evcs_vehicles.yaml
- INPUT_PARSE: departureTimeMin par véhicule sélectionné
- WINDOWS: fenêtre départ ≤120min hors HC → grid_hc_allowed (solar_only prioritaire),
  état collant departure_done_idle à la fin de charge
- BCL: gridAllowedBySoc += departureUrgentActive
- DECISION: branche collante departure_done_idle au-dessus des gardes
- HA_SERVICE_CALLS: takeover helper tenu pendant P9 (ACM + hystérésis)
- hystérésis: cut immédiat étendu à departure_done_idle (patch rejouable)
- golden 29→33, HANDOFF §21
This commit is contained in:
Tallagrand Thierry
2026-08-09 08:27:24 +02:00
parent 98c9202bad
commit 0419c741de
11 changed files with 312 additions and 9 deletions

View File

@@ -208,6 +208,106 @@ export const scenarios = [
},
},
// ===== P9 09/08/2026 : charge réseau avant départ (hors HC) + sélecteur véhicule =====
// VW départ 08:50 (helper existant), JEEP départ 06:30 (nouveau helper).
// À 08:00 (morning_solar, PV nul) : VW → fenêtre départ active (50 min) ;
// JEEP → départ passé depuis 90 min → rien.
{
id: 'p9-depart-vw-grid',
label: 'Matin 08:00, VW sélectionnée, départ 08:50, toggle P9 ON, SOC 45, PV nul → réseau autorisé + EDF demandé',
time: '2026-08-10T08:00:00+02:00',
overrides: {
...VEHICLE_NIGHT, soc_percent: '45',
evcs_vehicle: 'VW',
departure_time: '08:50:00',
departure_time_jeep: '06:30:00',
allow_grid_departure_urgent: 'on',
},
expect: {
profile: 'morning_solar',
sourceMode: 'grid_hc_allowed',
state: 'wait_grid_source',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: false,
edfOnAction: true,
takeoverHelperService: 'turn_on',
},
},
{
id: 'p9-depart-jeep-passe',
label: 'Matin 08:00, JEEP sélectionnée (départ 06:30 passé), toggle P9 ON → aucune fenêtre, bloqué',
time: '2026-08-10T08:00:00+02:00',
overrides: {
...VEHICLE_NIGHT, soc_percent: '45',
evcs_vehicle: 'JEEP',
departure_time: '08:50:00',
departure_time_jeep: '06:30:00',
allow_grid_departure_urgent: 'on',
},
expect: {
profile: 'morning_solar',
sourceMode: 'blocked',
state: 'idle_wait_source',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: false,
edfOnAction: false,
takeoverHelperService: 'turn_off',
},
},
{
id: 'p9-done-idle-collant',
label: 'Matin 08:10, VW pleine détectée (prev=vehicle_full_or_paused) pendant la fenêtre départ → veille collante, réseau relâché',
time: '2026-08-10T08:10:00+02:00',
overrides: {
...VEHICLE_NIGHT, soc_percent: '45',
evcs_vehicle: 'VW',
departure_time: '08:50:00',
departure_time_jeep: '06:30:00',
allow_grid_departure_urgent: 'on',
grid_state: 'on', victron_acin1_available: '1',
battery_current_a: '2',
prev_surplus_state: 'vehicle_full_or_paused',
},
expect: {
profile: 'morning_solar',
sourceMode: 'blocked',
state: 'departure_done_idle',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: false,
edfOnAction: false,
takeoverHelperService: 'turn_off',
},
},
{
id: 'p9-toggle-off',
label: 'Matin 08:00, VW départ 08:50 mais toggle P9 OFF → comportement historique (bloqué, pas de réseau)',
time: '2026-08-10T08:00:00+02:00',
overrides: {
...VEHICLE_NIGHT, soc_percent: '45',
evcs_vehicle: 'VW',
departure_time: '08:50:00',
departure_time_jeep: '06:30:00',
allow_grid_departure_urgent: 'off',
},
expect: {
profile: 'morning_solar',
sourceMode: 'blocked',
state: 'idle_wait_source',
decision: 'hold',
desiredCharging: false,
currentA: 6,
takeoverNeeded: false,
edfOnAction: false,
takeoverHelperService: 'turn_off',
},
},
// ================= FIN DE CHARGE NUIT (P8) =================
{
id: 'night-vw-pleine-transition',