Battery-Inverter API
Defines interfaces for battery inverter implementations in OpenEMS.
Overview
This API bundle defines the core interfaces and contracts for battery inverter components. A battery inverter is a critical component that converts between DC power from a battery and AC power for the grid or loads. Together with a battery component, a battery inverter builds an Energy Storage System (ESS).
The bundle provides interfaces for: * Symmetric battery inverters for three-phase systems * Managed battery inverters that can be controlled * Hybrid battery inverters that can also handle PV input * Off-grid battery inverters * Inverter constraints and error handling
Core Interfaces
SymmetricBatteryInverter
Base interface for symmetric battery inverters.
Purpose: Read-only interface providing monitoring channels for inverter state and power values.
-
GRID_MODE(Enum): 0=Undefined, 1=On-Grid, 2=Off-Grid -
ACTIVE_POWER(Integer, W): Positive=Discharge, Negative=Charge -
REACTIVE_POWER(Integer, var): Reactive power output -
APPARENT_POWER(Integer, VA): Total apparent power -
DC_CHARGE_ENERGY(Long, Wh): Cumulative charging energy -
DC_DISCHARGE_ENERGY(Long, Wh): Cumulative discharging energy -
Various voltage, current, and temperature monitoring channels
ManagedSymmetricBatteryInverter
Controllable battery inverter interface extending SymmetricBatteryInverter.
Purpose: Control and manage battery inverter charging/discharging operations.
Key Methods:
* run(Battery battery, int setActivePower, int setReactivePower) - Apply power setpoints
* getStaticConstraints() - Get power constraints for the inverter
* getPowerPrecision() - Get minimum power step resolution
* Inherits StartStoppable for start/stop lifecycle management
Typical Usage: Controllers use this interface to command the inverter to charge or discharge at specified power levels.
HybridManagedSymmetricBatteryInverter
Extended interface for hybrid inverters that manage both battery and PV.
Purpose: Control inverters that can simultaneously handle battery and photovoltaic inputs.
Additional Capabilities: * Manages DC side with battery input and PV input * Coordinates charging from both sources * Handles PV feed-to-grid scenarios
OffGridBatteryInverter
Interface for off-grid battery inverter systems.
Purpose: Support for island/microgrid mode where battery inverter operates independently from the main grid.
Use Cases: * Backup power systems * Island installations * Microgrids
Related Implementations
Device-specific battery inverter implementations:
-
io.openems.edge.batteryinverter.kaco.blueplanetgridsave- KACO blueplanet gridsave 50/80 -
io.openems.edge.batteryinverter.refu88k- REFU 88K hybrid inverter -
io.openems.edge.batteryinverter.sinexcel- Sinexcel inverter
Test implementations:
-
DummyManagedSymmetricBatteryInverter- Test double for managed symmetric -
DummyOffGridBatteryInverter- Test double for off-grid -
Located in
io.openems.edge.batteryinverter.testsubpackage