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 to calculate SymmetricEss or SymmetricMeter ActiveChargePower and ActiveDischargePower from ActivePower 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
-
Constructor Details
-
CalculateEnergyFromPower
-
-
Method Details
-
update
Calculate the Energy and update the Channel.- Parameters:
power
- the latest power value in [W]
-