Patrick Schurig
d8ebd65eba
[upstream-fix] maxChargingCurrent uint→double + INCLUDEPATH energyplugin.pri + flip ETM vers pri
...
- tests/mocks/plugins/energymocks/integrationpluginenergymocks.json : maxChargingCurrent
"type": "uint" → "type": "double" sur les 3 Thing classes (charger, chargerPhaseSwitching,
simpleCharger) — nymea 1.15 a changé le type de l'interface evcharger.
- energyplugin/energyplugin.pri : INCLUDEPATH += $$PWD — rend energyplugin/ accessible
aux consommateurs du .pri (simulation, tests) qui compilent les sources ETM.
- energyplugin/energyplugin.pro : le toggle ETM_ARBITRATOR déplacé dans energyplugin.pri
(unique point de contrôle propagé à plugin ET simulation).
- tests/auto/simulation/experience/energyexperienceenergymock.cpp : même flip que
energypluginnymea.cpp — instancie EnergyArbitrator si ETM_ARBITRATOR est défini.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 10:39:31 +02:00
Patrick Schurig
c3fedfe36b
[3b] décision B + modèle sécurité (AGENTS + SAFETY.md) + Doxygen proxy/inactif
...
- AGENTS.md : nouvelle entrée "3b révisé — délégation EV à l'amont" (beta hybride
assumée, ETM réel en 3c, transplantation EV en 3g) ; modèle sécurité L0-L4
avec double déclenchement verifyOverloadProtection documenté (signal ligne 127 +
appel cyclique ligne 313 SCM.cpp).
- docs/SAFETY.md : document normatif 5 couches + signalisation locale optionnelle ;
Variante B confirmée pour le repli L2 (EV au minimum + notification nymea +
risque 1,4 kW accepté) ; table défaillances/couches corrigée (L1 ne couvre pas
compteur hors ligne).
- energyarbitrator.cpp update() : commentaire explicitant la correspondance exacte
avec l'ordre SCM (1-4 parent, ETM entre 4 et 7, planSpot+planSurplus via getPlan).
- rulebasedscheduler.h : Doxygen getPlan() marqué "PROXY AMONT POUR L'EV (beta)".
- evadapter.h : Doxygen applyAction() marqué "Inactif jusqu'à 3g".
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-08 07:41:12 +02:00
Patrick Schurig
5f49e4ca3c
[3b-wip] EnergyArbitrator + RuleBasedScheduler + EvAdapter (dispatch amont, ETM_ARBITRATOR désactivé)
...
- EnergyArbitrator : public SmartChargingManager — raison documentée dans AGENTS.md §DÉCISIONS DE DESIGN
- SmartChargingManager : protected slots + virtual update() + 3 accesseurs inline [ETM]
- RuleBasedScheduler::getPlan() wraps planSurplusCharging/planSpotMarketCharging, annote chaque action d'un reason français
- EvAdapter : ILoadAdapter concret pour evcharger — applyAction() implémenté, NON appelé en 3b (dispatch via adjustEvChargers() amont, iso-fonctionnel)
- ETM_ARBITRATOR : commenté dans .pro — ne s'active qu'après preuve iso-fonctionnelle (3b-iv)
- Doxygen \brief + invariants + contrats sur toutes les classes/méthodes publiques etm/ (DoD §5)
- plan.h : timeSlots (pas slots, mot-clé Qt) ; commentaire JSON sérialisation "slots" OPTIMIZER_PROTOCOL §6
- .clangd : flags de repli Qt/nymea pour clangd via symlink ~/Schreibtisch/
- compile_commands.json gitignore (chemins absolus locaux)
- Build : 0 erreurs, 0 warnings — libnymea_energypluginnymea.so 914 KB
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 23:16:49 +02:00
Patrick Schurig
4ae1939f93
[3a] structs protocole + interfaces LoadAdapter/Scheduler (zéro comportement)
...
LoadAction (kind+funding+§6 fields), LoadDescriptor, SurplusContext (§5),
Plan/Slot, ILoadAdapter, IScheduler — noms de champs = OPTIMIZER_PROTOCOL.md.
energyplugin.pri inclut etm/etm.pri. Build Qt6 vert, aucun fichier upstream touché.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 22:02:18 +02:00
Patrick Schurig
f4d5b20297
[phase1] renommage .pro + métadonnées debian ETM (fork 1.13.0+etm1, TARGET et paquets inchangés)
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-07 21:39:49 +02:00
7588473a60
feat: add EcoWithMinCurrent + EcoMinWithTargetTime charging modes
...
- charginginfo.h: 2 new ChargingMode enum values
- smartchargingmanager.h: EcoMinChargingCurrent = 6A constant
- smartchargingmanager.cpp: 5 changes
A: fallback EcoMinWithTargetTime → EcoWithMinCurrent (not Eco)
B: EcoWithMinCurrent ignored in spot market without target
C: EcoMinWithTargetTime treated as EcoWithTargetTime for deadline
D: planSurplusCharging: target time check for EcoMin modes
E: adjustEvChargers: floor at max(6A, minValue) when no surplus/spot/time
2026-04-05 08:12:47 +02:00
d76e7e61d5
fix: detect actual EV phase instead of hardcoding phase A
...
- evcharger.cpp: phases() now calls meteredPhases() instead of returning PhaseNone
- smartchargingmanager: add chargerPhaseKey() with 3-level fallback
1. meteredPhases() when charger is active
2. effectivePhases from last known state
3. fallback 'A' + warning (previous behavior)
- Remove 4 FIXME comments on lines 394, 477, 517
2026-04-05 07:09:38 +02:00
b343650f9b
initial commit
2026-01-11 11:09:23 +01:00