Skip to content

[Edge] Controller.TimeOfUseTariff: add balancingGridSetpoint to configure Power Setpoint during BALANCING#3663

Open
xlukem wants to merge 9 commits intoOpenEMS:developfrom
xlukem:develop
Open

[Edge] Controller.TimeOfUseTariff: add balancingGridSetpoint to configure Power Setpoint during BALANCING#3663
xlukem wants to merge 9 commits intoOpenEMS:developfrom
xlukem:develop

Conversation

@xlukem
Copy link
Copy Markdown

@xlukem xlukem commented Apr 1, 2026

Summary

As proposed in the OpenEMS community thread:
https://community.openems.io/t/balancing-grid-setpoint-in-time-of-use-controller-wahrend-balancing-state/10793

This PR introduces the balancingGridSetpoint config parameter inside the TimeOfUseTariff Controller to keep a steady Power Setpoint during the BALANCING state. This functionality was previous to Release 2026.2.0 achievable by using the Balancing Controller when scheduled after the TimeOfUseTariff Controller but has since been removed.

Motivation

Enables use cases where the target state is not "Net Zero", such as maintaining a specific buffer for high-dynamic loads.

Changes

TimeOfUseTariffController

  • Added balancingGridSetpoint Config Parameter
  • using it inside calculateAutomaticMode()
final var pwrBalancing = gridActivePower + essActivePower - balancingGridSetpoint;
...
case BALANCING -> new ApplyMode(BALANCING, pwrBalancing);

TimeOfUseTariffController EnergyScheduler

  • introducing it into the EnergyScheduler to improve perfomance of the optimization
var balancingGridSetpointEnergy = period.duration().convertPowerToEnergy(balancingGridSetpoint);
applyBalancing(ef, balancingGridSetpointEnergy);
...
public static void applyBalancing(EnergyFlow.Model model, int balancingGridSetpointEnergy) {
    int target = -model.getSurplus() - balancingGridSetpointEnergy;
    model.setEss(target);
}

Added Tests for TimeOfUseTariffController and Edge.Energy


Impact

  • restores flexibility that existed before 2026.2.0 release
  • more advanced control strategies with improved energy scheduler optimization

@xlukem xlukem changed the title [EDGE] Controller.TimeOfUseTariff: add balancingGridSetpoint to configure Power Setpoint during BALANCING [Edge] Controller.TimeOfUseTariff: add balancingGridSetpoint to configure Power Setpoint during BALANCING Apr 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant