Skip to content

[EDGE] Adds new Power-Control-Unit (PCU) nature - #3483

Open
mbreier-sw wants to merge 28 commits into
OpenEMS:developfrom
mbreier-sw:feature/SW_PPC_Nature
Open

mbreier-sw wants to merge 28 commits into
OpenEMS:developfrom
mbreier-sw:feature/SW_PPC_Nature

Conversation

@mbreier-sw

Copy link
Copy Markdown
Contributor

Just to provide an interface to "click in" a power-plant-controller beside a grid-meter, an ESS and a PV-Inverter into an OpenEMS controller

@parapluplu

parapluplu commented Dec 18, 2025 •

Copy link
Copy Markdown
Contributor

could you elaborate what you're trying to achieve with this component? We've integrated an Phoenix EZA Regler into our system as well, but mainly did that via the modbus api controller, as all desired data is exchangeable via that interface with an ESS configured as part of it. We've also thought about an API, but didn't followed up on that yet, as we first wanted to finalize the integration to see, what we can derive from that.

I guess your intention is monitoring of the EZA controller? If so I guess the current active Q mode is interesting as well.
All other values are basically either already in the meter API or the ESS API.

Additionally there are some values that are interesting, depending what you want to do with the EZA regler, which is also the reason, why I'm uncertain if it makes sense to put them into an API:

  • third party power (e.g. from a trader)
  • FCR power
  • AFFR power
  • power limitations given by the grid operator

@mbreier-sw

Copy link
Copy Markdown
Contributor Author

Dear @parapluplu,

it's not only monitoring the EZA controller. In our base scenario we'd like to run three EZA controller running on a PLCnext device of Phoenix Contact. The EZA controllers are used like follows:

  • One EZA Controller is monitoring the grid feed-in point, listening to power limitations of network operator and/or direct marketers.
  • Another EZA Controller is monitoring one or more BESS, listening to commands from the EMS and providing feedback to the EMS.
  • Third EZA Controller is managing one or more PV-Inverter, listening to command from the EMS.

We have build a modularized driver communicating with the PLCnext platform over HTTPS and the Phoenix REST-API. We'd like to connect these three EZA controllers within OpenEMS to manage a complex setup using OpenEMS including direct marketers and network operator. Each EZA Controller should be connected to network operator / direct marketing, or BESS or PV-Inverter.

Of course there will be other interesting values, only the defined channels got fixed up to now. We are trying to get community feedback as fast as possible to adjust the plan when necessary.

@sfeilmeier

Copy link
Copy Markdown
Contributor

There is a discussion on that topic in the Community forum: https://community.openems.io/t/nature-api-fur-eza-regler/10668/3. Let's continue over there. I am setting this PR to draft for now.

@sfeilmeier
sfeilmeier marked this pull request as draft January 3, 2026 22:47
@mbreier-sw mbreier-sw changed the title Adds new Power-Plant-Controller nature [EDGE] Adds new Power-Control-Unit (PCU) nature Apr 9, 2026
@mbreier-sw

Copy link
Copy Markdown
Contributor Author

Just to provide an interface to "click in" a power-plant-controller beside a grid-meter, an ESS and a PV-Inverter into an OpenEMS controller

During Q1/2026 hackathon we noticed that it might be good to have a Power-Control-Unit API to simplify the handling of more than five different interfaces used by different Grid-Ops to limit power import/export or reactive power. It provides more flexibility than integrating the functionality into the core Meta component.

@mbreier-sw
mbreier-sw marked this pull request as ready for review April 9, 2026 14:38
@codecov

codecov Bot commented Aug 8, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

❗ There is a different number of reports uploaded between BASE (279d150) and HEAD (5c224f8). Click for more details.

HEAD has 1 upload less than BASE
Flag BASE (279d150) HEAD (5c224f8)
java 1 0
Additional details and impacted files
@@              Coverage Diff               @@
##             develop    #3483       +/-   ##
==============================================
- Coverage      55.39%   28.49%   -26.89%     
==============================================
  Files           3624      391     -3233     
  Lines         169393    12545   -156848     
  Branches       13987     2252    -11735     
==============================================
- Hits           93817     3574    -90243     
+ Misses         71866     8810    -63056     
+ Partials        3710      161     -3549     
🚀 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.

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