La cible du matin devient une energie a couvrir, plus un palier
La regle classait le lendemain en trois paliers a partir de son TOTAL (>= 18 kWh -> 35 %, >= 10 -> 55 %, sinon 85 %) et ignorait donc l heure d arrivee de l energie. Le 03/09 demain annoncait 33,9 kWh — donc "fort", donc 35 % — avec un matin creux (0,03 kWh a 7 h, 0,77 a 8 h) et un croisement a 9 h. Meme defaut que le plancher du soir, a l autre bout de la nuit. Releve de la nuit 02-03/09, requis contre reel : 00:30 62,4 / 53 ; 03:00 50,4 / 45 ; 04:30 41,7 / 37 ; 06:00 37,1 / 22 — cible fixe a 35 tout du long. Le required_soc decroit proprement avec la nuit qui se consomme (6,1 -> 0 kWh a couvrir), la batterie est restee sous la ligne toute la nuit, et le bilan le savait des 00:30. A 03:00 EDF a ete relache cinq points sous la ligne ; le reseau est revenu de 07:24 a 10:33 au plein tarif, 1,49 kWh. La cible vaut desormais min(90, max(palier ou advisor, required_soc)). Sens unique delibere : la direction corrigee est celle de l echec observe, et le principe unificateur des deux cablages est que le bilan ne pousse jamais dans le sens "couvre moins bien la nuit". Plafond 90 parce qu au-dela la batterie cesse d etre un puits et evince la production du matin, et parce que le bilan publie sans ecretage des valeurs superieures a 100 — sans ce plafond la cible serait inatteignable et EDF resterait allume toute la nuit. C est deja la borne du chemin advisor, aucune constante nouvelle. Pas d oscillateur : required_soc decroit de facon monotone pendant la nuit et la passe unique de recovery reste en place. Gardes et repli identiques au plancher du soir, kill-switch existant. Golden 70 -> 75. Quatre mutations font tomber chacune exactement un scenario different. Un cinquieme scenario fige une LIMITE CONNUE, mesuree par sonde : la passe unique de recovery latche le relachement pour toute la session, donc la cible dynamique n ameliore que la premiere passe. §26 avait deja designe le bon critere de re-engagement — un budget d energie restant a couvrir, qui appartient au bilan ; la suite touche la machine a etats de la nuit et fera l objet d un chantier propre. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KKzkkVTG6KXnGXFFC7X9XJ
This commit is contained in:
102
HANDOFF.md
102
HANDOFF.md
@@ -2821,3 +2821,105 @@ pas, et c'est tout l'interet.
|
||||
|
||||
---
|
||||
*Document mis a jour le : 03/09/2026 (~22:25) — plancher du soir issu du bilan energetique, golden 70/70, deploye*
|
||||
|
||||
## 39. Session du 03/09/2026 (suite) — La cible du matin devient une energie
|
||||
|
||||
### Le defaut, symetrique de la §38
|
||||
La regle historique classe le lendemain en trois paliers a partir de son TOTAL :
|
||||
`>= 18 kWh -> 35 %`, `>= 10 -> 55 %`, sinon 85 %. Elle est donc aveugle a
|
||||
**l'heure d'arrivee** de l'energie. Le 03/09, demain annoncait 33,9 kWh — donc
|
||||
« fort », donc 35 % — mais avec un matin creux (0,03 kWh a 7 h, 0,77 a 8 h,
|
||||
1,81 a 9 h) et un croisement a 9 h. C'est le meme defaut que le plancher du soir
|
||||
de la §38, a l'autre bout de la nuit.
|
||||
|
||||
### Le releve qui a motive le cablage (nuit 02-03/09)
|
||||
| heure | requis (bilan) | SOC reel | cible fixe |
|
||||
|---|---:|---:|---:|
|
||||
| 00:30 | 62,4 | 53 | 35 |
|
||||
| 03:00 | **50,4** | **45** | 35 |
|
||||
| 04:30 | 41,7 | 37 | 35 |
|
||||
| 06:00 | 37,1 | 22 | 35 |
|
||||
|
||||
`required_soc` decroit proprement avec la nuit qui se consomme (6,1 -> 0 kWh a
|
||||
couvrir) : c'est une cible instantanee, pas une constante deguisee. **La
|
||||
batterie est restee sous la ligne toute la nuit, et le bilan le savait des
|
||||
00:30.** A 03:00 EDF a ete relache cinq points sous la ligne ; la batterie est
|
||||
tombee a 20 % vers 06:30 et le reseau est revenu de 07:24 a 10:33 —
|
||||
**1,49 kWh AU PLEIN TARIF**.
|
||||
|
||||
### Le correctif (deploye 03/09 22:50, golden 75/75)
|
||||
Dans `WINDOWS_SOURCEV2.js` :
|
||||
|
||||
```js
|
||||
batteryMorningTargetPct = balanceApplique
|
||||
? Math.min(90, Math.max(batteryMorningTargetBasePct, params.balanceRequiredSocPct))
|
||||
: batteryMorningTargetBasePct;
|
||||
```
|
||||
|
||||
`batteryMorningTargetBasePct` = advisor si son toggle est actif, sinon les
|
||||
paliers. L'ordre est donc : paliers ou advisor d'abord, puis le bilan ne peut
|
||||
que RELEVER.
|
||||
|
||||
**SENS UNIQUE**, comme en §38 : la direction corrigee est celle de l'echec
|
||||
observe — cible trop basse, batterie a plat avant le croisement, reseau au
|
||||
plein tarif le matin. L'abaisser ouvrirait un risque neuf que rien n'a valide.
|
||||
Principe unificateur des deux cablages : **le bilan ne pousse jamais dans le
|
||||
sens « couvre moins bien la nuit »**.
|
||||
|
||||
**PLAFOND 90 %** : au-dela la batterie cesse d'etre un puits et la production du
|
||||
matin se fait evincer (mesures du 31/08). Charger au reseau au-dela de 90
|
||||
echangerait un kWh bon marche cette nuit contre plusieurs kWh censures demain.
|
||||
C'est deja la borne du chemin advisor : aucune constante nouvelle. Le bilan
|
||||
publie sans ecretage des valeurs > 100 (voulu, §26 : signal de dimensionnement),
|
||||
donc ce plafond n'est pas cosmetique — sans lui la cible serait inatteignable
|
||||
et EDF resterait allume toute la nuit.
|
||||
|
||||
**PAS D'OSCILLATEUR** : `required_soc` decroit de facon monotone pendant la nuit,
|
||||
et la passe unique de recovery (§26) reste en place.
|
||||
|
||||
**Gardes et repli** identiques a la §38 (fraicheur 30 min, statut `ok`, valeur
|
||||
finie ; kill-switch `evcs_balance_enabled` deja existant). Trace logbook :
|
||||
`Nuit EVCS: target=X% (BILAN)`.
|
||||
|
||||
### Golden 70 → 75
|
||||
| scenario | attendu |
|
||||
|---|---|
|
||||
| `cible-bilan-tient-le-reseau` (releve 03:00, SOC 45, requis 50,4) | reseau MAINTENU |
|
||||
| `cible-bilan-perime-relache-comme-avant` (bilan vieux de 2 h) | relache — le comportement qui a coute 1,49 kWh |
|
||||
| `cible-bilan-ne-baisse-pas-la-cible` (SOC 30, requis 25) | palier 35 maitre, reseau maintenu |
|
||||
| `cible-bilan-plafonnee-a-90` (SOC 92, requis 118,9) | plafonnee, relache |
|
||||
|
||||
Mutation, quatre directions (bilan ignore / `Math.max` en affectation directe /
|
||||
plafond 90 supprime / garde de fraicheur supprimee) : **chacune fait tomber
|
||||
exactement UN scenario, different a chaque fois**.
|
||||
|
||||
### ⚠️ LIMITE CONNUE, MESUREE ET FIGEE — la passe unique
|
||||
Scenario `cible-bilan-limite-passe-unique`, verifie par sonde : recovery deja
|
||||
latchee, SOC 30 repassant sous un requis de 37,1 % => **le reseau reste
|
||||
relache**, et la raison affiche meme « batterie a la cible » sept points sous
|
||||
la ligne. La passe unique de recovery (§26, anti-oscillateur) latche
|
||||
`nightRecoveryDone` pour toute la session : la cible dynamique n'ameliore donc
|
||||
que la PREMIERE passe.
|
||||
|
||||
Filet restant : l'hysteresis a SOC ≤ 20 %, mais elle peut tomber HORS heures
|
||||
creuses — c'est exactement le 1,49 kWh plein tarif du 03/09.
|
||||
|
||||
Ce comportement est epingle par un scenario pour qu'un changement futur soit
|
||||
delibere. **§26 avait deja designe le bon critere de re-engagement** : « un
|
||||
budget d'energie restant a couvrir — il appartient au bilan energetique, pas a
|
||||
une constante de plus ici ». Le bilan est desormais cable ; la suite naturelle
|
||||
est une **session reseau unique et dimensionnee** — ne pas relacher tant qu'on
|
||||
est sous la ligne ET dans la fenetre HC. C'est un chantier a part : il touche la
|
||||
machine a etats de la nuit (§18/§19/§26), qui a deja produit quatre
|
||||
oscillateurs, et merite ses propres scenarios.
|
||||
|
||||
### Etat du cablage du bilan
|
||||
| consommateur | statut |
|
||||
|---|---|
|
||||
| plancher de demarrage du soir | ✅ §38 |
|
||||
| cible du matin | ✅ §39 |
|
||||
| re-engagement du reseau la nuit | ❌ passe unique (ci-dessus) |
|
||||
| hysteresis `grid_soc_on`/`grid_soc_off` (20/30) | ❌ toujours des niveaux fixes (§11.8.A) |
|
||||
|
||||
---
|
||||
*Document mis a jour le : 03/09/2026 (~22:55) — cible du matin issue du bilan energetique, golden 75/75, deploye*
|
||||
|
||||
Reference in New Issue
Block a user