RIAPS Energy Management App
The overall application architecture can be seen in the following figure:
The various message types and their expected formats are listed here. They are also documented as comments within the source code files.
-
Manager to Device Component : list of strings denoting the quantities to be queried.
-
ChargerQry : Quantities can be in {'all', 'energyConsumed' , 'peakPower' , 'rollingPowerAvg'}. For eg.
['all']
.- energyConsumed : Total energy consumed by the charger in the time duration in kWh.
- peakPower : Maximum real power consumed in the time duration in kW.
- rollingPowerAvg : Average power consumed in the time duration in kW.
-
BuildingQry : Quantities can be in {'all', 'TotalPower', 'HVAC', 'Temp', 'Lighting'}. For eg.
['TotalPower', 'HVAC', 'Temp']
. Details about the quantities can be found inexcel_config.yaml
in theconfig
directory.- TotalPower : Total power consumed by each building unit in kW. The response is coded as "BuildingUnit_TotalPower". For e.g. "HT_TotalPower" for HillTop unit.
- HVAC : Total power consumed by the HVAC in each subunit of each building unit in kW. The response is coded as "BuildingUnit_Subunit_HVAC_Power". For e.g. "HT_HTG_M10:RTU3_HVACPower" for HillTop G subunit within HillTop unit.
- Temp : Outside air temperature and average inside temperature data of building units in F. For e.g. "OutsideAirTemp", "HT_HTE_AvgTemp1" for Hilltop E average temperature.
- Lighting : Total power consumed by the Lighting in each subunit of each building unit in kW. The response is coded as "BuildingUnit_Subunit_LightingPower". For e.g. "HT_HTG_2L2:M2:2L2_LightingPower" for HillTop G subunit within HillTop unit.
-
BESSQry : Quantities can be in {'Rbess','Cbattery','SoCl','SoCu','SoCend','SoC'}. For eg.
['Rbess','Cbattery','SoCl','SoCu','SoCend','SoC']
. Details about the quantities and valuesused can be found inremapp.depl
.- Rbess : The power rating of the BESS in kW.
- Cbattery : The battery capacity in kW.
- SoCl : The lower bound of State-of-Charge.
- SoCu : The upper bound of State-of-Charge.
- SoCend : The end State-of-Charge.
-
-
Device Component to Manager : list of dictionaries containing {qty : value} pairs and a datetime.
- ChargerAns
- BuildingAns
- BESSAns
-
Manager to Predictive : dictionary {'Date': str, 'aggregatedPower' : float}
- ChargerUpdateData
- BuildingUpdateData
-
Predictive to Manager : list of predicted power values for future time steps.
- ChargerPrediction
- BuildingPrediction
-
Manager to Coordinator : power query to the Coordinator component.
- PowerQry : tuple (reqID,reqKind,reqTime,reqPower,currPower), where
reqID : ID of the individual unit requesting power
reqKind : type of load {'BU' - Builings, 'EV' - EV Chargers, 'BESS" - Battery Units}
reqTime : the current time step
reqPower : the predicted power consumption for some future time horizon
or
{qty: value} (for BESS) : dictionary of attributes specific to the battery
currPower : the power consumption at the current time step
- PowerQry : tuple (reqID,reqKind,reqTime,reqPower,currPower), where
-
Coordinator to Manager : dispatched power from Coordinator
- PowerAns : tuple (type, powerGranted) , where
type : type of load {'BU' - Builings, 'EV' - EV Chargers, 'BESS" - Battery Units}
powerGranted : list of power values for the time horizon.
- PowerAns : tuple (type, powerGranted) , where
-
Coordinator to Logger : datastream to log in to influxdb.
- LogData : a list of tuples.
Each tuple is of the format (tags, measurement, timestamps, values), where
tags : dictionary containing the tag column names and their values
measurement : name of the measurement (table in InfluxDB) where the values will be stored
timestamps : list of timestamps corresponding to each value
values: list of dictionaries where each dictionary is {column_name : value}
- LogData : a list of tuples.
Each tuple is of the format (tags, measurement, timestamps, values), where
InfluxDB is used as the data repository for the application. In total there are 5 database tables used to store time-series data. The table names, column names are specified in influxdb_config.yaml
in the config
directory.
- Power consumption at the current timestep
Actual Power |
---|
time (timestamp) |
type (string) |
ID (string) |
power (float) |
- Predicted power consumption for a future time horizon
Predicted Power |
---|
time (timestamp) |
type (string) |
ID (string) |
power (float) |
- Power to be dispatched as calculated by the coordinator for the entire time horizon
Dispatched Power |
---|
time (timestamp) |
type (string) |
ID (string) |
power (float) |
- Total power available from the grid for the entire time horizon
Available Power |
---|
time (timestamp) |
power (float) |
- Battery State-of-Charge
Battery SoC |
---|
time (timestamp) |
ID (string) |
SoC (float) |
=======