La nuit sans voiture, la maison a aussi droit aux heures creuses

Nuit du 11-12/09, vehicule rendu la veille : le bilan a reclame entre
92 % et 59 % de SOC a CHAQUE calcul de la nuit, `reseau_necessaire` vrai
partout, et rien ne s'est passe. SOC fige a 20 % de 23:43 a l'aube,
consigne reseau a 700 W depuis 18:36 -- soit exactement la maison.

L'hysteresis avait bien ferme le contacteur (SOC <= 20), mais fermer le
contacteur ne suffit pas : il faut DEMANDER la puissance (lecon du
01/09). Personne ne la demandait, parce que la session reseau de nuit
exigeait un vehicule branche.

Or le besoin n'a rien a voir avec la voiture : c'est la MAISON qui doit
traverser la nuit, et le bilan sait exactement ce qu'il lui faut. La
fenetre HC suffit comme condition d'engagement. Le relachement reste la
fin de fenetre, donc monotone, donc toujours immune a l'oscillation
(§40) -- la mutation le verifie.

Cout evite : a 07:24 le SOC etait encore sous le seuil OFF de
l'hysteresis (30), donc le contacteur serait reste ferme et la maison
serait passee au PLEIN TARIF jusqu'au croisement PV de 9 h. C'est le
1,49 kWh deja consigne le 03/09.

Golden 91 -> 95. Mutation : exigence de vehicule retablie -> seul le
scenario d'incident tombe ; borne de fenetre retiree -> le scenario de
fin de fenetre du 03/09 tombe AUSSI, donc la monotonie est bien testee.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GwpFpy2aQ2rJok6tNQSbVj
This commit is contained in:
Tallagrand Thierry
2026-09-12 05:02:31 +02:00
parent dd56c6b48b
commit 2493b5baa1
3 changed files with 112 additions and 2 deletions

View File

@@ -2350,4 +2350,93 @@ export const scenarios = [
gridSetpointW: 4829,
},
},
// ======== SESSION RESEAU DE NUIT SANS VEHICULE (12/09/2026) ========
// Nuit du 11-12/09, voiture rendue la veille : le bilan a reclame 92 % puis
// 59 % de SOC toute la nuit, `reseau_necessaire` vrai a chaque calcul, et
// rien ne s'est passe -- SOC fige a 20 %, consigne reseau a 700 W depuis
// 18:36. La session exigeait un vehicule branche.
{
id: 'nuit-sans-vehicule-session-engage',
label: "INCIDENT 12/09 04:00 — HC, AUCUN vehicule, SOC 20, le bilan demande 59,1 % : la session reseau doit s'engager pour la MAISON",
time: '2026-08-08T04:00:00+02:00',
overrides: {
evcs_vehicle_connected: 'off', evcs_device_connected: 'on',
grid_state: 'on', victron_acin1_available: '1',
soc_percent: '20', battery_current_a: '0',
pv_power_w: '0', pv_power_10m_avg_w: '0', pv_trend_w: '0',
house_ac_power_w: '612', vebus_ac_out_l1_power_w: '612',
evcs_ac_power_w: '0',
grid_setpoint_w: '700',
balance_required_soc: '59.1', balance_energy_to_cover_kwh: '3.13',
balance_status: 'ok', balance_last_run: '08/08 03:58',
},
expect: {
profile: 'night_hc',
takeoverNeeded: true,
takeoverHelperService: 'turn_on',
sessionCommittedService: 'turn_on',
gridSetpointW: 5437,
},
},
{
id: 'nuit-sans-vehicule-batterie-couverte',
label: "CONTREFACTUEL — meme nuit sans vehicule mais SOC 70 au-dessus des 59,1 % requis : aucune session, la batterie passe la nuit seule",
time: '2026-08-08T04:00:00+02:00',
overrides: {
evcs_vehicle_connected: 'off', evcs_device_connected: 'on',
grid_state: 'on', victron_acin1_available: '1',
soc_percent: '70', battery_current_a: '-12',
pv_power_w: '0', pv_power_10m_avg_w: '0', pv_trend_w: '0',
house_ac_power_w: '612', vebus_ac_out_l1_power_w: '612',
evcs_ac_power_w: '0',
grid_setpoint_w: '700',
balance_required_soc: '59.1', balance_energy_to_cover_kwh: '3.13',
balance_status: 'ok', balance_last_run: '08/08 03:58',
},
expect: {
profile: 'night_hc',
takeoverNeeded: false,
sessionCommittedService: null,
},
},
{
id: 'nuit-sans-vehicule-hors-fenetre',
label: "CONTREFACTUEL — meme deficit mais a 23:00, HORS fenetre HC : aucune session. Le relachement reste la fin de fenetre, donc monotone.",
time: '2026-08-08T23:00:00+02:00',
overrides: {
evcs_vehicle_connected: 'off', evcs_device_connected: 'on',
grid_state: 'on', victron_acin1_available: '1',
soc_percent: '20', battery_current_a: '-12',
pv_power_w: '0', pv_power_10m_avg_w: '0', pv_trend_w: '0',
house_ac_power_w: '612', vebus_ac_out_l1_power_w: '612',
evcs_ac_power_w: '0',
grid_setpoint_w: '700',
balance_required_soc: '92.2', balance_energy_to_cover_kwh: '6.33',
balance_status: 'ok', balance_last_run: '08/08 22:58',
},
expect: {
takeoverNeeded: false,
sessionCommittedService: null,
},
},
{
id: 'nuit-sans-vehicule-bilan-perime',
label: "CONTREFACTUEL — HC sans vehicule, SOC 20, mais bilan vieux de 2 h : comportement historique, aucune session",
time: '2026-08-08T04:00:00+02:00',
overrides: {
evcs_vehicle_connected: 'off', evcs_device_connected: 'on',
grid_state: 'on', victron_acin1_available: '1',
soc_percent: '20', battery_current_a: '0',
pv_power_w: '0', pv_power_10m_avg_w: '0', pv_trend_w: '0',
house_ac_power_w: '612', vebus_ac_out_l1_power_w: '612',
evcs_ac_power_w: '0',
grid_setpoint_w: '700',
balance_required_soc: '59.1', balance_energy_to_cover_kwh: '3.13',
balance_status: 'ok', balance_last_run: '08/08 02:00',
},
expect: {
takeoverNeeded: false,
sessionCommittedService: null,
},
},
];