# RECAP — reprise de session, 3g-1 > **PÉRIMÉ deux fois.** Pour l'état du banc : `docs/RELEVE_3g1.md`. Pour ce qui a été fait des > défauts qu'il a révélés : `docs/RECAP_3g2.md`. Le paragraphe ci-dessous n'est conservé que > pour la trace. > > **PÉRIMÉ le 2026-08-26 au soir.** Le paquet a été déployé et le banc a parlé : > lire **`docs/RELEVE_3g1.md`**, qui remplace ce document. En un mot : la télémétrie ne > publiait pas les bornes (corrigé, `+etm22`), et surtout `adjustEvChargers()` commande > encore les bornes après le waterfall — **tant que ce n'est pas traité, la transplantation > ne commande rien**. **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 > `. --- ## 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.