Examples
Set a schedule
The site as a whole should import 100kW from the grid during 10:00 to 12:00 on July 1st. How exactly the energy is absorbed is the controller’s job. Note that this defines all schedules forgrid and command type activePowerkW. It leaves all other schedules for other command type and asset combinations unaffected. For the grid specifically, a positive value implies import, a negative one export.
Clear schedules
This next example makes sure that there are no schedules of typeactivePowerkW for the asset grid. Setting schedules always means setting all of them at once for a given asset/type pair, you’re not adding new ones on top of others. That is why setting an empty array means no schedules at all for this asset/type pair. Again, this does not affect other command types.
Set multiple schedules
This example shows setting schedules for and upper and lower limit at the grid connection point. From 8:00 to 10:00, power at the grid connection should be between -20 (exporting 20kW) and 50 (importing 50kW). From 14:00 to 16:00 it should be between 50kW and 100kW – both limits refer to import because they are positive values. Using the example above that clearsactivePowerkW schedules for the grid will not affect the schedules defined here because they refer to different command types.
Get schedules
UseGET /sites/{siteId} to get all currently set schedules. You can also use GET /sites to get all schedules of all your sites.
Semantics
Each command targets an asset group or the grid with a list of time ranges. Each asset/type combination must appear at most once, duplicate pairs cause the entire schedule to be rejected. Schedules for the same asset/type combination must not overlap in time. At the time of writing you can only issue commands for complete groups of assets, not single ones – all BESS together for example, or all PV inverters.Supported commands
Grid
Grid services can be stacked on top of each other and on top of an active power setpoint.
Solar
BESS
activePowerkW and optimalSocPcnt are mutually exclusive. A request containing both will be rejected, sending an activePowerkW command overwrites any existing optimalSocPcnt and vice-versa. To make sure both commands have no schedules, you need to only clear one of them.