After BPT use-case selection and ChargeParameterDiscovery, the EV indicates support for Dynamic mode by including EVDynamicModeControl in its capabilities; the EVSE confirms by selecting Dynamic in the ScheduleExchangeRes (setting renegotiationRequested to false if parameters are accepted).
In the DynamicChargeLoopReq the EV reports its current state: remaining energy need, departure time, maximum charge and discharge power, and maximum charge and discharge energy; these values update each loop iteration and the EVSE should track changes to adjust setpoints accordingly.
The EVSE issues DynamicChargeLoopRes with EVSETargetActivePower (positive for charging, negative for discharging), EVSETargetActivePowerL2 and L3 for three-phase systems, and an optional EVSEPresentCurrentLimit; the EV is responsible for ramping to the setpoint within its own ramp-rate limits.
If grid conditions change between loop iterations (e.g., a frequency event), the EVSE updates the next DynamicChargeLoopRes setpoint; there is no separate out-of-band push mechanism — the EV drives the loop cadence.
When a significant parameter change occurs (e.g., departure time updated by the driver), the EVSE may set renegotiationRequested=true in the response, prompting the EV to restart from ChargeParameterDiscovery.
Terminate the dynamic loop by setting chargeProgress='Stop' in a PowerDeliveryReq; the EVSE must cease power delivery within the time defined in the specification before the EV can open contactors.
Known gotchas
In Dynamic mode, the EVSE bears responsibility for setpoint optimization (e.g., responding to OCPP 2.1 dispatch commands from the CSMS); the EV simply follows the EVSE setpoint — do not design the EV-side application to calculate grid-optimal schedules, as that is the EVSE/CSMS responsibility in this mode.
Dynamic mode requires the EVSE to maintain sub-second response logic to map incoming grid signals (frequency deviation, price signals) to DynamicChargeLoopRes setpoints; the loop cadence is EV-driven and is typically several seconds, so the EVSE must buffer the most recent grid signal between loop iterations.
Contrast with Scheduled mode: in ScheduledV2GControlMode, the EVSE provides a time-series schedule upfront and the EV follows it autonomously; Dynamic mode is appropriate when real-time optimization is needed but adds EVSE-side complexity.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp