Class CalculateEnergyFromPower
java.lang.Object
io.openems.edge.timedata.api.utils.CalculateEnergyFromPower
Calculates the value for energy channels in [Wh_Σ] from Power values in [W].
This is commonly used by SymmetricEss or ElectricityMeter to calculate energy channels from power channels. To use it, you have to:
- Make your OpenemsComponent implement
TimedataProvider
:public class ComponentImpl extends AbstractOpenemsComponent implements OpenemsComponent, TimedataProvider, EventHandler {
- Add a @Reference to
Timedata
. It's a good idea to make this reference 'dynamic', otherwise your component will not start if there is no Timedata service configured.@Reference(policy = ReferencePolicy.DYNAMIC, policyOption = ReferencePolicyOption.GREEDY, cardinality = ReferenceCardinality.OPTIONAL) private volatile Timedata timedata = null;
- Add a private instance of
CalculateEnergyFromPower
for each energy channel:private final CalculateEnergyFromPower calculateEnergy = new CalculateEnergyFromPower(this, SymmetricEss.ChannelId.ACTIVE_CHARGE_ENERGY);
- Call the
update(Integer)
method on each cycle - e.g. via anEventHandler
.this.calculateEnergy.update(power);
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoid
setBaseEnergyManually
(long baseCumulatedEnergy) Set baseEnergy manually.void
Calculate the Energy and update the Channel.
-
Constructor Details
-
CalculateEnergyFromPower
-
-
Method Details
-
update
Calculate the Energy and update the Channel.- Parameters:
power
- the latest power value in [W]
-
setBaseEnergyManually
public void setBaseEnergyManually(long baseCumulatedEnergy) Set baseEnergy manually.Set baseEnergy manually invalid input: '&' go to CALCULATE_ENERGY_OPERATION
- Parameters:
baseCumulatedEnergy
- baseCumulatedEnergy
-