Package io.openems.edge.meter.sunspec
Class AbstractSunSpecMeter
java.lang.Object
io.openems.edge.common.component.AbstractOpenemsComponent
io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
io.openems.edge.bridge.modbus.sunspec.AbstractOpenemsSunSpecComponent
io.openems.edge.meter.sunspec.AbstractSunSpecMeter
- All Implemented Interfaces:
ModbusComponent
,OpenemsComponent
,ElectricityMeter
- Direct Known Subclasses:
SolarEdgeGridMeterImpl
public abstract class AbstractSunSpecMeter
extends AbstractOpenemsSunSpecComponent
implements ElectricityMeter, 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.meter.api.ElectricityMeter
ElectricityMeter.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
-
Constructor Summary
ConstructorDescriptionAbstractSunSpecMeter
(Map<SunSpecModel, Priority> activeModels, ChannelId[] firstInitialChannelIds, ChannelId[]... furtherInitialChannelIds) -
Method Summary
Modifier and TypeMethodDescriptionprotected boolean
activate
(org.osgi.service.component.ComponentContext context, String id, String alias, boolean enabled, int unitId, org.osgi.service.cm.ConfigurationAdmin cm, String modbusReference, String modbusId, int readFromCommonBlockNo) Make sure to call this method from the inheriting OSGi Component.protected void
Make sure to call this method from the inheriting OSGi Component.debugLog()
Gets some output that is suitable for a continuous Debug log.getSunSpecChannel
(SunSpecPoint point) Get the Channel for the given Point.protected <T extends Channel<?>>
TGet the Channel for the given Point or throw an error if it is not available.protected void
This method is called after the SunSpec initialization was completed.Methods inherited from class io.openems.edge.bridge.modbus.sunspec.AbstractOpenemsSunSpecComponent
activate, addBlock, defineModbusProtocol, generateElementToChannelConverter, getSunSpecModel, isSunSpecInitializationCompleted, mapFirstPointToChannel, preprocessModbusElements
Methods inherited from class io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
activate, activate, getBridgeModbus, getModbusProtocol, getUnitId, m, m, m, m, m, m, modified, modified, retryModbusCommunication, setModbus, 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.meter.api.ElectricityMeter
_setActiveConsumptionEnergy, _setActiveConsumptionEnergy, _setActiveConsumptionEnergyL1, _setActiveConsumptionEnergyL1, _setActiveConsumptionEnergyL2, _setActiveConsumptionEnergyL2, _setActiveConsumptionEnergyL3, _setActiveConsumptionEnergyL3, _setActivePower, _setActivePower, _setActivePowerL1, _setActivePowerL1, _setActivePowerL2, _setActivePowerL2, _setActivePowerL3, _setActivePowerL3, _setActiveProductionEnergy, _setActiveProductionEnergy, _setActiveProductionEnergyL1, _setActiveProductionEnergyL1, _setActiveProductionEnergyL2, _setActiveProductionEnergyL2, _setActiveProductionEnergyL3, _setActiveProductionEnergyL3, _setCurrent, _setCurrent, _setCurrentL1, _setCurrentL1, _setCurrentL2, _setCurrentL2, _setCurrentL3, _setCurrentL3, _setFrequency, _setFrequency, _setReactivePower, _setReactivePower, _setReactivePowerL1, _setReactivePowerL1, _setReactivePowerL2, _setReactivePowerL2, _setReactivePowerL3, _setReactivePowerL3, _setVoltage, _setVoltage, _setVoltageL1, _setVoltageL1, _setVoltageL2, _setVoltageL2, _setVoltageL3, _setVoltageL3, getActiveConsumptionEnergy, getActiveConsumptionEnergyChannel, getActiveConsumptionEnergyL1, getActiveConsumptionEnergyL1Channel, getActiveConsumptionEnergyL2, getActiveConsumptionEnergyL2Channel, getActiveConsumptionEnergyL3, getActiveConsumptionEnergyL3Channel, getActivePower, getActivePowerChannel, getActivePowerL1, getActivePowerL1Channel, getActivePowerL2, getActivePowerL2Channel, getActivePowerL3, getActivePowerL3Channel, getActiveProductionEnergy, getActiveProductionEnergyChannel, getActiveProductionEnergyL1, getActiveProductionEnergyL1Channel, getActiveProductionEnergyL2, getActiveProductionEnergyL2Channel, getActiveProductionEnergyL3, getActiveProductionEnergyL3Channel, getCurrent, getCurrentChannel, getCurrentL1, getCurrentL1Channel, getCurrentL2, getCurrentL2Channel, getCurrentL3, getCurrentL3Channel, getFrequency, getFrequencyChannel, getMeterType, getReactivePower, getReactivePowerChannel, getReactivePowerL1, getReactivePowerL1Channel, getReactivePowerL2, getReactivePowerL2Channel, getReactivePowerL3, getReactivePowerL3Channel, getVoltage, getVoltageChannel, getVoltageL1, getVoltageL1Channel, getVoltageL2, getVoltageL2Channel, getVoltageL3, getVoltageL3Channel, isManaged
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
-
Constructor Details
-
AbstractSunSpecMeter
public AbstractSunSpecMeter(Map<SunSpecModel, Priority> activeModels, ChannelId[] firstInitialChannelIds, ChannelId[]... furtherInitialChannelIds) throws OpenemsException- Throws:
OpenemsException
-
-
Method Details
-
activate
protected boolean activate(org.osgi.service.component.ComponentContext context, String id, String alias, boolean enabled, int unitId, org.osgi.service.cm.ConfigurationAdmin cm, String modbusReference, String modbusId, int readFromCommonBlockNo) throws OpenemsException Make sure to call this method from the inheriting OSGi Component.- Overrides:
activate
in classAbstractOpenemsSunSpecComponent
- Throws:
OpenemsException
- on error
-
deactivate
protected void deactivate()Make sure to call this method from the inheriting OSGi Component.- Overrides:
deactivate
in classAbstractOpenemsModbusComponent
-
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
-
onSunSpecInitializationCompleted
protected void onSunSpecInitializationCompleted()Description copied from class:AbstractOpenemsSunSpecComponent
This method is called after the SunSpec initialization was completed.The purpose of this method is to add mappings between SunSpec Channel-Points to OpenEMS Nature Channels.
- Specified by:
onSunSpecInitializationCompleted
in classAbstractOpenemsSunSpecComponent
-
getSunSpecChannel
Description copied from class:AbstractOpenemsSunSpecComponent
Get the Channel for the given Point.- Overrides:
getSunSpecChannel
in classAbstractOpenemsSunSpecComponent
- Type Parameters:
T
- the Channel type- Parameters:
point
- the SunSpec Point- Returns:
- the optional Channel
-
getSunSpecChannelOrError
protected <T extends Channel<?>> T getSunSpecChannelOrError(SunSpecPoint point) throws OpenemsException Description copied from class:AbstractOpenemsSunSpecComponent
Get the Channel for the given Point or throw an error if it is not available.- Overrides:
getSunSpecChannelOrError
in classAbstractOpenemsSunSpecComponent
- Type Parameters:
T
- the Channel type- Parameters:
point
- the SunSpec Point- Returns:
- the optional Channel
- Throws:
OpenemsException
- if Channel is not available
-