diff --git a/docs/OPTIMIZER_PROTOCOL.md b/docs/OPTIMIZER_PROTOCOL.md index 3f07148..d299078 100644 --- a/docs/OPTIMIZER_PROTOCOL.md +++ b/docs/OPTIMIZER_PROTOCOL.md @@ -10,6 +10,24 @@ Ce document fait autorité. Il sert trois usages : Statut : **draft v1** — figé à la fin de la beta. Versionné en semver (`protocolVersion`). +> ### ⚠️ Ce document ne décrit PAS la frontière JSON-RPC de l'app +> +> Le protocole ci-dessous relie le **moteur** à un **optimiseur** (couche A ↔ couche B), sur +> un socket dédié, en NDJSON. Il ne dit rien du namespace que consomme l'application +> Flutter, et n'a jamais eu vocation à le dire. +> +> **La frontière app ↔ box, c'est `NymeaEnergy.*`**, documentée dans `INTERFACE.md` et faisant +> autorité via `energyplugin/nymeaenergyjsonhandler.cpp` + `JSONRPC.Introspect` sur une box. +> +> Cette note existe parce que l'erreur a coûté une session : un brief a envoyé l'agent app +> chercher ici le namespace `LoadConfig`, qui n'y est pas et n'y sera pas. Les deux +> protocoles portent tous deux du JSON-RPC — c'est tout ce qu'ils ont en commun. +> +> | | transport | qui parle à qui | contrat | +> |---|---|---|---| +> | **Ce document** | socket NDJSON dédié | moteur ↔ optimiseur | `GetPlan(SurplusContext)` → plan par créneaux | +> | `INTERFACE.md` | WebSocket nymea, port 4444 | app ↔ box | `NymeaEnergy.*` — 20 méthodes, 14 notifications | + --- ## 1. Philosophie