Prevision de nuit : mode jour (plus de fausse reponse sur la nuit ecoulee)

Le jour, sans rien a couvrir avant le retour du solaire, le texte parlait de
la nuit ecoulee (« 0 kWh jusqu au retour du solaire vers 10 h, la batterie
suffit »). Etat `jour` : la prevision se fait le soir, avec un repere
provisoire (prochaine traversee prudente) et l'achat si EDF s'engage.
Diagnostics 87/87.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011uJ47NxgfpGnuuMr3f2n7Z
This commit is contained in:
Tallagrand Thierry
2026-09-29 10:53:39 +02:00
parent 24ccecbc02
commit c2f9e83a39
3 changed files with 63 additions and 2 deletions

View File

@@ -397,6 +397,31 @@ for (const [nom, r, test] of imp) {
'input_boolean.victron_evcs_night_grid_session_committed': 'off', 'input_number.evcs_balance_night_hc_house_kwh': '4.46',
})) m.set(k, { state: v }); return previsionNuit(m, t); })(),
(r) => r.etat === 0 && r.attributs.verdict === 'juste' && /la maison y achetera alors environ 4,5 kWh/.test(r.attributs.explication)],
// Releve REEL du 29/09 10:45 (banc SPARK) : « la maison doit couvrir 0 kWh
// jusqu au retour du solaire vers 10 h … la batterie suffit » en reponse a
// « combien d EDF la nuit prochaine ? ».
['29/09 10:45 : le jour, pas de fausse prevision de nuit, un repere provisoire', (() => {
const m = base(); for (const [k, v] of Object.entries({
'input_number.evcs_balance_energy_to_cover_kwh': '0', 'input_boolean.evcs_balance_grid_needed': 'off',
'input_number.evcs_balance_grid_energy_needed_kwh': '0', 'input_text.evcs_balance_crossing_hour': '10 h',
'input_number.evcs_balance_required_soc': '22', 'input_number.evcs_balance_required_soc_prudent': '22',
'sensor.victron_battery_soc': '46', 'input_boolean.victron_evcs_night_grid_session_committed': 'off',
'sensor.evcs_reseau': 'non_raccorde', 'input_number.evcs_balance_night_hc_house_kwh': '4.16',
'input_datetime.victron_evcs_hc_night_start': '01:24:00', 'input_datetime.victron_evcs_hc_night_stop': '07:24:00',
'input_text.evcs_balance_next_deficit_window': '18 h → 09 h',
'input_number.evcs_balance_next_deficit_required_soc': '81.6', 'input_number.evcs_balance_next_deficit_kwh': '17.87',
})) m.set(k, { state: v }); return previsionNuit(m, t); })(),
(r) => r.etat === 'jour' && r.attributs.verdict === 'jour'
&& /trop tot pour la prevision de la nuit/.test(r.attributs.texte_rapport)
&& /de 18 h a 09 h sans EDF \(environ 17,87 kWh\), il faudrait la batterie a 82 % a 18 h/.test(r.attributs.texte_rapport)
&& /Si EDF s engage a 01:24, la maison y achetera environ 4,2 kWh jusqu a 07:24/.test(r.attributs.texte_rapport)
&& !/batterie suffit/.test(r.attributs.texte_rapport) && !/couvrir environ 0 kWh/.test(r.attributs.texte_rapport)],
['le jour, fenetre de deficit inconnue -> pas de repere invente', (() => {
const m = base(); for (const [k, v] of Object.entries({
'input_number.evcs_balance_energy_to_cover_kwh': '0', 'input_boolean.evcs_balance_grid_needed': 'off',
'input_boolean.victron_evcs_night_grid_session_committed': 'off', 'input_text.evcs_balance_next_deficit_window': 'déficit en cours',
})) m.set(k, { state: v }); return previsionNuit(m, t); })(),
(r) => r.etat === 'jour' && !/Repere provisoire/.test(r.attributs.texte_rapport)],
['plus jamais d attribut reseau_necessaire_kwh (lu comme un achat le 28/09)', previsionNuit(base(), t),
(r) => !('reseau_necessaire_kwh' in r.attributs) && 'import_prevu_kwh' in r.attributs],
['jamais d attribut qui ressemble a un SOC du matin (incident 21:16)', previsionNuit(base(), t),