Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XPUo3RMr8SzK6qbFtfBm8H
90 lines
4.4 KiB
Markdown
90 lines
4.4 KiB
Markdown
# 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** :
|
|
|
|
```bash
|
|
# 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.
|
|
|
|
1. **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_POWER` prouve 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.
|
|
2. **Inversion de rang** entre les deux bornes → la charge servie doit changer.
|
|
3. **`loads[]` contient-il les bornes**, et la somme des `allocatedW` retombe-t-elle sur
|
|
`budget.allocatedW` ? (Ce n'était pas vrai avant 3g-1 — c'est le changement de contrat.)
|
|
4. **Le nombre de phases** : vérifier que le plancher publié correspond au nombre **visé**.
|
|
C'est le piège le plus silencieux du lot.
|
|
5. **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_POWER` sur 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é avec
|
|
`withheldW: 0` sur un surplus négatif. Conditionné à `withheldW > 0` depuis. **La correction
|
|
n'a pas été revérifiée sur machine.**
|
|
- **Bascule `batteryLevelConsideration` 0,4 / 0,9** : jamais faite avec une batterie visible.
|
|
Elle est possible depuis `nymea-plugin-sunspec-etm01 1.15.2+etm11`, qui déclare enfin
|
|
`energystorage`. **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 partie `energystorage` est faite ; la **question §5**
|
|
(l'onduleur ne publie aucun cumul, ce qui gèle `totalProduction`) reste ouverte.
|
|
|
|
---
|
|
|
|
## 5. Documents à lire à la reprise, dans cet ordre
|
|
|
|
1. `docs/DESIGN_3g.md` — ce qui se transporte et les trois choses qui ne se transportent pas.
|
|
2. `specs/spec_loadmodel.md` §12 (plancher), LM-1203-b (réserve annulée), LM-1204-b (critère).
|
|
3. `docs/RELEVE_LOTD.md` — la méthode de relevé attendue : machine / test / lecture, distingués.
|