OptimizerClient : QLocalSocket ou QTcpSocket, NDJSON, JSON-RPC 2.0, identifiants croissants sur toute la vie du client, une requête GetPlan en vol au plus (la plus récente remplace l'attente ; la réponse obsolète est reconnue par son id et ignorée). Handshake §3 : majeure comparée, capabilities mémorisé (présent ≠ absent), délai de 5 s compté depuis le début de la tentative ; reconnexion au backoff 1 → 60 s, remis à 1 s après un handshake accepté. GetPlan : 10 s, connexion conservée. Ligne non JSON, message sans id, id jamais émis, ligne de plus de 1 Mio : erreur comptée, connexion conservée. Horloge et réveil injectables (OptimizerClientClock, monotone) : aucune lecture de l'horloge murale. Token relu à chaque connexion dans settingsPath()/ energy-optimizer.token, jamais journalisé ; writeToken() pose le fichier par QSaveFile en 0600 (droits posés avant l'écriture du secret). Pas de RPC. Le client n'est instancié nulle part dans le moteur. Suite légère nymea-energy-optimizerclient : faux serveurs QLocalServer/QTcpServer, temps simulé, 37 cas ; 17 mutations du client, toutes mordent. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
41 lines
1.3 KiB
Plaintext
41 lines
1.3 KiB
Plaintext
HEADERS += \
|
|
$$PWD/types/loadaction.h \
|
|
$$PWD/types/decisionreason.h \
|
|
$$PWD/types/loaddescriptor.h \
|
|
$$PWD/types/surpluscontext.h \
|
|
$$PWD/types/plan.h \
|
|
$$PWD/types/drawcap.h \
|
|
$$PWD/types/ecoprogress.h \
|
|
$$PWD/types/ecotarget.h \
|
|
$$PWD/types/loadconfig.h \
|
|
$$PWD/tariff/tariffconfig.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/scheduler/optimizerclient.h \
|
|
$$PWD/ratios/energyratioscalculator.h \
|
|
$$PWD/energyarbitrator.h \
|
|
$$PWD/spotmarketbuild.h \
|
|
|
|
SOURCES += \
|
|
$$PWD/types/decisionreason.cpp \
|
|
$$PWD/types/drawcap.cpp \
|
|
$$PWD/types/ecotarget.cpp \
|
|
$$PWD/types/loadconfig.cpp \
|
|
$$PWD/tariff/tariffconfig.cpp \
|
|
$$PWD/config/loadconfigstore.cpp \
|
|
$$PWD/ratios/energyratioscalculator.cpp \
|
|
$$PWD/adapters/evadapter.cpp \
|
|
$$PWD/adapters/sgreadyadapter.cpp \
|
|
$$PWD/adapters/etmvariableloadadapter.cpp \
|
|
$$PWD/adapters/relayrouter.cpp \
|
|
$$PWD/scheduler/rulebasedscheduler.cpp \
|
|
$$PWD/scheduler/optimizerclient.cpp \
|
|
$$PWD/energyarbitrator.cpp \
|
|
$$PWD/spotmarketbuild.cpp \
|