Actions Reference
Actions are normalized for the agent. The simulator converts them to physical power or energy using capacity, nominal power, asset limits and seconds_per_time_step.
General Contract
Rule |
Contract |
|---|---|
Bounds |
Read from |
Storage actions |
Positive charges, negative discharges. |
EV charger actions |
Positive charges the EV, negative discharges/V2G if enabled. |
Deferrable actions |
Binary start command. |
Escalator actions |
Three states: standby ( |
Internal energy |
Applied step energy is |
Power limits |
Device ratings and service limits are |
Constraints |
Charging/electrical service constraints may clip actions before application. |
Flat Actions
Action |
Typical range |
Entity |
Effect |
|---|---|---|---|
|
|
building |
Negative controls cooling, positive controls heating. Mutually exclusive with separate cooling/heating actions. |
|
|
building |
Controls cooling demand/setpoint in dynamic buildings. |
|
|
building |
Controls heating demand/setpoint in dynamic buildings. |
|
|
building |
Charge/discharge cooling thermal storage. |
|
|
building |
Charge/discharge heating thermal storage. |
|
|
building |
Charge/discharge domestic hot water storage. |
|
|
building |
Controls the building BESS. |
|
|
charger |
Controls the EV connected to a charger. Negative bound depends on |
|
|
appliance |
Binary start command ( |
|
|
escalator |
Selects standby, slow or normal operation. |
Physical Conversion
BESS action:
energy_kwh_step = action * nominal_power_kw * seconds_per_time_step / 3600
EV charger action:
charge_energy_kwh_step = positive_action * max_charging_power_kw * seconds_per_time_step / 3600
discharge_energy_kwh_step = negative_action * max_discharging_power_kw * seconds_per_time_step / 3600
After conversion, the asset applies SOC, capacity, efficiency, power curves and service constraints.
Deferrable Appliance Start Logic
A cycle starts only when all conditions hold:
Condition |
Rule |
|---|---|
Pending cycle |
A cycle with state |
Action threshold |
|
Start window |
|
Deadline |
|
Episode window |
The full cycle fits inside the current episode. |
If the agent tries too late, the start is rejected. If latest_start_time_step passes with no valid start, the cycle is marked as missed.
Controller recommendation: use deferrable_appliance_can_start as the readiness signal and emit 1.0 only when a start is intended.
Escalator Control
An escalator action is continuous only for agent compatibility; it is discretized
into three operating states. standby consumes standby power and leaves any
passenger demand above service_threshold_passengers unserved. Both slow and
normal serve aggregate demand. available=0 forces standby. This model does
not simulate passenger queues or capacity limits.
Entity Actions
Table |
Feature |
Maps to |
|---|---|---|
|
building action names |
|
|
|
One row per active charger. |
|
|
One row per active appliance. |
Table payload:
actions = {
"tables": {
"building": [[0.0, 0.2, -0.1]],
"charger": [[1.0], [0.0]],
"deferrable_appliance": [[1.0]]
}
}
Map payload:
actions = {
"map": {
"building:Building_1": {"electrical_storage": 0.1},
"charger:Building_1:AC001": {"electric_vehicle_storage": 0.7},
"deferrable_appliance:Building_1:washer_1": {"start": 1.0}
}
}
Step Ordering
The simplified building action order is:
Resolve active/inactive actions.
Apply charging/electrical constraints to EVs and BESS.
Update dynamic demands when applicable.
Update HVAC devices and thermal storage.
Update non-shiftable load.
Update BESS.
Update EV chargers.
Update deferrable appliances.
Update escalators.
Update net balance, rewards, KPIs and observations.
When electrical_storage_action < 0, BESS discharge is prioritized before other electrical consumption.