diff --git a/docs/DESIGN_HC_BATTERIE.md b/docs/DESIGN_HC_BATTERIE.md index 4558647..de9aaf9 100644 --- a/docs/DESIGN_HC_BATTERIE.md +++ b/docs/DESIGN_HC_BATTERIE.md @@ -55,8 +55,11 @@ mot : l'invariant 2 tient sans rien ajouter. force la charge à pleine puissance au point de non-retour. Ce point est calculé sur l'échéance, pas sur la fin des heures creuses : une échéance trop proche peut donc encore se servir en heures pleines. Une échéance est une promesse de l'utilisateur, le tarif ne la rompt pas. Étaler -la charge sur les heures creuses demanderait une énergie restante mesurée (LM-1009) : c'est une -proposition, pas ce lot. +la charge sur les heures creuses demanderait une énergie restante mesurée (LM-1009) : ce sera un +lot à part (§8, D3). + +Le refus d'`EV_GRID_START` hors heures creuses est confirmé (§8, D2) : seul le mode boost +(`ChargingModeNormal`) charge tout de suite. **À 06:00**, le minimum est retiré : une borne qui charge encore s'arrête (au premier cycle où son verrou d'enclenchement le permet, 300 s par défaut). @@ -97,8 +100,8 @@ chaque état intermédiaire sûr : pour qu'une limite réactivée plus tard ne reparte pas à 0 %. `FroniusRules::planBatteryMode(NO_DISCHARGE)` écrirait les deux registres en une séquence, mais -aucune action du plugin ne l'emprunte. L'exposer serait plus propre (§7) ; ce n'est pas -nécessaire pour ce lot. +aucune action du plugin ne l'emprunte. L'exposer est décidé, dans le dépôt du plugin (§8, D6) ; +le garde reste compatible avec les deux actions actuelles. ### 3.2 Quand @@ -113,7 +116,8 @@ tire plus (fin de charge) ou à 06:00. Ce que le blocage bloque : **toute** décharge, maison comprise. « Ne pas se décharger dans la voiture » ne s'exprime pas autrement sans asservir `OutWRte` à la consommation de la maison — -une boucle de régulation que le lot ne fait pas. +une boucle de régulation que le lot ne fait pas. C'est le geste voulu (§8, D1), comme le +blocage par une borne en mode boost (D4) et le seuil de 230 W (D5). ### 3.3 Pilotable, ou non @@ -254,8 +258,25 @@ modélisé dans le test (`limiteTenue()`), jamais dans le moteur ni dans le mock ## 7. Ce que ce lot ne fait pas - La recharge de la batterie sur le réseau ; toute optimisation par le prix (offre Pro). -- L'étalement d'une échéance sur les heures creuses (§2). +- L'étalement d'une échéance sur les heures creuses (§2) — lot à part (§8, D3). - Une action atomique « limite de décharge » dans le plugin (`planBatteryMode(NO_DISCHARGE)` - existe et n'est pas exposée), et un état au nom moins trompeur que `enableDischarging` — à - proposer au dépôt du plugin. + existe et n'est pas exposée), et un état au nom moins trompeur que `enableDischarging` — + décidés, faits dans le dépôt du plugin (§8, D6). - La batterie comme charge rangée du waterfall (lot 3f, `spec_loadmodel.md` §14). + +## 8. Décisions de Patrick (2026-10-24) + +Les questions ouvertes du lot e1 sont tranchées. Chacune confirme le comportement décrit plus haut : +aucune ne change le code. + +| # | Question | Décision du 2026-10-24 | +|---|---|---| +| D1 | Bloquer **toute** la décharge, maison comprise, pendant la charge de la voiture en heures creuses (§3.2) ? | **Oui.** C'est le geste voulu ; aucune régulation de `OutWRte` sur la consommation de la maison. | +| D2 | Refuser `EV_GRID_START` hors heures creuses pour les trois modes concernés (§2) ? | **Confirmé.** En mode Éco, la borne attend les heures creuses ; seul le mode boost (`ChargingModeNormal`, piloté par l'utilisateur) charge tout de suite. | +| D3 | Étaler une échéance sur les heures creuses (§2) ? | **Plus tard, lot à part.** Il demande une énergie restante mesurée (LM-1009). | +| D4 | Une borne en `ChargingModeNormal` qui charge en heures creuses déclenche-t-elle le blocage (§3.2) ? | **Oui, c'est le but** : la mesure porte sur toutes les bornes, mode compris. | +| D5 | Seuil de « la voiture charge réellement » : 230 W sur la somme des bornes (§3.2) ? | **Accepté.** | +| 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`). | + +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.