Brief 3 T2. Nouvelle table dans energy-forecast.sqlite, clé (targetAt, siteId, planId) : le pas écoulé est un fait clos, jamais réécrit (ON CONFLICT DO NOTHING, pas INSERT OR IGNORE qui avalerait un NOT NULL). Les révisions restent dans forecastPv ; la table y renvoie par la clé de contenu du §20 (révision en vigueur à J−1 18:00 locale et à H−1). gti/tempC et paramètres v2 NULL en v1, jamais 0. Production moyenne depuis les échantillons d'une minute du bilan, NULL sous 90 % de couverture ou sans producteur. Écrêtage détecté seulement contre le plafond AC déclaré ; neige = chute lue sur le site. Écriture sur un fil dédié ; rétention 400 jours ; table abîmée refaite ou mise de côté, le service continue. Tests loadmodel : 5 fonctions, 13 contre-épreuves vérifiées échouant. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
84 lines
3.2 KiB
Plaintext
84 lines
3.2 KiB
Plaintext
# Rend les headers du répertoire energyplugin/ accessibles aux consommateurs
|
|
# (simulation, tests) qui incluent ce .pri depuis un autre répertoire.
|
|
INCLUDEPATH += $$PWD
|
|
|
|
# [ETM] Activate ETM arbitrator — replaces SmartChargingManager::update() with EnergyArbitrator.
|
|
# Propagé à tous les consommateurs du .pri (plugin + simulation + tests).
|
|
# Uncommenter pour activer. Commité DÉSACTIVÉ jusqu'à preuve iso (3b-iv).
|
|
DEFINES += ETM_ARBITRATOR
|
|
|
|
# [ETM] Fournisseur spot aWATTar — HORS DU BUILD LIVRÉ (invariant 10 : aucun flux sortant).
|
|
# C'était le seul appel réseau du moteur : une requête HTTPS vers api.awattar.{at,de}. La
|
|
# source reste dans l'arbre pour la synchronisation amont ; elle n'est compilée qu'avec
|
|
# `qmake CONFIG+=etm_spotmarket`. Sans l'option : aucun fournisseur enregistré, aucun
|
|
# QNetworkAccessManager construit, et l'activation par RPC est refusée avec un code
|
|
# (SPOT_MARKET_NOT_IN_BUILD). Le gestionnaire et ses fonctions de calcul restent compilés :
|
|
# SmartChargingManager (amont) en dépend, et les suites de test y injectent un fournisseur mock.
|
|
etm_spotmarket {
|
|
message("Fournisseur spot aWATTar COMPILÉ (CONFIG+=etm_spotmarket) — flux sortant actif")
|
|
DEFINES += ETM_SPOTMARKET
|
|
HEADERS += $$PWD/spotmarket/spotmarketdataproviderawattar.h
|
|
SOURCES += $$PWD/spotmarket/spotmarketdataproviderawattar.cpp
|
|
}
|
|
|
|
greaterThan(QT_MAJOR_VERSION, 5) {
|
|
message("Building using Qt6 support")
|
|
CONFIG *= c++17
|
|
QMAKE_LFLAGS *= -std=c++17
|
|
QMAKE_CXXFLAGS *= -std=c++17
|
|
} else {
|
|
message("Building using Qt5 support")
|
|
CONFIG *= c++11
|
|
QMAKE_LFLAGS *= -std=c++11
|
|
QMAKE_CXXFLAGS *= -std=c++11
|
|
DEFINES += QT_DISABLE_DEPRECATED_UP_TO=0x050F00
|
|
}
|
|
|
|
coverage {
|
|
message(Building with code coverage enabled)
|
|
# --coverage option contains: -fprofile-arcs -ftest-coverage -lgcov
|
|
QMAKE_CXXFLAGS *= --coverage
|
|
QMAKE_LDFLAGS *= --coverage
|
|
LIBS += -lgcov
|
|
}
|
|
|
|
HEADERS += \
|
|
$$PWD/energymanagerconfiguration.h \
|
|
$$PWD/energysettings.h \
|
|
$$PWD/evcharger.h \
|
|
$$PWD/nymeaenergyjsonhandler.h \
|
|
$$PWD/rootmeter.h \
|
|
$$PWD/smartchargingmanager.h \
|
|
$$PWD/etm/forecast/forecaststore.h \
|
|
$$PWD/etm/forecast/forecastlearninglog.h \
|
|
$$PWD/spotmarket/spotmarketdataprovider.h \
|
|
$$PWD/spotmarket/spotmarketmanager.h \
|
|
$$PWD/types/chargingaction.h \
|
|
$$PWD/types/charginginfo.h \
|
|
$$PWD/types/chargingprocessinfo.h \
|
|
$$PWD/types/chargingschedule.h \
|
|
$$PWD/types/scoreentry.h \
|
|
$$PWD/types/smartchargingstate.h \
|
|
$$PWD/types/timeframe.h \
|
|
|
|
include($$PWD/etm/etm.pri)
|
|
|
|
SOURCES += \
|
|
$$PWD/energymanagerconfiguration.cpp \
|
|
$$PWD/energysettings.cpp \
|
|
$$PWD/evcharger.cpp \
|
|
$$PWD/nymeaenergyjsonhandler.cpp \
|
|
$$PWD/rootmeter.cpp \
|
|
$$PWD/smartchargingmanager.cpp \
|
|
$$PWD/etm/forecast/forecaststore.cpp \
|
|
$$PWD/etm/forecast/forecastlearninglog.cpp \
|
|
$$PWD/spotmarket/spotmarketdataprovider.cpp \
|
|
$$PWD/spotmarket/spotmarketmanager.cpp \
|
|
$$PWD/types/chargingaction.cpp \
|
|
$$PWD/types/charginginfo.cpp \
|
|
$$PWD/types/chargingprocessinfo.cpp \
|
|
$$PWD/types/chargingschedule.cpp \
|
|
$$PWD/types/scoreentry.cpp \
|
|
$$PWD/types/smartchargingstate.cpp \
|
|
$$PWD/types/timeframe.cpp \
|