powersync-energy-plugin-etm/build-test/energyplugin
Patrick Schurig 0797f37c78 feat: ManualStrategy — community tier scheduling with full manual control
- Add ManualSlotConfig type with weekly repeating support and auto-expiry
- Add ManualStrategy (strategyId="manual"): applies user-defined allocations
  exactly; expired slots logged and skipped; inflexible/critical loads always
  applied as safety fallback; decisionReason never empty
- Extend SchedulerSettings with manualSlots persistence section (INI array)
- Extend SchedulerManager with setManualSlot/removeManualSlot/clearManualSlots
  methods; hydrates ManualStrategy from settings on registerStrategy()
- Add JSON-RPC v11 methods: GetManualSlots, SetManualSlot, RemoveManualSlot,
  ClearManualSlots + ManualSlotActivated push notification
- Register ManualStrategy in energypluginnymea.cpp::init() (no feature flag)
- Add 5 unit tests: basicSlot, noConfig_fallback, expiredSlot, repeatingSlot,
  persistence (JSON round-trip)
- Update doc.md section 11

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-24 06:34:31 +01:00
..
Makefile feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
aistrategy.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
chargingaction.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
charginginfo.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
chargingprocessinfo.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
chargingschedule.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
energymanagerconfiguration.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
energypluginnymea.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
energysettings.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
energytimeslot.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
evcharger.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
flexibleload.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
libnymea_energypluginnymea.so feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
manualslotconfig.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
manualstrategy.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_aistrategy.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_aistrategy.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_chargingaction.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_chargingaction.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_charginginfo.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_charginginfo.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_chargingschedule.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_chargingschedule.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_energymanagerconfiguration.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_energymanagerconfiguration.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_energypluginnymea.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_energypluginnymea.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_evcharger.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_evcharger.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_ischedulingstrategy.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_ischedulingstrategy.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_manualstrategy.cpp feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_manualstrategy.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_nymeaenergyjsonhandler.cpp feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_nymeaenergyjsonhandler.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_predefs.h feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_rootmeter.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_rootmeter.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_rulebasedstrategy.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_rulebasedstrategy.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_schedulermanager.cpp feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_schedulermanager.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_schedulersettings.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_schedulersettings.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
moc_scoreentry.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_scoreentry.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_smartchargingmanager.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_smartchargingmanager.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_smartchargingstate.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_smartchargingstate.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketdataprovider.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketdataprovider.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketdataproviderawattar.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketdataproviderawattar.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketmanager.cpp feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
moc_spotmarketmanager.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
nymeaenergyjsonhandler.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
rootmeter.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
rulebasedstrategy.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
schedulerconfig.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
schedulermanager.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
schedulersettings.o feat: ManualStrategy — community tier scheduling with full manual control 2026-02-24 06:34:31 +01:00
scoreentry.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
smartchargingmanager.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
smartchargingstate.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
spotmarketdataprovider.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
spotmarketdataproviderawattar.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
spotmarketmanager.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00
timeframe.o feat: SchedulerManager v1 — build clean 2026-02-23 22:02:01 +01:00