Pont moteur↔app : déclaration des charges etmvariableload persistée et éditable, construction des adaptateurs à chaud depuis la config (remplace le registre en dur). - LoadConfig / LoadConfigNeeds (Q_GADGET typés, introspectables) — forme mot pour mot du LoadDescriptor §4 (jonction inter-repos avec l'app). - LoadConfigStore : persistance atomique /var/lib/nymea/energy-load-configuration.json, validation en bloc, signal changed(). - Handler NymeaEnergy.GetLoadConfig / SetLoadConfig (+ notif LoadConfigChanged). GET typé objectRef<LoadConfig> ; SET schéma inline o: (powerLevels/needs conditionnels §4). - EnergyArbitrator : setLoadConfigStore + rebuildEtmVariableLoadAdapters (enabled==true seulement, §9) ; repli L2 = setPowerSetpoint(0) force=true sur tout etmvariableload (ferme le trou sécurité ouvert en T2). - Tests simulation : migration ECS→etmvariableload (arrondi fixed/dynamic, recrédit, délestage, round-trip powerSetpoint), budget partagé etmvariableload↔PAC, watchdog L2 réactivé, persistance + construction depuis config + injection RPC end-to-end. PAC SG-Ready reste hors config (§8, gelée). Les 5 tâches du brief sont couvertes. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
24 lines
756 B
Plaintext
24 lines
756 B
Plaintext
HEADERS += \
|
|
$$PWD/types/loadaction.h \
|
|
$$PWD/types/loaddescriptor.h \
|
|
$$PWD/types/surpluscontext.h \
|
|
$$PWD/types/plan.h \
|
|
$$PWD/types/loadconfig.h \
|
|
$$PWD/config/loadconfigstore.h \
|
|
$$PWD/adapters/iloadadapter.h \
|
|
$$PWD/scheduler/ischeduler.h \
|
|
$$PWD/adapters/evadapter.h \
|
|
$$PWD/adapters/sgreadyadapter.h \
|
|
$$PWD/adapters/etmvariableloadadapter.h \
|
|
$$PWD/scheduler/rulebasedscheduler.h \
|
|
$$PWD/energyarbitrator.h \
|
|
|
|
SOURCES += \
|
|
$$PWD/types/loadconfig.cpp \
|
|
$$PWD/config/loadconfigstore.cpp \
|
|
$$PWD/adapters/evadapter.cpp \
|
|
$$PWD/adapters/sgreadyadapter.cpp \
|
|
$$PWD/adapters/etmvariableloadadapter.cpp \
|
|
$$PWD/scheduler/rulebasedscheduler.cpp \
|
|
$$PWD/energyarbitrator.cpp \
|