Class GoodWeBatteryInverterImpl
- java.lang.Object
-
- io.openems.edge.common.component.AbstractOpenemsComponent
-
- io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
-
- io.openems.edge.goodwe.common.AbstractGoodWe
-
- io.openems.edge.goodwe.batteryinverter.GoodWeBatteryInverterImpl
-
- All Implemented Interfaces:
HybridManagedSymmetricBatteryInverter
,ManagedSymmetricBatteryInverter
,SymmetricBatteryInverter
,ModbusComponent
,OpenemsComponent
,StartStoppable
,GoodWeBatteryInverter
,GoodWe
,TimedataProvider
public class GoodWeBatteryInverterImpl extends AbstractGoodWe implements GoodWeBatteryInverter, GoodWe, HybridManagedSymmetricBatteryInverter, ManagedSymmetricBatteryInverter, SymmetricBatteryInverter, ModbusComponent, OpenemsComponent
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
AbstractOpenemsModbusComponent.BitConverter, AbstractOpenemsModbusComponent.ChannelMapper<T extends AbstractModbusElement<?>>
-
Nested classes/interfaces inherited from interface io.openems.edge.goodwe.common.GoodWe
GoodWe.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.goodwe.batteryinverter.GoodWeBatteryInverter
GoodWeBatteryInverter.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.batteryinverter.api.HybridManagedSymmetricBatteryInverter
HybridManagedSymmetricBatteryInverter.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.batteryinverter.api.ManagedSymmetricBatteryInverter
ManagedSymmetricBatteryInverter.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.bridge.modbus.api.ModbusComponent
ModbusComponent.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.common.component.OpenemsComponent
OpenemsComponent.ChannelId
-
Nested classes/interfaces inherited from interface io.openems.edge.batteryinverter.api.SymmetricBatteryInverter
SymmetricBatteryInverter.ChannelId
-
-
Field Summary
Fields Modifier and Type Field Description protected org.osgi.service.cm.ConfigurationAdmin
cm
-
Fields inherited from class io.openems.edge.goodwe.common.AbstractGoodWe
chargers
-
Fields inherited from interface io.openems.edge.batteryinverter.api.SymmetricBatteryInverter
POWER_DOC_TEXT
-
-
Constructor Summary
Constructors Constructor Description GoodWeBatteryInverterImpl()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
deactivate()
Handles @Deactivate of implementations.java.lang.String
debugLog()
Gets some output that is suitable for a continuous Debug log.java.lang.Integer
getDcPvPower()
Gets the DC-PV Power, i.e.int
getPowerPrecision()
Gets the smallest positive power that can be set (in W, VA or var).BatteryInverterConstraint[]
getStaticConstraints()
Gets static Constraints for this Battery-Inverter.java.lang.Integer
getSurplusPower()
Gets Surplus Power.Timedata
getTimedata()
Gets theTimedata
service.boolean
isManaged()
Gets a boolean if the battery inverter is managed or not.boolean
isOffGridPossible()
Gets a boolean if the battery inverter is able to build a micro-grid in off-grid.void
run(Battery battery, int setActivePower, int setReactivePower)
Run the Battery-Inverter.protected void
setModbus(BridgeModbus modbus)
Set the Modbus bridge.void
setStartStop(StartStop value)
Starts or stops the device or service represented by this OpenEMS Component.-
Methods inherited from class io.openems.edge.goodwe.common.AbstractGoodWe
addCharger, calculateMaxAcPower, calculatePvProduction, defineModbusProtocol, getSocModbusElement, removeCharger, updatePowerAndEnergyChannels
-
Methods inherited from class io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
activate, activate, activate, getBridgeModbus, getModbusProtocol, getUnitId, m, m, m, m, m, m, modified, modified, unsetModbus
-
Methods inherited from class io.openems.edge.common.component.AbstractOpenemsComponent
_channel, addChannel, addChannels, addChannels, alias, channels, getComponentContext, id, isEnabled, logDebug, logError, logInfo, logWarn, removeChannel
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface io.openems.edge.goodwe.common.GoodWe
_setBmsChargeMaxCurrent, _setBmsChargeMaxVoltage, _setBmsDischargeMaxCurrent, _setBmsDischargeMinVoltage, _setMaxAcExport, _setMaxAcImport, addCharger, getBmsChargeMaxCurrent, getBmsChargeMaxCurrentChannel, getBmsChargeMaxVoltage, getBmsChargeMaxVoltageChannel, getBmsDischargeMaxCurrent, getBmsDischargeMaxCurrentChannel, getBmsDischargeMinVoltage, getBmsDischargeMinVoltageChannel, getGoodweType, getGoodweTypeChannel, getMaxAcExport, getMaxAcExportChannel, getMaxAcImport, getMaxAcImportChannel, getWbmsChargeMaxCurrent, getWbmsChargeMaxCurrentChannel, getWbmsDischargeMaxCurrent, getWbmsDischargeMaxCurrentChannel, getWbmsVoltage, getWbmsVoltageChannel, removeCharger, setBmsChargeMaxCurrent, setBmsChargeMaxVoltage, setBmsDischargeMaxCurrent, setBmsDischargeMinVoltage
-
Methods inherited from interface io.openems.edge.batteryinverter.api.HybridManagedSymmetricBatteryInverter
_setDcChargeEnergy, _setDcChargeEnergy, _setDcDischargeEnergy, _setDcDischargeEnergy, _setDcDischargePower, getDcChargeEnergy, getDcChargeEnergyChannel, getDcDischargeEnergy, getDcDischargeEnergyChannel, getDcDischargePower, getDcDischargePowerChannel
-
Methods inherited from interface io.openems.edge.bridge.modbus.api.ModbusComponent
_setModbusCommunicationFailed, getModbusCommunicationFailed, getModbusCommunicationFailedChannel
-
Methods inherited from interface io.openems.edge.common.component.OpenemsComponent
_channel, _getChannelAs, alias, channel, channel, channels, getComponentContext, getState, getStateChannel, hasFaults, id, isEnabled, serviceFactoryPid, servicePid
-
Methods inherited from interface io.openems.edge.common.startstop.StartStoppable
_setStartStop, getStartStop, getStartStopChannel, isStarted, isStopped, start, stop
-
Methods inherited from interface io.openems.edge.batteryinverter.api.SymmetricBatteryInverter
_setActiveChargeEnergy, _setActiveChargeEnergy, _setActiveDischargeEnergy, _setActiveDischargeEnergy, _setActivePower, _setActivePower, _setGridMode, _setMaxApparentPower, _setMaxApparentPower, _setReactivePower, _setReactivePower, getActiveChargeEnergy, getActiveChargeEnergyChannel, getActiveDischargeEnergy, getActiveDischargeEnergyChannel, getActivePower, getActivePowerChannel, getGridMode, getGridModeChannel, getMaxApparentPower, getMaxApparentPowerChannel, getReactivePower, getReactivePowerChannel
-
-
-
-
Constructor Detail
-
GoodWeBatteryInverterImpl
public GoodWeBatteryInverterImpl() throws OpenemsError.OpenemsNamedException
-
-
Method Detail
-
setModbus
protected void setModbus(BridgeModbus modbus)
Description copied from class:AbstractOpenemsModbusComponent
Set the Modbus bridge. Should be called by @Reference- Overrides:
setModbus
in classAbstractOpenemsModbusComponent
- Parameters:
modbus
- the BridgeModbus Reference
-
deactivate
protected void deactivate()
Description copied from class:AbstractOpenemsComponent
Handles @Deactivate of implementations. Prints log output.- Overrides:
deactivate
in classAbstractOpenemsModbusComponent
-
getPowerPrecision
public int getPowerPrecision()
Description copied from interface:ManagedSymmetricBatteryInverter
Gets the smallest positive power that can be set (in W, VA or var). Example:- FENECON Commercial 40 allows setting of power in 100 W steps. It should return 100.
- KACO blueplanet gridsave 50 allows setting of power in 0.1 % of 52 VA. It should return 52 (= 52000 * 0.001)
- Specified by:
getPowerPrecision
in interfaceManagedSymmetricBatteryInverter
- Returns:
- the power precision
-
getTimedata
public Timedata getTimedata()
Description copied from interface:TimedataProvider
Gets theTimedata
service.- Specified by:
getTimedata
in interfaceTimedataProvider
- Returns:
- the service or null if it is not (yet) available.
-
getDcPvPower
public java.lang.Integer getDcPvPower()
Description copied from interface:HybridManagedSymmetricBatteryInverter
Gets the DC-PV Power, i.e. the sum of theEssDcCharger
s of thisHybridManagedSymmetricBatteryInverter
.- Specified by:
getDcPvPower
in interfaceHybridManagedSymmetricBatteryInverter
- Returns:
- the DC-PV power, or 'null' if there is no
EssDcCharger
-
getSurplusPower
public java.lang.Integer getSurplusPower()
Description copied from class:AbstractGoodWe
Gets Surplus Power.- Specified by:
getSurplusPower
in interfaceHybridManagedSymmetricBatteryInverter
- Specified by:
getSurplusPower
in classAbstractGoodWe
- Returns:
Integer
-
setStartStop
public void setStartStop(StartStop value) throws OpenemsError.OpenemsNamedException
Description copied from interface:StartStoppable
Starts or stops the device or service represented by this OpenEMS Component.- Specified by:
setStartStop
in interfaceStartStoppable
- Parameters:
value
- targetStartStop
state- Throws:
OpenemsError.OpenemsNamedException
- on error
-
run
public void run(Battery battery, int setActivePower, int setReactivePower) throws OpenemsError.OpenemsNamedException
Description copied from interface:ManagedSymmetricBatteryInverter
Run the Battery-Inverter.- bring the Battery-Inverter in the desired state
- apply information from
Battery
as required - set the target Active and Reactive Power.
This is called on ManagedSymmetricEss::applyPower()
- Specified by:
run
in interfaceManagedSymmetricBatteryInverter
- Parameters:
battery
- theBattery
setActivePower
- the active power setpointsetReactivePower
- the reactive power setpoint- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getStaticConstraints
public BatteryInverterConstraint[] getStaticConstraints() throws OpenemsError.OpenemsNamedException
Description copied from interface:ManagedSymmetricBatteryInverter
Gets static Constraints for this Battery-Inverter. Override this method to provide specific Constraints for this Battery-Inverter on every Cycle.- Specified by:
getStaticConstraints
in interfaceManagedSymmetricBatteryInverter
- Returns:
- the Constraints
- Throws:
OpenemsException
- on errorOpenemsError.OpenemsNamedException
-
debugLog
public java.lang.String debugLog()
Description copied from interface:OpenemsComponent
Gets some output that is suitable for a continuous Debug log. Returns 'null' by default which causes no output.- Specified by:
debugLog
in interfaceOpenemsComponent
- Returns:
- the debug log output
-
isManaged
public boolean isManaged()
Description copied from interface:ManagedSymmetricBatteryInverter
Gets a boolean if the battery inverter is managed or not.Returns false if the battery inverter itself is not managed or in a read only mode.
- Specified by:
isManaged
in interfaceManagedSymmetricBatteryInverter
- Returns:
- is managed or not
-
isOffGridPossible
public boolean isOffGridPossible()
Description copied from interface:ManagedSymmetricBatteryInverter
Gets a boolean if the battery inverter is able to build a micro-grid in off-grid.Returns false if the battery inverter is not able to build a micro-grid.
- Specified by:
isOffGridPossible
in interfaceManagedSymmetricBatteryInverter
- Returns:
- is managed or not
-
-