docs : heures creuses et batterie — décision D9, la somme éco + confort tient dans le plafond

§8 : D9 (2026-10-25, suite) — l'écart 4 est corrigé pour la pleine
puissance d'heures creuses ; la dérogation sans heure creuse et les phases
étiquetées restent à leur lot ; le compteur en retard est accepté.
§8.1 : l'écart 4 renvoie à §8.3 ; ce qui reste de la dérogation y est dit.
§8.3 : la règle, les mesures avant/après, les preuves — dont la garde de
bascule de §8.2, désormais éprouvée.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Patrick Schurig 2026-10-25 09:41:52 +01:00
parent e28e6375fd
commit 5c2a8df6d6

View File

@ -282,6 +282,7 @@ aucune ne change le code.
| D6 | Plugin SunSpec : une action « limite de décharge » en une séquence (`planBatteryMode(NO_DISCHARGE)`), et `enableDischarging` renommé ou redécrit (§3.1, §7) ? | **Oui aux deux**, dans le dépôt du plugin, à la charge de l'orchestrateur. Le garde ne change pas : il reste compatible avec les deux actions actuelles (`dischargingRate` puis `enableDischarging`). | | D6 | Plugin SunSpec : une action « limite de décharge » en une séquence (`planBatteryMode(NO_DISCHARGE)`), et `enableDischarging` renommé ou redécrit (§3.1, §7) ? | **Oui aux deux**, dans le dépôt du plugin, à la charge de l'orchestrateur. Le garde ne change pas : il reste compatible avec les deux actions actuelles (`dischargingRate` puis `enableDischarging`). |
| D7 | À quelle puissance la borne charge-t-elle en heures creuses (lot e2) ? | **À la pleine puissance permise**, et non plus au plancher. La session finit plus tôt, et la décharge de la batterie n'est bloquée que pendant ce temps-là : ensuite, elle couvre la maison pour le reste de la nuit. Détail en §8.1. | | D7 | À quelle puissance la borne charge-t-elle en heures creuses (lot e2) ? | **À la pleine puissance permise**, et non plus au plancher. La session finit plus tôt, et la décharge de la batterie n'est bloquée que pendant ce temps-là : ensuite, elle couvre la maison pour le reste de la nuit. Détail en §8.1. |
| D8 | *(2026-10-25)* Près de la limite de phase, la consigne de la borne alterne à chaque cycle (16, 7, 16, 7 A sous 25 A). Corriger avant la vitrine ? | **Oui, maintenant.** En heures creuses, le plafond de la borne lui rend ce qu'elle tire, **mesuré**, moins 1 A par phase. Détail en §8.2. Le même jour : la borne **tenue au plancher** en surcharge (L4 décide de couper) est **confirmée** ; les écarts 3 et 4 de §8.1 sont reportés. | | D8 | *(2026-10-25)* Près de la limite de phase, la consigne de la borne alterne à chaque cycle (16, 7, 16, 7 A sous 25 A). Corriger avant la vitrine ? | **Oui, maintenant.** En heures creuses, le plafond de la borne lui rend ce qu'elle tire, **mesuré**, moins 1 A par phase. Détail en §8.2. Le même jour : la borne **tenue au plancher** en surcharge (L4 décide de couper) est **confirmée** ; les écarts 3 et 4 de §8.1 sont reportés. |
| D9 | *(2026-10-25, suite)* L'écart 4 n'est pas qu'un défaut de publication : à l'aube, le surplus s'ajoute au plafond, qui porte la limite de phase. Borner la somme avant la vitrine ? | **Oui, avant la vitrine.** La somme éco + confort ne dépasse jamais `declared.maxPowerW`, et l'achat publié ne dépasse pas ce qui est réellement acheté. Détail en §8.3. La dérogation sans heure creuse, les phases étiquetées : plus tard, chacune dans son lot. Le compteur en retard sur la borne est accepté tel quel. |
La mesure du minuteur de retour sur un vrai GEN24 (hypothèse AC-10 du plugin, §3.4) reste La mesure du minuteur de retour sur un vrai GEN24 (hypothèse AC-10 du plugin, §3.4) reste
ouverte : elle relève du plugin et d'un essai sur matériel réel. ouverte : elle relève du plugin et d'un essai sur matériel réel.
@ -334,14 +335,12 @@ décide de la couper, comme pour la dérogation. On n'est pas revenu au « rien
borne triphasée est encore comparé à la marge d'**une** phase de la maison (le double borne triphasée est encore comparé à la marge d'**une** phase de la maison (le double
écrêtage que `LM-1500-h` refuse ailleurs). L'étendre changerait des décisions sans tarif : écrêtage que `LM-1500-h` refuse ailleurs). L'étendre changerait des décisions sans tarif :
**lot à part**. **lot à part**.
- *Écart 4 — le partage achat/surplus en heures creuses.* À l'aube, le surplus s'ajoute au - *Écart 4 — le partage achat/surplus en heures creuses.* **Corrigé pour la pleine puissance
niveau éco : la consigne (`estimatedPowerW`) peut dépasser le plafond de cycle, par exemple d'heures creuses (D9, §8.3).** À l'aube, le surplus s'ajoutait au niveau éco : la consigne
3 680 + 2 000 W. L'adaptateur écrête au courant maximal de la borne, et le partage publié entre (`estimatedPowerW`) pouvait dépasser le plafond de cycle, et donc la limite de phase qu'il porte.
achat et surplus surestime l'achat. Le même cumul existe pour la dérogation. Ce cumul n'est La dérogation, elle, ne cumule pas (sa passe confort est sautée) ; son achat publié reste
pas borné par le plafond de phase déjà servi au niveau éco : constaté au lot D8 avec un entier quand le soleil la finance en partie — c'est la conséquence comptable déjà écrite dans
compteur qui ne voit pas la borne (le recrédit y fabrique du surplus), plafond 15 A, consigne le code, et elle reste à reprendre avec la dérogation.
16 A. Avec un vrai surplus, seul L4 rattraperait un dépassement. **À reprendre avec la
dérogation.**
- *L'oscillation près de la limite de phase* était le troisième point de cette liste. Elle est - *L'oscillation près de la limite de phase* était le troisième point de cette liste. Elle est
corrigée : §8.2. corrigée : §8.2.
@ -429,3 +428,47 @@ L4) ; `testOffPeakFullPowerStaysUnderTheLimitOnABlindMeter` (écrêtage à zéro
`testBlockedDischargeShowsAtTheMeterAndL4Decides`, la borne en dépassement finit à son plancher `testBlockedDischargeShowsAtTheMeterAndL4Decides`, la borne en dépassement finit à son plancher
(L4 la ramène de 16 à 13 A, la stratégie laisse 9 A, L4 la ramène à 6 A) au lieu d'être coupée : (L4 la ramène de 16 à 13 A, la stratégie laisse 9 A, L4 la ramène à 6 A) au lieu d'être coupée :
l'assertion attend désormais « plancher ou coupée ». l'assertion attend désormais « plancher ou coupée ».
### 8.3 D9 — la somme éco + confort tient dans le plafond (2026-10-25, suite)
**Le défaut (écart 4).** En heures creuses, le niveau éco d'une borne vaut son plafond de cycle
(`declared.maxPowerW`), qui porte la limite de phase. À l'aube, la passe confort lui ajoutait le
surplus, et seul le courant maximal de la borne écrêtait la somme. Mesuré en simulation : borne
monophasée sur A, limite 16 A, maison à 2 A sur A, phases B et C exportant 1 500 W chacune. Le
plafond vaut 13 A ; la consigne montait à 16 A, et la phase A à **18 A pour 16**. Le partage
publiait 2 990 W achetés quand le compteur n'en importait que 450.
**La règle.** Pour une borne servie à pleine puissance en heures creuses
(`EV_OFF_PEAK_FULL_POWER`) :
- la passe confort sert le surplus **dans** le plafond, et non par-dessus ;
- l'achat **cède** ce que le surplus finance : achat = plafond − part confort, jamais négatif.
La somme reste donc le plafond, et l'achat publié (`gridW`, `draw.committedW`, `counts`) est ce
qui reste à acheter ;
- la part confort n'a pas de plancher : le plancher porte sur la somme, qui vaut le plafond, donc
jamais moins que lui. Sans cela, un surplus sous le plancher serait refusé, ou démarré par
`EV_GRID_START` — un second achat en plus du premier.
Le motif suit la règle de la part majoritaire : à l'aube, quand le surplus finance plus de la
moitié du plafond, la décision publiée est celle du confort ; le niveau éco reste lisible dans
`levels`. La marge de soutirage du reste de la cascade est décomptée comme avant (prudence
inchangée). Hors heures creuses et sans tarif, rien ne change : la règle ne s'applique qu'aux
bornes qui portent `EV_OFF_PEAK_FULL_POWER`.
| Cas (simulation) | Avant | Après |
|---|---|---|
| Aube, 2 540 W de surplus | 16 A, phase A à 18 A ; 2 990 W achetés | 13 A, phase A à 15 A ; 450 W achetés, 2 540 W de surplus |
| Plein soleil, surplus > plafond | 16 A | 13 A ; 0 W acheté, 2 990 W de surplus |
| Nuit | 13 A ; 2 990 W achetés | inchangé |
| Compteur aveugle aussi au total | 13, 16, 16… A | 13, 15, 15… A |
Avec un compteur aveugle au total, le surplus est **fabriqué** par le recrédit : la consigne
tient le plafond, mais le partage publié, lui, ne peut pas être juste — le compteur ne dit pas ce
qui est acheté.
**Preuves.** `testOffPeakFullPowerAtDawnStaysInTheCeiling` (nuit, aube, plein soleil, quatre
cycles chacun : consigne et phase, somme, achat ≤ import du compteur) ;
`testOffPeakFullPowerStaysUnderTheLimitOnABlindMeter`, étendu au total aveugle. La garde de
bascule de §8.2 est désormais éprouvée : `testOffPeakFullPowerGivesNothingBackWhileSwitchingPhases`
(borne en monophasé à 10 A qui bascule en triphasé, maison à 12 A sur B, limite 25 A : 12 A, et B
à 24 A ; sans la garde, 15 A et B à 27 A).