Package io.openems.edge.sma.sunnyisland
Class EssSmaSunnyIslandImpl
java.lang.Object
io.openems.edge.common.component.AbstractOpenemsComponent
io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
io.openems.edge.sma.sunnyisland.EssSmaSunnyIslandImpl
- All Implemented Interfaces:
ModbusComponent
,OpenemsComponent
,AsymmetricEss
,ManagedAsymmetricEss
,ManagedSinglePhaseEss
,ManagedSymmetricEss
,SinglePhaseEss
,SymmetricEss
public class EssSmaSunnyIslandImpl
extends AbstractOpenemsModbusComponent
implements ManagedSinglePhaseEss, SinglePhaseEss, ManagedAsymmetricEss, AsymmetricEss, ManagedSymmetricEss, SymmetricEss, ModbusComponent, OpenemsComponent
-
Nested Class Summary
Nested classes/interfaces inherited from class io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
AbstractOpenemsModbusComponent.BitConverter, AbstractOpenemsModbusComponent.ChannelMapper<ELEMENT extends ModbusElement>
Nested classes/interfaces inherited from interface io.openems.edge.ess.api.AsymmetricEss
AsymmetricEss.ChannelId
Nested classes/interfaces inherited from interface io.openems.edge.ess.api.ManagedAsymmetricEss
ManagedAsymmetricEss.ChannelId
Nested classes/interfaces inherited from interface io.openems.edge.ess.api.ManagedSinglePhaseEss
ManagedSinglePhaseEss.ChannelId
Nested classes/interfaces inherited from interface io.openems.edge.ess.api.ManagedSymmetricEss
ManagedSymmetricEss.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.ess.api.SinglePhaseEss
SinglePhaseEss.ChannelId
Nested classes/interfaces inherited from interface io.openems.edge.ess.api.SymmetricEss
SymmetricEss.ChannelId
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
applyPower
(int activePower, int reactivePower) Apply the calculated Power.void
applyPower
(int activePowerL1, int reactivePowerL1, int activePowerL2, int reactivePowerL2, int activePowerL3, int reactivePowerL3) Default implementation ofManagedAsymmetricEss.applyPower(int, int)
forManagedSinglePhaseEss
.protected void
Handles @Deactivate of implementations.debugLog()
Gets some output that is suitable for a continuous Debug log.protected ModbusProtocol
Defines the Modbus protocol.getPhase()
Gets the Phase this ESS is connected to.getPower()
Gets an instance of the 'Power' class, which allows to set limitations to Active and Reactive Power.int
Gets the smallest positive power that can be set (in W, VA or var).protected void
setModbus
(BridgeModbus modbus) Set the Modbus bridge.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, retryModbusCommunication, 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.ess.api.AsymmetricEss
_setActivePowerL1, _setActivePowerL1, _setActivePowerL2, _setActivePowerL2, _setActivePowerL3, _setActivePowerL3, _setReactivePowerL1, _setReactivePowerL1, _setReactivePowerL2, _setReactivePowerL2, _setReactivePowerL3, _setReactivePowerL3, getActivePowerL1, getActivePowerL1Channel, getActivePowerL2, getActivePowerL2Channel, getActivePowerL3, getActivePowerL3Channel, getReactivePowerL1, getReactivePowerL1Channel, getReactivePowerL2, getReactivePowerL2Channel, getReactivePowerL3, getReactivePowerL3Channel
Methods inherited from interface io.openems.edge.ess.api.ManagedAsymmetricEss
_setDebugSetActivePowerL1, _setDebugSetActivePowerL1, _setDebugSetActivePowerL2, _setDebugSetActivePowerL2, _setDebugSetActivePowerL3, _setDebugSetActivePowerL3, _setDebugSetReactivePowerL1, _setDebugSetReactivePowerL1, _setDebugSetReactivePowerL2, _setDebugSetReactivePowerL2, _setDebugSetReactivePowerL3, _setDebugSetReactivePowerL3, getDebugSetActivePowerL1, getDebugSetActivePowerL1Channel, getDebugSetActivePowerL2, getDebugSetActivePowerL2Channel, getDebugSetActivePowerL3, getDebugSetActivePowerL3Channel, getDebugSetReactivePowerL1, getDebugSetReactivePowerL1Channel, getDebugSetReactivePowerL2, getDebugSetReactivePowerL2Channel, getDebugSetReactivePowerL3, getDebugSetReactivePowerL3Channel, getSetActivePowerL1EqualsChannel, getSetActivePowerL1GreaterOrEqualsChannel, getSetActivePowerL1LessOrEqualsChannel, getSetActivePowerL2EqualsChannel, getSetActivePowerL2GreaterOrEqualsChannel, getSetActivePowerL2LessOrEqualsChannel, getSetActivePowerL3EqualsChannel, getSetActivePowerL3GreaterOrEqualsChannel, getSetActivePowerL3LessOrEqualsChannel, getSetReactivePowerL1EqualsChannel, getSetReactivePowerL1GreaterOrEqualsChannel, getSetReactivePowerL1LessOrEqualsChannel, getSetReactivePowerL2EqualsChannel, getSetReactivePowerL2GreaterOrEqualsChannel, getSetReactivePowerL2LessOrEqualsChannel, getSetReactivePowerL3EqualsChannel, getSetReactivePowerL3GreaterOrEqualsChannel, getSetReactivePowerL3LessOrEqualsChannel, setSetActivePowerL1Equals, setSetActivePowerL1GreaterOrEquals, setSetActivePowerL1LessOrEquals, setSetActivePowerL2Equals, setSetActivePowerL2GreaterOrEquals, setSetActivePowerL2LessOrEquals, setSetActivePowerL3Equals, setSetActivePowerL3GreaterOrEquals, setSetActivePowerL3LessOrEquals, setSetReactivePowerL1Equals, setSetReactivePowerL1GreaterOrEquals, setSetReactivePowerL1LessOrEquals, setSetReactivePowerL2Equals, setSetReactivePowerL2GreaterOrEquals, setSetReactivePowerL2LessOrEquals, setSetReactivePowerL3Equals, setSetReactivePowerL3GreaterOrEquals, setSetReactivePowerL3LessOrEquals
Methods inherited from interface io.openems.edge.ess.api.ManagedSymmetricEss
_setAllowedChargePower, _setAllowedChargePower, _setAllowedDischargePower, _setAllowedDischargePower, _setApplyPowerFailed, _setDebugSetActivePower, _setDebugSetActivePower, _setDebugSetReactivePower, _setDebugSetReactivePower, addPowerConstraint, addPowerConstraintAndValidate, createPowerConstraint, getAllowedChargePower, getAllowedChargePowerChannel, getAllowedDischargePower, getAllowedDischargePowerChannel, getApplyPowerFailed, getApplyPowerFailedChannel, getDebugSetActivePower, getDebugSetActivePowerChannel, getDebugSetReactivePower, getDebugSetReactivePowerChannel, getSetActivePowerEqualsChannel, getSetActivePowerEqualsWithPidChannel, getSetActivePowerGreaterOrEqualsChannel, getSetActivePowerLessOrEqualsChannel, getSetReactivePowerEqualsChannel, getSetReactivePowerGreaterOrEqualsChannel, getSetReactivePowerLessOrEqualsChannel, getStaticConstraints, isManaged, setActivePowerEquals, setActivePowerEqualsWithPid, setActivePowerGreaterOrEquals, setActivePowerLessOrEquals, setReactivePowerEquals, setReactivePowerGreaterOrEquals, setReactivePowerLessOrEquals
Methods inherited from interface io.openems.edge.bridge.modbus.api.ModbusComponent
_setModbusCommunicationFailed, getModbusCommunicationFailed, getModbusCommunicationFailedChannel, retryModbusCommunication
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.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
-
Constructor Details
-
EssSmaSunnyIslandImpl
public EssSmaSunnyIslandImpl()
-
-
Method Details
-
setModbus
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
-
applyPower
public void applyPower(int activePower, int reactivePower) throws OpenemsError.OpenemsNamedException Description copied from interface:ManagedSymmetricEss
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
ManagedSymmetricEss.getStaticConstraints()
method.- Specified by:
applyPower
in interfaceManagedAsymmetricEss
- Specified by:
applyPower
in interfaceManagedSymmetricEss
- 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
-
applyPower
public void applyPower(int activePowerL1, int reactivePowerL1, int activePowerL2, int reactivePowerL2, int activePowerL3, int reactivePowerL3) throws OpenemsError.OpenemsNamedException Description copied from interface:ManagedSinglePhaseEss
Default implementation ofManagedAsymmetricEss.applyPower(int, int)
forManagedSinglePhaseEss
.- Specified by:
applyPower
in interfaceManagedAsymmetricEss
- Specified by:
applyPower
in interfaceManagedSinglePhaseEss
- Parameters:
activePowerL1
- the active power set-point for L1reactivePowerL1
- the reactive power set-point for L1activePowerL2
- the active power set-point for L2reactivePowerL2
- the reactive power set-point for L2activePowerL3
- the active power set-point for L3reactivePowerL3
- the reactive power set-point for L3- Throws:
OpenemsError.OpenemsNamedException
- on error
-
defineModbusProtocol
Description copied from class:AbstractOpenemsModbusComponent
Defines the Modbus protocol.- Specified by:
defineModbusProtocol
in classAbstractOpenemsModbusComponent
- Returns:
- the ModbusProtocol
- Throws:
OpenemsException
- on error
-
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
-
getPower
Description copied from interface:ManagedSymmetricEss
Gets an instance of the 'Power' class, which allows to set limitations to Active and Reactive Power.- Specified by:
getPower
in interfaceManagedSymmetricEss
- Returns:
- the Power instance
-
getPowerPrecision
public int getPowerPrecision()Description copied from interface:ManagedSymmetricEss
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 interfaceManagedSymmetricEss
- Returns:
- the power precision
-
getPhase
Description copied from interface:SinglePhaseEss
Gets the Phase this ESS is connected to.- Specified by:
getPhase
in interfaceSinglePhaseEss
- Returns:
- the
SinglePhase
-