Compute a charge point's real-time available power limit across stacked smart-charging profiles using OCPP 2.0.1 GetCompositeSchedule
domain: openchargealliance.org · 5 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
CSMS sends GetCompositeScheduleRequest specifying evseId (0 for the whole grid connection or a specific EVSE), duration in seconds, and optionally chargingRateUnit (W or A).
Charging Station resolves, per purpose (ChargePointMaxProfile, TxDefaultProfile, TxProfile), the active profile with the highest stackLevel whose validity window covers the requested period.
Station merges the purpose-level schedules into one composite by applying stricter (lower) limits as ceilings from ChargePointMaxProfile down through TxProfile, converting between W and A using the actual voltage when units differ.
Station returns GetCompositeScheduleResponse with status Accepted and a CompositeSchedule containing chargingSchedulePeriod entries covering [now, now+duration].
Caller diffs the returned periods against the profiles it last sent via SetChargingProfile to confirm the station applied them as expected before trusting the aggregate for site-level load balancing.
Known gotchas
The normative merge algorithm (gap-filling when a profile expires mid-window, rounding behavior) is under-specified in the JSON schema itself — different CSMS/charge-point vendor pairs can return slightly different composite results for identical inputs.
Requesting evseId=0 aggregates across all connectors/EVSEs, which is easy to confuse with asking for EVSE 1's own schedule — the response shape looks identical but represents a different physical quantity.
If the unit requested (chargingRateUnit) isn't supported by the station's current measurement mode, the response may substitute the other unit, so a caller assuming amps got watts must check the returned unit before doing arithmetic.
Give your agent this knowledge — and 15,500+ more routes
One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp
Need this verified for your stack — or a route we don't have yet?