[3e-étape] ÉTAT : 3e FAITE (suite 19/19) + récap capacités moteur + liste différé
Point d'étape : EV proxy + ECS + SG-Ready sur budget unifié trié par priorité, protection compresseur, watchdog L2/mode dégradé. Différé : Waveshare (session dédiée Modbus), 3d/3f/3g, config priorités API+UI, arm64 CI, test terrain vendredi. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
d8079e84e0
commit
e641f289db
35
AGENTS.md
35
AGENTS.md
@ -18,7 +18,7 @@ vers un gestionnaire d'énergie complet (EV, ECS, PAC SG-Ready, batterie).
|
||||
| 3a — structs protocole + interfaces | ✅ FAITE | `4ae1939` |
|
||||
| 3b — EnergyArbitrator + scheduler + adapter | ✅ FAITE — iso-fonctionnalité prouvée | `5f49e4c`, `d8ebd65`, `[3b-iv]` |
|
||||
| 3c — EcsRelayAdapter + waterfall ECS | ✅ FAITE — suite 18/18 + charging 46/46 | `6298d5d`→`54ba229` |
|
||||
| 3e — SgReadyAdapter | ⏳ À VENIR (plan en discussion) | — |
|
||||
| 3e — SgReadyAdapter | ✅ FAITE — suite 19/19 | `83d5ad9`→`d8079e8` |
|
||||
|
||||
**Détail 3b** :
|
||||
- `EnergyArbitrator : public SmartChargingManager` — justification dans `## DÉCISIONS DE DESIGN`
|
||||
@ -50,9 +50,36 @@ vers un gestionnaire d'énergie complet (EV, ECS, PAC SG-Ready, batterie).
|
||||
- **arm64 cross : NON vérifié dans le sandbox dev** (pas de toolchain/Qt6-aarch64/docker)
|
||||
→ relève de l'infra de build CI (`etm-powersync-deploy`). À confirmer là-bas.
|
||||
|
||||
**PROCHAINE ACTION** : 3e — `SgReadyAdapter` (plan en discussion, validation avant code).
|
||||
Puis plugin device Waveshare D8 (séparé, sous l'adaptateur). 3d (SocketScheduler) et
|
||||
3f (BatteryAdapter) restent planifiés.
|
||||
**3e CLÔTURÉE** (commits `83d5ad9` types → `d8079e8` testSgReadySurplus) :
|
||||
- `SgReadyAdapter` : 4 états normés (kind:State), encodage 2 bits, `lockWindow` symétrique
|
||||
(`minStateHold`, protection court-cycling PAC), **atomicité de transition** (`transientHarm` :
|
||||
passe par le neutre/reco, jamais par blocage/forcé — contrat transport déporté).
|
||||
- Scheduler : **mapping sémantique** (≥P4×1,2→forcé, hystérésis 1,2/1,0 ; ≥P3→reco ; sinon
|
||||
normal ; état 1 jamais via surplus) + **waterfall UNIFIÉ** ECS+SG-Ready (un seul budget,
|
||||
trié par priorité). Mode dégradé L2 → état 2 (mains off, jamais blocage ; SAFETY.md corrigé).
|
||||
- Tests : `testSgReadySurplus` (montée · hystérésis · court-cycling · **budget partagé ECS↔PAC
|
||||
avec inversion de priorité**). Suite simulation **19/19**, plugin prod 0/0.
|
||||
- **DoD 3e** : amd64 0/0 ✓ · simulation 19/19 ✓ · `decisionReason` français (forcé/reco/normal/
|
||||
verrou) ✓ · arm64 → CI (idem 3c).
|
||||
|
||||
### Ce que le moteur sait faire aujourd'hui
|
||||
- **Arbitrage central unique** : un budget de surplus net signé, cascade par **priorité** (rang).
|
||||
- **Charges** : EV (proxy amont, décision B), **ECS** (paliers, `Stage`), **SG-Ready PAC**
|
||||
(4 états, `State`) — ECS+PAC classables ensemble sur le budget partagé.
|
||||
- **Sécurité** : protection compresseur (verrous lock-aware `minStage/maxState`, seam de temps
|
||||
unifié) ; watchdog L2 (compteur muet >90 s → mode dégradé conservateur, planif suspendue,
|
||||
reprise par recalcul) ; `verifyOverloadProtection()` amont intacte ; `degradedMode` notifié.
|
||||
- **Local-first** : zéro cloud (invariant 10).
|
||||
|
||||
### DÉFÉRÉ (ordre indicatif)
|
||||
- **Waveshare D8** : plugin DEVICE (8 powerswitch) sous l'adaptateur — **session dédiée**
|
||||
(nouveau chantier transport Modbus).
|
||||
- **3d** SocketScheduler (handshake/heartbeat/repli optimiseur).
|
||||
- **3f** BatteryAdapter (constraints + charge réseau plafonnée) + waterfall grid-funding.
|
||||
- **3g** transplantation EV dans le waterfall unifié → toutes charges classables ensemble.
|
||||
- **Couche config priorités** (API JSON-RPC + UI Flutter drag-and-drop) — cf. `## ROADMAP`.
|
||||
- **arm64** cross-compile (pré-déploiement, infra CI) + **test terrain vendredi** (Palier 1,
|
||||
things génériques sur `nymea-dev` arm64).
|
||||
|
||||
**Remotes git** :
|
||||
- `origin` (`https://git.etm-powersync.fr/...`) = remote de travail — push normal
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user