Package io.openems.edge.goodwe.gridmeter
Class GoodWeGridMeterImpl
java.lang.Object
io.openems.edge.common.component.AbstractOpenemsComponent
io.openems.edge.bridge.modbus.api.AbstractOpenemsModbusComponent
io.openems.edge.goodwe.gridmeter.GoodWeGridMeterImpl
- All Implemented Interfaces:
ModbusComponent
,OpenemsComponent
,ModbusSlave
,GoodWeGridMeter
,ElectricityMeter
,TimedataProvider
,org.osgi.service.event.EventHandler
public class GoodWeGridMeterImpl
extends AbstractOpenemsModbusComponent
implements GoodWeGridMeter, ElectricityMeter, ModbusComponent, OpenemsComponent, TimedataProvider, org.osgi.service.event.EventHandler, ModbusSlave
-
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.goodwe.gridmeter.GoodWeGridMeter
GoodWeGridMeter.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
-
Method Summary
Modifier and TypeMethodDescriptionprotected static Integer
calculateRatio
(int valueA, int valueB) Calculate a ratio value.protected void
convertMeterConnectStatus
(Integer value) protected void
Handles @Deactivate of implementations.debugLog()
Gets some output that is suitable for a continuous Debug log.protected ModbusProtocol
Defines the Modbus protocol.Gets the type of this Meter.getModbusSlaveTable
(AccessMode accessMode) Gets the Modbus-Slave-Table for this OpenEMS-Component.protected static Integer
getPhaseConnectionValue
(Phase phase, int value) Get the connection value depending on the phase.Gets theTimedata
service.void
handleEvent
(org.osgi.service.event.Event event) protected void
Set channel for external meter if configured.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.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, getReactivePower, getReactivePowerChannel, getReactivePowerL1, getReactivePowerL1Channel, getReactivePowerL2, getReactivePowerL2Channel, getReactivePowerL3, getReactivePowerL3Channel, getVoltage, getVoltageChannel, getVoltageL1, getVoltageL1Channel, getVoltageL2, getVoltageL2Channel, getVoltageL3, getVoltageL3Channel, isManaged
Methods inherited from interface io.openems.edge.goodwe.gridmeter.GoodWeGridMeter
getExternalMeterRatioChannel, getHasNoMeter, getHasNoMeterChannel
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
-
Constructor Details
-
GoodWeGridMeterImpl
public GoodWeGridMeterImpl()
-
-
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
-
defineModbusProtocol
Description copied from class:AbstractOpenemsModbusComponent
Defines the Modbus protocol.- Specified by:
defineModbusProtocol
in classAbstractOpenemsModbusComponent
- Returns:
- the ModbusProtocol
- Throws:
OpenemsException
- on error
-
handleEvent
public void handleEvent(org.osgi.service.event.Event event) - Specified by:
handleEvent
in interfaceorg.osgi.service.event.EventHandler
-
setExternalMeterValue
protected void setExternalMeterValue()Set channel for external meter if configured. -
calculateRatio
Calculate a ratio value.Ignore impossible values.
- Parameters:
valueA
- value A e.g. 3000AvalueB
- value B e.g. 5A- Returns:
- ratio value e.g. 600
-
convertMeterConnectStatus
-
getPhaseConnectionValue
Get the connection value depending on the phase.The information of each phase connection is part of a hex. The part of the given phase will be returned.
For example: 0x0124 means Phase R connect incorrectly,Phase S connect reverse, Phase T connect correctly
- Parameters:
phase
- Phasevalue
- Original value with all phase information- Returns:
- connection information of the given phase
-
getMeterType
Description copied from interface:ElectricityMeter
Gets the type of this Meter.- Specified by:
getMeterType
in interfaceElectricityMeter
- Returns:
- the
MeterType
-
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
-
getTimedata
Description copied from interface:TimedataProvider
Gets theTimedata
service.- Specified by:
getTimedata
in interfaceTimedataProvider
- Returns:
- the service or null if it is not (yet) available.
-
getModbusSlaveTable
Description copied from interface:ModbusSlave
Gets the Modbus-Slave-Table for this OpenEMS-Component.- Specified by:
getModbusSlaveTable
in interfaceModbusSlave
- Parameters:
accessMode
- filters the Modbus-Records that should be shown- Returns:
- the Modbus-Slave-Table
-