Skip to content

GW15k-ET-20

External control

https://community.openems.io/t/goodwe-et10-wechselrichter-in-openems-einbinden/10051/29?page=2

Modes

INTERNAL Mode

  • Pure AUTO mode operation (EmsPowerMode.AUTO)
  • OpenEMS only monitors, but does not control
  • Fastest response time
  • Requires a GoodWe Smart Meter

SMART Mode

Technical Behavior

  • Intelligent switching between GoodWe AUTO mode (EmsPowerMode.AUTO) and remote control
  • Uses the inverter’s fast internal regulation whenever possible
  • Switches to remote control in cases of:
  • Grid feed-in (surplus export)
  • Specific grid-balancing requirements
  • Avoidance of rounding errors

Requirements

  • Mandatory: GoodWe Smart Meter at the grid connection point
  • Important: Does NOT work correctly when the PID filter is enabled!

REMOTE Mode

Technical Behavior

  • Full control by OpenEMS
  • Direct power setpoints via Modbus
  • Uses EmsPowerMode.CHARGE_BAT (0x0B) for charging
  • Uses EmsPowerMode.DISCHARGE_BAT (0x0C) for discharging

Power Calculation

// Charging:
emsPowerSet = |activePowerSetPoint| + pvProduction

// Discharging:
emsPowerSet = activePowerSetPoint - pvProduction

Advantages

  • Works with any grid meter (not only GoodWe)
  • Full flexibility for complex control strategies
  • No dependency on GoodWe hardware

Disadvantages

  • Slower response time compared to the internal AUTO mode
  • Higher communication overhead

Recommendation

  • SMART: Best choice when a GoodWe Smart Meter is available (without PID filter!)
  • REMOTE: Ideal for third-party meters or complex multi-ESS systems
  • INTERNAL: Uses the inverter’s internal control logic

The modes are defined in:

io.openems.edge.goodwe.ess.enums.ControlMode

The implementation is handled in the:

ApplyPowerHandler

PID Filter Behavior

  • REMOTE: PID filter is taken into account
  • INTERNAL: PID filter is NOT taken into account
  • SMART: PID filter is NOT taken into account (see notes above)

Regulation / Settling Time

The regulation and settling times depend on many different factors and must usually be tuned individually for each installation in order to achieve the best results.

Tuning

https://community.openems.io/t/pid-regler-ess-power/963/3

PID Tuning Simulator

A small PID simulator is available as an Excel file in the repository:

https://github.com/OpenEMS/openems/blob/develop/io.openems.edge.common/doc/PID-Simulator.xlsx

The simulator behaves exactly like the ESS-Power implementation.
The Java Junit test implementation was derived from the Unit-Test worksheet of this simulator.

For example, the following parameters should work reasonably well:

P = 0.3
I = 0.15
D = 0