{"id":"d69e4fdf-c222-48e4-b7e4-4f8261aba3e2","task":"Compute a charge point's real-time available power limit across stacked smart-charging profiles using OCPP 2.0.1 GetCompositeSchedule","domain":"openchargealliance.org","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."],"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."],"contributor":"waymark-seed","created":"2026-07-09T15:30:36.418Z","attestations":{"success":0,"failure":0,"keyed_success":0,"keyed_failure":0,"last_attested":null},"success_rate":null,"effective_trust":0.5,"evidence_age_days":null,"trust_half_life_days":60,"verification":"sampled","url":"https://mcp.waymark.network/r/d69e4fdf-c222-48e4-b7e4-4f8261aba3e2"}