Package io.openems.edge.simulator.app
Class SimulatorApp
- java.lang.Object
-
- io.openems.edge.common.component.AbstractOpenemsComponent
-
- io.openems.edge.simulator.app.SimulatorApp
-
- All Implemented Interfaces:
CommonTimedataService
,ClockProvider
,OpenemsComponent
,JsonApi
,SimulatorDatasource
,Timedata
,org.osgi.service.event.EventHandler
public class SimulatorApp extends AbstractOpenemsComponent implements SimulatorDatasource, ClockProvider, OpenemsComponent, JsonApi, org.osgi.service.event.EventHandler, Timedata
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SimulatorApp.ChannelId
-
Field Summary
Fields Modifier and Type Field Description static java.lang.String
SINGLETON_COMPONENT_ID
static java.lang.String
SINGLETON_SERVICE_PID
-
Constructor Summary
Constructors Constructor Description SimulatorApp()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
deactivate()
Handles @Deactivate of implementations.java.time.Clock
getClock()
Gets the Clock - real or mocked likeTimeLeapClock
.java.util.Set<java.lang.String>
getKeys()
Gets the available keys.java.util.concurrent.CompletableFuture<java.util.Optional<java.lang.Object>>
getLatestValue(ChannelAddress channelAddress)
Gets the latest known value for the givenChannelAddress
.int
getTimeDelta()
Returns the delta between two values in seconds.<T> T
getValue(OpenemsType type, ChannelAddress channelAddress)
Gets the value for the given key (channelId) in the given type.void
handleEvent(org.osgi.service.event.Event event)
java.util.concurrent.CompletableFuture<? extends JsonrpcResponseSuccess>
handleJsonrpcRequest(User user, JsonrpcRequest request)
Handles a JSON-RPC Request.java.util.SortedMap<java.time.ZonedDateTime,java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement>>
queryHistoricData(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels, Resolution resolution)
Queries historic data.java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement>
queryHistoricEnergy(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels)
Queries historic energy.java.util.SortedMap<java.time.ZonedDateTime,java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement>>
queryHistoricEnergyPerPeriod(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels, Resolution resolution)
Queries historic energy per period.-
Methods inherited from class io.openems.edge.common.component.AbstractOpenemsComponent
_channel, activate, activate, addChannel, addChannels, addChannels, alias, channels, getComponentContext, id, isEnabled, logDebug, logError, logInfo, logWarn, modified, 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.common.timedata.CommonTimedataService
handleQueryHistoricTimeseriesExportXlxsRequest, queryHistoricData
-
Methods inherited from interface io.openems.edge.common.component.OpenemsComponent
_channel, _getChannelAs, alias, channel, channel, channels, debugLog, getComponentContext, getState, getStateChannel, hasFaults, id, isEnabled, serviceFactoryPid, servicePid
-
-
-
-
Field Detail
-
SINGLETON_SERVICE_PID
public static final java.lang.String SINGLETON_SERVICE_PID
- See Also:
- Constant Field Values
-
SINGLETON_COMPONENT_ID
public static final java.lang.String SINGLETON_COMPONENT_ID
- See Also:
- Constant Field Values
-
-
Method Detail
-
deactivate
protected void deactivate()
Description copied from class:AbstractOpenemsComponent
Handles @Deactivate of implementations. Prints log output.- Overrides:
deactivate
in classAbstractOpenemsComponent
-
handleJsonrpcRequest
public java.util.concurrent.CompletableFuture<? extends JsonrpcResponseSuccess> handleJsonrpcRequest(User user, JsonrpcRequest request) throws OpenemsError.OpenemsNamedException
Description copied from interface:JsonApi
Handles a JSON-RPC Request.- Specified by:
handleJsonrpcRequest
in interfaceJsonApi
- Parameters:
user
- the authenticatedUser
request
- the JSON-RPC Request- Returns:
- a Future JSON-RPC Success Response; null response results in a OpenemsError.JSONRPC_UNHANDLED_METHOD
- Throws:
OpenemsError.OpenemsNamedException
- on error
-
handleEvent
public void handleEvent(org.osgi.service.event.Event event)
- Specified by:
handleEvent
in interfaceorg.osgi.service.event.EventHandler
-
getClock
public java.time.Clock getClock()
Description copied from interface:ClockProvider
Gets the Clock - real or mocked likeTimeLeapClock
.- Specified by:
getClock
in interfaceClockProvider
- Returns:
- the
Clock
-
getKeys
public java.util.Set<java.lang.String> getKeys()
Description copied from interface:SimulatorDatasource
Gets the available keys.- Specified by:
getKeys
in interfaceSimulatorDatasource
- Returns:
- the Channel-Id
-
getTimeDelta
public int getTimeDelta()
Description copied from interface:SimulatorDatasource
Returns the delta between two values in seconds.- Specified by:
getTimeDelta
in interfaceSimulatorDatasource
- Returns:
- the delta in seconds
-
getValue
public <T> T getValue(OpenemsType type, ChannelAddress channelAddress)
Description copied from interface:SimulatorDatasource
Gets the value for the given key (channelId) in the given type.- Specified by:
getValue
in interfaceSimulatorDatasource
- Type Parameters:
T
- the type- Parameters:
type
- the expected typechannelAddress
- the Channel-Address- Returns:
- the value, possibly null
-
queryHistoricData
public java.util.SortedMap<java.time.ZonedDateTime,java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement>> queryHistoricData(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels, Resolution resolution) throws OpenemsError.OpenemsNamedException
Description copied from interface:CommonTimedataService
Queries historic data.- Specified by:
queryHistoricData
in interfaceCommonTimedataService
- Parameters:
edgeId
- the Edge-ID; or null query allfromDate
- the From-DatetoDate
- the To-Datechannels
- the Channelsresolution
- theResolution
- Returns:
- the query result
- Throws:
OpenemsError.OpenemsNamedException
-
queryHistoricEnergy
public java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement> queryHistoricEnergy(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels) throws OpenemsError.OpenemsNamedException
Description copied from interface:CommonTimedataService
Queries historic energy.- Specified by:
queryHistoricEnergy
in interfaceCommonTimedataService
- Parameters:
edgeId
- the Edge-ID; or null query allfromDate
- the From-DatetoDate
- the To-Datechannels
- the Channels- Returns:
- the query result
- Throws:
OpenemsError.OpenemsNamedException
-
queryHistoricEnergyPerPeriod
public java.util.SortedMap<java.time.ZonedDateTime,java.util.SortedMap<ChannelAddress,com.google.gson.JsonElement>> queryHistoricEnergyPerPeriod(java.lang.String edgeId, java.time.ZonedDateTime fromDate, java.time.ZonedDateTime toDate, java.util.Set<ChannelAddress> channels, Resolution resolution) throws OpenemsError.OpenemsNamedException
Description copied from interface:CommonTimedataService
Queries historic energy per period.This is for use-cases where you want to get the energy for each period (with
Resolution
) per Channel, e.g. to visualize energy in a histogram chart. For each period the energy is calculated by subtracting first value of the period from the last value of the period.- Specified by:
queryHistoricEnergyPerPeriod
in interfaceCommonTimedataService
- Parameters:
edgeId
- the Edge-ID; or null query allfromDate
- the From-DatetoDate
- the To-Datechannels
- the Channelsresolution
- theResolution
- Returns:
- the query result
- Throws:
OpenemsError.OpenemsNamedException
-
getLatestValue
public java.util.concurrent.CompletableFuture<java.util.Optional<java.lang.Object>> getLatestValue(ChannelAddress channelAddress)
Description copied from interface:Timedata
Gets the latest known value for the givenChannelAddress
.- Specified by:
getLatestValue
in interfaceTimedata
- Parameters:
channelAddress
- the ChannelAddress to be queried- Returns:
- the latest known value or Empty
-
-