Skip to content

ESS-Power: alternative implementation without Linear Equation System#3585

Draft
sfeilmeier wants to merge 1 commit intodevelopfrom
feature/ess-power-alternative
Draft

ESS-Power: alternative implementation without Linear Equation System#3585
sfeilmeier wants to merge 1 commit intodevelopfrom
feature/ess-power-alternative

Conversation

@sfeilmeier
Copy link
Contributor

  • This implementation does not use a Linear Equation System to validate set-points and distribute them to individual inverters
  • Activated by new solver strategy BALANCE
  • Move logic to PowerDistributionHandlers

See discussion in https://community.openems.io/t/neuer-optimizer-logik-fur-mehrere-hybrid-esses/10138/34

- This implementation does not use a Linear Equation System to validate set-points and distribute them to individual inverters
- Activated by new solver strategy `BALANCE`
- Move logic to `PowerDistributionHandler`s
@codecov
Copy link

codecov bot commented Feb 21, 2026

Codecov Report

❌ Patch coverage is 71.79487% with 110 lines in your changes missing coverage. Please review.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #3585      +/-   ##
=============================================
+ Coverage      58.59%   58.63%   +0.05%     
  Complexity       105      105              
=============================================
  Files           3091     3095       +4     
  Lines         134005   134314     +309     
  Branches        9882     9929      +47     
=============================================
+ Hits           78505    78742     +237     
- Misses         52593    52633      +40     
- Partials        2907     2939      +32     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@Sn0w3y
Copy link
Collaborator

Sn0w3y commented Feb 24, 2026

Currently @test on my local System with 3 ESSes :)
Looks VERY promising right now! What happens, if one of the ESSes is empty?
@sfeilmeier

@sfeilmeier
Copy link
Contributor Author

Currently @test on my local System with 3 ESSes :)
Looks VERY promising right now! What happens, if one of the ESSes is empty?

Ok great. @pooran-c and @huseyinsaht are testing this also internally; I target a backport to OpenEMS in the near future. Then we can continue improving these distribution algorithms.

@Sn0w3y
Copy link
Collaborator

Sn0w3y commented Mar 2, 2026

@sfeilmeier I discovered an Issue:

  • Configure a ctrlEssGridOptimizedCharge
  • Wait until one ESS of the Cluster is fully charged
  • No Charge is executed at all anymore

Even if i deactivate the Controller the other 2 ESSes will not charge anymore

@sfeilmeier
Copy link
Contributor Author

@Sn0w3y Implementation is not finished yet and I am not up-to-date on the features. Likely some parts are not yet implemented. Can you provide a fix?

@Sn0w3y
Copy link
Collaborator

Sn0w3y commented Mar 3, 2026

@Sn0w3y Implementation is not finished yet and I am not up-to-date on the features. Likely some parts are not yet implemented. Can you provide a fix?

Unfortunately for the time beeing i did not find the Root-Cause. I will maybe look into it if i have the time :)

@pooran-c
Copy link
Contributor

pooran-c commented Mar 4, 2026

@Sn0w3y : What is the test configuration, ess0 = [ess1, ess2, ess3] ?
and what if ess3 is full, and wat will happen to charging ess0 ?

@Sn0w3y
Copy link
Collaborator

Sn0w3y commented Mar 4, 2026

@Sn0w3y : What is the test configuration, ess0 = [ess1, ess2, ess3] ?

Correct ! I refactored the Code a little bit and test it locally - maybe i already found the Issue here ! :)

The tests i wrote for 3 ESSes were successfull though even with the original code :D

@Sn0w3y
Copy link
Collaborator

Sn0w3y commented Mar 4, 2026

Found out, that the "Issue" has been introduced in here

Specifically here:
https://github.com/OpenEMS/openems/pull/3581/changes#r2884306889

if (target == 0) {
output = 0;
}

if i change it to my Comment all works perfectly fine for now - will test an report..

@sfeilmeier
Copy link
Contributor Author

Note: this is partly included in #3624 -> 7cb0d28

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.

3 participants