Restauration de l'ex-EcsRelayAdapter (b7bfd58) repositionné en ROUTEUR distinct, sous l'optimiseur watt-pur. ILoadAdapter consommant Setpoint(W) au lieu de Stage : - Paliers DÉRIVÉS : toutes les combinaisons (sommes de sous-ensembles) des relais, dédupliquées, triées, 0 inclus — source de vérité unique = les relais (descriptor().powerLevels/maxPowerW). - applyAction(Setpoint W) : mappe powerW → combinaison la plus haute ≤ powerW, applique les verrous minOn/minOff EN INTERNE (clamp, plus exposés au scheduler), commute via ThingManager::executeAction (interface "power"), off-before-on. force=true → bypass (repli L2). - currentPowerW : mesuré si relais expose "currentPower", sinon nominal commandé (GPIO bool nu). - LoadContext : watts uniquement (powerLevels/currentPowerW) — aucun relais ne franchit la frontière. Classe INERTE à ce commit (non câblée à l'arbitre) : aucune charge ne l'utilise, donc aucune charge sans repli L2. Câblage + repli L2 = étape 4 (atomiquement). Build prod 0/0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
26 lines
828 B
Plaintext
26 lines
828 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/adapters/relayrouter.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/adapters/relayrouter.cpp \
|
|
$$PWD/scheduler/rulebasedscheduler.cpp \
|
|
$$PWD/energyarbitrator.cpp \
|