Package io.openems.edge.ess.api
Interface ManagedSymmetricEss
-
- All Superinterfaces:
OpenemsComponent
,SymmetricEss
- All Known Subinterfaces:
EssCluster
,EssFeneconCommercial40
,FeneconMiniEss
,GenericManagedEss
,GenericManagedSymmetricEss
,GenericOffGridEss
,ManagedAsymmetricEss
,ManagedSinglePhaseEss
,OffGridEss
,SunnyIslandEss
- All Known Implementing Classes:
AbstractGenericManagedEss
,BpEssImpl
,DummyHybridEss
,DummyManagedAsymmetricEss
,DummyManagedSymmetricEss
,DummyMetaEss
,Edge2EdgeEssImpl
,EssAsymmetric
,EssClusterImpl
,EssFeneconBydContainer
,EssFeneconCommercial40Impl
,EssGridcon
,EssGridconOnGrid
,EssGridconOnOffGrid
,EssSinglePhase
,EssSymmetric
,FeneconMiniEssImpl
,FeneconProEssImpl
,GenericManagedSymmetricEssImpl
,GenericOffGridEssImpl
,GoodWeEssImpl
,SunnyIslandEssImpl
@ProviderType public interface ManagedSymmetricEss extends SymmetricEss
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static class
ManagedSymmetricEss.ChannelId
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default void
_setAllowedChargePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
Channel.default void
_setAllowedChargePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
Channel.default void
_setAllowedDischargePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
Channel.default void
_setAllowedDischargePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
Channel.default void
_setApplyPowerFailed(boolean value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.APPLY_POWER_FAILED
Channel.default void
_setDebugSetActivePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
Channel.default void
_setDebugSetActivePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
Channel.default void
_setDebugSetReactivePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
Channel.default void
_setDebugSetReactivePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
Channel.default Constraint
addPowerConstraint(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value)
Adds a Power Constraint for the current Cycle.default Constraint
addPowerConstraintAndValidate(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value)
Adds a Power Constraint for the current Cycle.void
applyPower(int activePower, int reactivePower)
Apply the calculated Power.default Constraint
createPowerConstraint(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value)
Creates a Power Constraint.default Value<java.lang.Integer>
getAllowedChargePower()
Gets the Allowed Charge Power in [W], range "<= 0".default IntegerReadChannel
getAllowedChargePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
.default Value<java.lang.Integer>
getAllowedDischargePower()
Gets the Allowed Discharge Power in [W], range "<= 0".default IntegerReadChannel
getAllowedDischargePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
.default Value<java.lang.Boolean>
getApplyPowerFailed()
Gets the Apply Power Failed State.default StateChannel
getApplyPowerFailedChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.APPLY_POWER_FAILED
.default Value<java.lang.Integer>
getDebugSetActivePower()
Gets the last Active Power setpoint in [W].default IntegerReadChannel
getDebugSetActivePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
.default Value<java.lang.Integer>
getDebugSetReactivePower()
Gets the last Reactive Power setpoint in [var].default IntegerReadChannel
getDebugSetReactivePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
.static ModbusSlaveNatureTable
getModbusSlaveNatureTable(AccessMode accessMode)
Used for Modbus/TCP Api Controller.Power
getPower()
Gets an instance of the 'Power' class, which allows to set limitations to Active and Reactive Power.int
getPowerPrecision()
Gets the smallest positive power that can be set (in W, VA or var).default IntegerWriteChannel
getSetActivePowerEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS
.default IntegerWriteChannel
getSetActivePowerEqualsWithPidChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS_WITH_PID
.default IntegerWriteChannel
getSetActivePowerGreaterOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_GREATER_OR_EQUALS
.default IntegerWriteChannel
getSetActivePowerLessOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_LESS_OR_EQUALS
.default IntegerWriteChannel
getSetReactivePowerEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_EQUALS
.default IntegerWriteChannel
getSetReactivePowerGreaterOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_GREATER_OR_EQUALS
.default IntegerWriteChannel
getSetReactivePowerLessOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_LESS_OR_EQUALS
.default Constraint[]
getStaticConstraints()
Gets static Constraints for this Ess.default boolean
isManaged()
Gets a boolean if the ess is managed or not.default void
setActivePowerEquals(java.lang.Integer value)
Sets an Active Power Equals setpoint in [W].default void
setActivePowerEqualsWithPid(java.lang.Integer value)
Sets an Active Power Equals setpoint in [W] with applied PID filter.default void
setActivePowerGreaterOrEquals(java.lang.Integer value)
Sets an Active Power Greater Or Equals setpoint in [W].default void
setActivePowerLessOrEquals(java.lang.Integer value)
Sets an Active Power Less Or Equals setpoint in [W].default void
setReactivePowerEquals(java.lang.Integer value)
Sets a Reactive Power Equals setpoint in [var].default void
setReactivePowerGreaterOrEquals(java.lang.Integer value)
Sets a Reactive Power Greater Or Equals setpoint in [var].default void
setReactivePowerLessOrEquals(java.lang.Integer value)
Sets a Reactive Power Less Or Equals setpoint in [var].-
Methods inherited from interface io.openems.edge.common.component.OpenemsComponent
_channel, _getChannelAs, alias, channel, channel, channels, debugLog, getComponentContext, getState, getStateChannel, hasFaults, id, isEnabled, serviceFactoryPid, servicePid
-
Methods inherited from interface io.openems.edge.ess.api.SymmetricEss
_setActiveChargeEnergy, _setActiveChargeEnergy, _setActiveDischargeEnergy, _setActiveDischargeEnergy, _setActivePower, _setActivePower, _setCapacity, _setCapacity, _setGridMode, _setMaxApparentPower, _setMaxApparentPower, _setMaxCellTemperature, _setMaxCellTemperature, _setMaxCellVoltage, _setMaxCellVoltage, _setMinCellTemperature, _setMinCellTemperature, _setMinCellVoltage, _setMinCellVoltage, _setReactivePower, _setReactivePower, _setSoc, _setSoc, getActiveChargeEnergy, getActiveChargeEnergyChannel, getActiveDischargeEnergy, getActiveDischargeEnergyChannel, getActivePower, getActivePowerChannel, getCapacity, getCapacityChannel, getGridMode, getGridModeChannel, getMaxApparentPower, getMaxApparentPowerChannel, getMaxCellTemperature, getMaxCellTemperatureChannel, getMaxCellVoltage, getMaxCellVoltageChannel, getMinCellTemperature, getMinCellTemperatureChannel, getMinCellVoltage, getMinCellVoltageChannel, getReactivePower, getReactivePowerChannel, getSoc, getSocChannel
-
-
-
-
Method Detail
-
getModbusSlaveNatureTable
static ModbusSlaveNatureTable getModbusSlaveNatureTable(AccessMode accessMode)
Used for Modbus/TCP Api Controller. Provides a Modbus table for the Channels of this Component.- Parameters:
accessMode
- filters the Modbus-Records that should be shown- Returns:
- the
ModbusSlaveNatureTable
-
isManaged
default boolean isManaged()
Gets a boolean if the ess is managed or not.Returns false if the ess itself is not managed or in a read only mode.
- Returns:
- is managed or not
-
getPower
Power getPower()
Gets an instance of the 'Power' class, which allows to set limitations to Active and Reactive Power.- Returns:
- the Power instance
-
getAllowedChargePowerChannel
default IntegerReadChannel getAllowedChargePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
.- Returns:
- the Channel
-
getAllowedChargePower
default Value<java.lang.Integer> getAllowedChargePower()
Gets the Allowed Charge Power in [W], range "<= 0". SeeManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
.- Returns:
- the Channel
Value
-
_setAllowedChargePower
default void _setAllowedChargePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
Channel.- Parameters:
value
- the next value
-
_setAllowedChargePower
default void _setAllowedChargePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_CHARGE_POWER
Channel.- Parameters:
value
- the next value
-
getAllowedDischargePowerChannel
default IntegerReadChannel getAllowedDischargePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
.- Returns:
- the Channel
-
getAllowedDischargePower
default Value<java.lang.Integer> getAllowedDischargePower()
Gets the Allowed Discharge Power in [W], range "<= 0". SeeManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
.- Returns:
- the Channel
Value
-
_setAllowedDischargePower
default void _setAllowedDischargePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
Channel.- Parameters:
value
- the next value
-
_setAllowedDischargePower
default void _setAllowedDischargePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.ALLOWED_DISCHARGE_POWER
Channel.- Parameters:
value
- the next value
-
getSetActivePowerEqualsChannel
default IntegerWriteChannel getSetActivePowerEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS
.- Returns:
- the Channel
-
setActivePowerEquals
default void setActivePowerEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets an Active Power Equals setpoint in [W]. Negative values for Charge; positive for Discharge. SeeManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetActivePowerEqualsWithPidChannel
default IntegerWriteChannel getSetActivePowerEqualsWithPidChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS_WITH_PID
.- Returns:
- the Channel
-
setActivePowerEqualsWithPid
default void setActivePowerEqualsWithPid(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets an Active Power Equals setpoint in [W] with applied PID filter. Negative values for Charge; positive for Discharge. SeeManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_EQUALS_WITH_PID
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetReactivePowerEqualsChannel
default IntegerWriteChannel getSetReactivePowerEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_EQUALS
.- Returns:
- the Channel
-
setReactivePowerEquals
default void setReactivePowerEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets a Reactive Power Equals setpoint in [var]. SeeManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetActivePowerLessOrEqualsChannel
default IntegerWriteChannel getSetActivePowerLessOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_LESS_OR_EQUALS
.- Returns:
- the Channel
-
setActivePowerLessOrEquals
default void setActivePowerLessOrEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets an Active Power Less Or Equals setpoint in [W]. Negative values for Charge; positive for Discharge. SeeManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_LESS_OR_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetActivePowerGreaterOrEqualsChannel
default IntegerWriteChannel getSetActivePowerGreaterOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_GREATER_OR_EQUALS
.- Returns:
- the Channel
-
setActivePowerGreaterOrEquals
default void setActivePowerGreaterOrEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets an Active Power Greater Or Equals setpoint in [W]. Negative values for Charge; positive for Discharge. SeeManagedSymmetricEss.ChannelId.SET_ACTIVE_POWER_GREATER_OR_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetReactivePowerLessOrEqualsChannel
default IntegerWriteChannel getSetReactivePowerLessOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_LESS_OR_EQUALS
.- Returns:
- the Channel
-
setReactivePowerLessOrEquals
default void setReactivePowerLessOrEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets a Reactive Power Less Or Equals setpoint in [var]. SeeManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_LESS_OR_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getSetReactivePowerGreaterOrEqualsChannel
default IntegerWriteChannel getSetReactivePowerGreaterOrEqualsChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_GREATER_OR_EQUALS
.- Returns:
- the Channel
-
setReactivePowerGreaterOrEquals
default void setReactivePowerGreaterOrEquals(java.lang.Integer value) throws OpenemsError.OpenemsNamedException
Sets a Reactive Power Greater Or Equals setpoint in [var]. SeeManagedSymmetricEss.ChannelId.SET_REACTIVE_POWER_GREATER_OR_EQUALS
.- Parameters:
value
- the next write value- Throws:
OpenemsError.OpenemsNamedException
- on error
-
getDebugSetActivePowerChannel
default IntegerReadChannel getDebugSetActivePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
.- Returns:
- the Channel
-
getDebugSetActivePower
default Value<java.lang.Integer> getDebugSetActivePower()
Gets the last Active Power setpoint in [W]. SeeManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
.- Returns:
- the Channel
Value
-
_setDebugSetActivePower
default void _setDebugSetActivePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
Channel.- Parameters:
value
- the next value
-
_setDebugSetActivePower
default void _setDebugSetActivePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_ACTIVE_POWER
Channel.- Parameters:
value
- the next value
-
getDebugSetReactivePowerChannel
default IntegerReadChannel getDebugSetReactivePowerChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
.- Returns:
- the Channel
-
getDebugSetReactivePower
default Value<java.lang.Integer> getDebugSetReactivePower()
Gets the last Reactive Power setpoint in [var]. SeeManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
.- Returns:
- the Channel
Value
-
_setDebugSetReactivePower
default void _setDebugSetReactivePower(java.lang.Integer value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
Channel.- Parameters:
value
- the next value
-
_setDebugSetReactivePower
default void _setDebugSetReactivePower(int value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.DEBUG_SET_REACTIVE_POWER
Channel.- Parameters:
value
- the next value
-
getApplyPowerFailedChannel
default StateChannel getApplyPowerFailedChannel()
Gets the Channel forManagedSymmetricEss.ChannelId.APPLY_POWER_FAILED
.- Returns:
- the Channel
-
getApplyPowerFailed
default Value<java.lang.Boolean> getApplyPowerFailed()
Gets the Apply Power Failed State. SeeManagedSymmetricEss.ChannelId.APPLY_POWER_FAILED
.- Returns:
- the Channel
Value
-
_setApplyPowerFailed
default void _setApplyPowerFailed(boolean value)
Internal method to set the 'nextValue' onManagedSymmetricEss.ChannelId.APPLY_POWER_FAILED
Channel.- Parameters:
value
- the next value
-
applyPower
void applyPower(int activePower, int reactivePower) throws OpenemsError.OpenemsNamedException
Apply the calculated Power.Careful: do not adjust activePower and reactivePower in this method, e.g. setting it to zero on error. The purpose of this method is solely to apply the calculated power to the ESS. If you need to constrain the allowed power, add Constraints using the
getStaticConstraints()
method.- Parameters:
activePower
- the active power in [W]reactivePower
- the reactive power in [var]- Throws:
OpenemsError.OpenemsNamedException
- on error; causes activation of APPLY_POWER_FAILED StateChannel
-
getPowerPrecision
int getPowerPrecision()
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)
- Returns:
- the power precision
-
getStaticConstraints
default Constraint[] getStaticConstraints() throws OpenemsError.OpenemsNamedException
Gets static Constraints for this Ess. Override this method to provide specific Constraints for this Ess on every Cycle.- Returns:
- the Constraints
- Throws:
OpenemsException
- on errorOpenemsError.OpenemsNamedException
-
createPowerConstraint
default Constraint createPowerConstraint(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value) throws OpenemsException
Creates a Power Constraint.- Parameters:
description
- a description for the Constraintphase
- the affected power phasepwr
- Active or Reactive powerrelationship
- equals, less-than or greater-thanvalue
- the function value- Returns:
- the Constraint
- Throws:
OpenemsException
- on error
-
addPowerConstraint
default Constraint addPowerConstraint(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value) throws OpenemsException
Adds a Power Constraint for the current Cycle.To add a Constraint on every Cycle, use getStaticConstraints()
- Parameters:
description
- a description for the Constraintphase
- the affected power phasepwr
- Active or Reactive powerrelationship
- equals, less-than or greater-thanvalue
- the function value- Returns:
- the Constraint
- Throws:
OpenemsException
- on error
-
addPowerConstraintAndValidate
default Constraint addPowerConstraintAndValidate(java.lang.String description, Phase phase, Pwr pwr, Relationship relationship, double value) throws OpenemsException
Adds a Power Constraint for the current Cycle.To add a Constraint on every Cycle, use getStaticConstraints()
- Parameters:
description
- a description for the Constraintphase
- the affected power phasepwr
- Active or Reactive powerrelationship
- equals, less-than or greater-thanvalue
- the function value- Returns:
- the Constraint
- Throws:
OpenemsException
- on error
-
-