Question About Sequential ESS Operation Using ESS Cluster

Hello OpenEMS Community,

I am working on an EMS project for my master thesis using OpenEMS with two ESS modules (ess0 and ess1).

My project requirement is:

  1. ess1 should discharge first (discharge priority)

  2. ess0 should charge first (charge priority)

  3. Only one ESS should discharge at a time

  4. Both ESS modules should not share discharge power simultaneously

  5. When ess1 reaches reserve SoC, ess0 should start discharging

I currently use:

  • ESS Cluster

  • Shared grid meter

  • CSV Direct simulation for load and production

  • ESS power strategy: OPTIMIZE_BY_MOVING_TOWARDS_TARGET

However, from the logs I observe behavior like:

  • initially ess1 discharges,

  • then both ESS modules share power,

  • later ess0 becomes dominant.

This seems to behave more like a virtual aggregated battery, which is not aligned with my requirement.

Is there any way to configure ESS Cluster for:

  • discharge/charge priority,

  • preventing simultaneous discharge,

  • sequential ESS operation?

I would appreciate any suggestions or recommended architecture for implementing this behavior in OpenEMS.

Thank you.

I am also working on EMS for BESS based out of Gujarat. You can reach out to me at shilpan@urjapod.com. We can help each other out.

Thanks

Hi @kamblenidhi08 and sorry for late reply.

The feature you are looking for is not built-in yet. By design this should also not be a part of the ESS-Cluster, but a new “strategy” instead. Have a look at power distribution v2 - you should be able to adjust the logic to suit your requirement: openems/io.openems.edge.ess.core/src/io/openems/edge/ess/core/power/v2/TreeSolver.java at develop · OpenEMS/openems · GitHub

Regards,
Stefan