Bilan : reprise du chauffe-eau du soir comptee les jours faibles, prevision de l'apres-midi recalee sur la matinee
This commit is contained in:
@@ -128,6 +128,8 @@ const SUMMARIZE = {
|
||||
ecsOn: o.ecsNight ? (o.ecsNight.on ?? null) : null,
|
||||
ecsProjectedSocPct: o.ecsNight ? (o.ecsNight.projectedSocPct ?? null) : null,
|
||||
ecsRequiredSocPct: o.ecsNight ? (o.ecsNight.requiredSocPct ?? null) : null,
|
||||
ecsRepriseKwh: o.ecsReprise ? o.ecsReprise.kwh : null,
|
||||
prodRecalFactor: o.prodRecal ? o.prodRecal.factor : null,
|
||||
}) : ({ usable: false, missing: o.missing.join(',') }),
|
||||
};
|
||||
|
||||
|
||||
@@ -555,6 +555,42 @@ export const balanceScenarios = [
|
||||
{ night_hc_end_ms: Date.parse('2026-09-27T07:24:00+02:00'), ecs_nuit_jour: '2026-09-26|on|x' }),
|
||||
expect: { usable: true, ecsDue: false, ecsDecided: false },
|
||||
},
|
||||
// ======== JOUR FAIBLE : REPRISE DU SOIR ET PREVISION RECALEE (07/10/2026) ========
|
||||
{
|
||||
node: 'BALANCE',
|
||||
id: 'bilan-hc-midi-reference-sans-correction',
|
||||
label: 'Reference : HC de midi 12:30, SOC 31, journee sombre — plancher « tenir jusqu a 01:24 »',
|
||||
snapshot: snap2709('2026-09-27T12:30:00+02:00', 31, MIDI_2709, SOMBRE),
|
||||
expect: { usable: true, hcReachActive: true, hcFloorPct: 38.1 },
|
||||
},
|
||||
{
|
||||
node: 'BALANCE',
|
||||
id: 'bilan-hc-midi-jour-faible-reprise-du-soir',
|
||||
label: 'Meme midi, jour faible : 2,1 kWh de chauffe-eau de 16 h a 20 h comptes -> plancher plus haut',
|
||||
snapshot: Object.assign(snap2709('2026-09-27T12:30:00+02:00', 31, MIDI_2709, SOMBRE),
|
||||
{ ecs_nuit_jour: '2026-09-27|on|x', ecs_reprise_soir_kwh: '2.1' }),
|
||||
// Verifie a la main : 2,1 kWh / 0,30 kWh par point = +7,0 points (38,1 -> 45,1).
|
||||
expect: { usable: true, hcReachActive: true, ecsRepriseKwh: 2.1, hcFloorPct: 45.1 },
|
||||
},
|
||||
{
|
||||
node: 'BALANCE',
|
||||
id: 'bilan-hc-midi-prevision-recalee-sur-la-matinee',
|
||||
label: 'Meme midi, matinee a 60 % de la prevision : les heures restantes du jour x 0,6 -> plancher plus haut',
|
||||
snapshot: Object.assign(snap2709('2026-09-27T12:30:00+02:00', 31, MIDI_2709, SOMBRE), {
|
||||
forecast_today_csv: FS_2709.map((v) => (v * SOMBRE).toFixed(3)).join(','),
|
||||
production_jour_kwh: String(Math.round(FS_2709.slice(0, 12).reduce((a, b) => a + b, 0) * SOMBRE * 0.6 * 100 + FS_2709[12] * SOMBRE * 0.5 * 0.6 * 100) / 100),
|
||||
production_jour_statut: 'complet' }),
|
||||
expect: { usable: true, hcReachActive: true, prodRecalFactor: 0.6, hcFloorPct: 49.4 },
|
||||
},
|
||||
{
|
||||
node: 'BALANCE',
|
||||
id: 'bilan-prevision-jamais-recalee-a-la-hausse',
|
||||
label: 'Matinee meilleure que prevu : facteur 1, on ne promet rien de plus pour l apres-midi',
|
||||
snapshot: Object.assign(snap2709('2026-09-27T12:30:00+02:00', 31, MIDI_2709, SOMBRE), {
|
||||
forecast_today_csv: FS_2709.map((v) => (v * SOMBRE).toFixed(3)).join(','),
|
||||
production_jour_kwh: '40', production_jour_statut: 'complet' }),
|
||||
expect: { usable: true, prodRecalFactor: 1 },
|
||||
},
|
||||
// ======== LES TROIS VEHICULES (28/09/2026) ========
|
||||
{
|
||||
node: 'BALANCE',
|
||||
|
||||
Reference in New Issue
Block a user