Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XPUo3RMr8SzK6qbFtfBm8H
4.4 KiB
RECAP — reprise de session, 3g-1
Arrêt : 2026-08-26, contexte saturé. Branche : feature/beta-rulebased.
Dernier commit : 1478d8f — feat(3g-1) : les bornes entrent dans le waterfall.
1. État exact à la reprise
| Code 3g-1 | complet, compile 0 erreur / 0 warning, tests/auto/loadmodel 15/15 |
Paquet 1.15.2+etm21 |
construit et sorti du conteneur, dans etm-powersync-deploy/ |
Déployé sur .75 |
NON — le banc tourne encore 1.15.2+etm20 |
| Critère LM-1204-b | NON exercé — c'est la première chose à faire |
Reprendre exactement ici :
# Le paquet est DÉJÀ sorti du conteneur — il est ici, prêt :
cd ~/projects/etm-powersync/etm-powersync-deploy
./deploy.sh --dry-run powersync-energy-plugin-nymea_1.15.2+etm21_arm64.deb # puis sans --dry-run
# puis : exercer LM-1204-b (specs/spec_loadmodel.md)
Si le fichier a disparu, le reconstruire n'est pas nécessaire — il est encore dans le
conteneur : lxc exec build-cross-arm64 -- cat /root/powersync-energy-plugin-nymea_1.15.2+etm21_arm64.deb > <cible>.
2. Ce que 3g-1 contient
Les bornes entrent dans le waterfall. Elles partagent le budget, décrémentent la cascade, et portent un rang qui a enfin un sens.
Le défaut corrigé n'était pas théorique : planSurplusCharging() calculait l'allocation une
fois avant la boucle et ne la décrémentait jamais — chaque borne recevait la totalité du
surplus. Le rattrapage venait du compteur au cycle suivant, pas de l'arbitrage.
Trois motifs EV supprimés (pas remplacés) : EV_SURPLUS → SURPLUS_SETPOINT, EV_ECO_MIN
→ le plancher du §12, EV_IDLE → BELOW_MIN_POWER / SURPLUS_INSUFFICIENT.
Restent au proxy, délibérément : échéance de départ, spot market, protection de surcharge,
estimation de SoC. evReservedW est restreint au financement réseau, pas supprimé.
3. À vérifier en priorité au redéploiement
3g-1 touche le chemin EV en production sur un banc avec une Terra AC réelle. Rien de tout ceci n'a encore tourné une seule fois.
- LM-1204-b — surplus ≈ 4 kW, deux bornes à ≈ 1,4 kW de plancher. Attendu : la première
servie à fond, la seconde à 0 si le reliquat est sous son plancher. Discriminant : le
motif publié —
BELOW_MIN_POWERprouve que l'arbitre a refusé ; une borne à 0 W sans motif de plancher prouve que c'est le matériel, donc que le test ne prouve rien. - Inversion de rang entre les deux bornes → la charge servie doit changer.
loads[]contient-il les bornes, et la somme desallocatedWretombe-t-elle surbudget.allocatedW? (Ce n'était pas vrai avant 3g-1 — c'est le changement de contrat.)- Le nombre de phases : vérifier que le plancher publié correspond au nombre visé. C'est le piège le plus silencieux du lot.
- Aucune double commande : une borne servie par l'échéance ne doit pas recevoir en plus
une allocation de surplus (
gridFundedEvs).
4. Ce qui reste ouvert
- §12 /
BELOW_MIN_POWERsur le banc : ✅ observé le 2026-08-26 —chauffe-eau 0 W {budgetW: 249, minPowerW: 500}et le budget a cascadé vers la PAC. BATTERY_RESERVE: observé, et corrigé à cette occasion — il était publié avecwithheldW: 0sur un surplus négatif. Conditionné àwithheldW > 0depuis. La correction n'a pas été revérifiée sur machine.- Bascule
batteryLevelConsideration0,4 / 0,9 : jamais faite avec une batterie visible. Elle est possible depuisnymea-plugin-sunspec-etm01 1.15.2+etm11, qui déclare enfinenergystorage. Le banc est resté à 0,9. À faire dans les deux sens, journaux à l'appui. - §10 éco/confort : ne part pas sans l'extension du délestage au waterfall (précondition
écrite,
specs/spec_loadmodel.md§10). - Brief ouvert chez le plugin SunSpec :
etm-powersync-plugins-modbus,BRIEF_sunspec_energystorage.md— la partieenergystorageest faite ; la question §5 (l'onduleur ne publie aucun cumul, ce qui gèletotalProduction) reste ouverte.
5. Documents à lire à la reprise, dans cet ordre
docs/DESIGN_3g.md— ce qui se transporte et les trois choses qui ne se transportent pas.specs/spec_loadmodel.md§12 (plancher), LM-1203-b (réserve annulée), LM-1204-b (critère).docs/RELEVE_LOTD.md— la méthode de relevé attendue : machine / test / lecture, distingués.