Priority levels
- Priorities range from 0 (lowest) to 10 (highest), following the same convention as OCPP charging-profile stack levels.
- Each target (a location, or a charger connector) can have up to 11
profiles — one per priority level — each with its own
[startTime, endTime)window. - Submitting a new profile at a priority that already exists for that target replaces the existing one.
Effective limit
At any given moment, the effective limit is thelimitKw of the
highest-priority profile whose window is currently active
(startTime <= now < endTime).
If no profile is currently active:
- Locations fall back to
permanentLimitKw(set viaPUT /locations/{locationId}/limit). - Chargers have no fallback — outside an active window, the connector is not priority-locked and is managed by normal load management.
Automatic apply/revert
Profiles are applied and reverted automatically at theirstartTime/endTime
— no further API calls are required once a profile is created.
Profile records are never deleted when they expire, so the full history of
profiles remains queryable via GET /locations/{locationId}/limits and
GET /organizations/limits.
Status values
Every profile reports a computedstatus:
| Status | Meaning |
|---|---|
SCHEDULED | now < startTime — not yet active |
ACTIVE | startTime <= now < endTime |
EXPIRED | now >= endTime |
Charger-level locks
POST /chargers/{controllerUuid}/connectors/{connectorId}/schedules creates a
profile for a single connector. While ACTIVE, the connector is
priority-locked: it is excluded from normal load management and runs
unthrottled up to limitKw — it is only throttled (never below its 6A
minimum) as a last resort if the location as a whole is over its grid limit.
Clusters
A cluster groups multiple locations under a single optional kW cap. When the cluster’s combined draw would exceedlimitKw, each member location’s effective limit
is scaled down proportionally:
POST /clusters/{clusterId}/schedules applies one LimitProfileRequest to
every location in the cluster at once.
