2026-05-31 09:12:20 +02:00

1.8 KiB

CLAUDE.md — etm-powersync-energy-plugin-etm

Rôle

Energy manager nymea : rule-based surplus (Community) + load-management + connecteur vers l'optimiseur (Auto/Predict).

Source de vérité

etm-powersync-docs / ARCHITECTURE.md.

Structure (héritée de l'amont)

EnergyPluginNymea est une coquille (IID "io.nymea.EnergyPlugin", un init()). La logique vit dans des managers instanciés dans init() : SmartChargingManager, spotmarket/, RootMeter, EvCharger, nymeaenergyjsonhandler (API JSON-RPC).

Frontière de licence (impérative)

GPL-3. Ne jamais coder ici : MPC, prévision, Perez, masque d'ombrage, arbitrage. Ça appartient à etm-powersync-optimizer.

Travail attendu

  • Community : ajuster le rule-based existant (surplus, hystérésis, priorités). Pas de réécriture from scratch — l'amont fournit la base.
  • OptimizerManager (nouveau manager, à côté des autres) : collecte l'état (RootMeter + things) → POST /optimize → applique les setpoints via le chemin de contrôle existant (EvCharger). Transport pur, zéro maths.
  • Précédence : optimiseur sain + planning frais → il pilote ; sinon → rule-based local. Le plugin fonctionne toujours seul.

Règle de sécurité (non négociable)

Le load-management est prioritaire absolu : toute consigne (y compris de l'optimiseur) qui ferait dépasser ISOUSC est écrêtée localement après réception. C'est une contrainte appliquée par le plugin, pas une suggestion envoyée à l'optimiseur.

Contrat

OptimizerManager implémente interfaces/optimize.md.