Two approaches to pause and resume charging during a session

This guide describes two approved methods for pausing and resuming a charging session: adjustments to MaxCurrent and explicit pause/resume commands. Use only one method per session. The commands approach is preferred for clarity and for chargers that may be offline.

Key principles

Be explicit. Select a single control method for each session. Combining MaxCurrent adjustments with pause/resume commands may cause unpredictable behaviour.

Prefer commands. Explicit pause and resume commands convey intent directly and are therefore the most robust option, especially when a charger is offline.

Verify state before acting. Read the charger state and session information before sending changes. Avoid minor corrections and frequent rapid updates.

Wait for a session identifier. Do not send changes before the session is established (SessionIdentifier reported).

Recommended way of doing start/stop is with commands, but it is also possible with MaxCurrent

Approach 1: Using MaxCurrent

Adjusting MaxCurrent throttles the available current. Use this method when you need to limit the current smoothly or when command-based control is unavailable.

Guidelines and constraints

  • Pause: set MaxCurrent to less than 6 A (< 6 A). This causes the charger to stop delivering current.
  • Resume: set MaxCurrent to 6 A or more (≥ 6 A). This allows charging to start or continue.
  • Do not send MaxCurrent adjustments before the session exists; the charger evaluates MaxCurrent at the time the SessionIdentifier is reported.
  • Compare the desired value against both:
    • MaxCurrent (the requested value) and
    • ChargeCurrentSet (the value the charger reports or has allocated).
  • Apply a threshold to prevent sending negligible updates. Our operational threshold is 0.10 A; choose this value or larger to reduce unnecessary updates.
  • Avoid frequent updates. Small timing differences (milliseconds) are normal and do not require correction.

Offline behaviour

Updating the Device Twin or equivalent cloud representation commonly succeeds while the charger is offline, but the charger may not acknowledge or report the new ChargeCurrentSet. Design the system to tolerate this eventual consistency.

Approach 2: Using pause/resume commands (Recommended)

Use explicit commands to pause or resume charging when you require a clear state transition. Commands communicate intent directly to the charger and are preferable when precise control is needed.

Commands and preconditions

  • Pause: send StopChargingFinal (506). Only issue this command when the charger is actively charging (ChargerOperationMode = 3).
  • Resume: send ResumeCharging (507). Issue this command only when charging is paused with a final stop active (ChargerOperationMode = 5 and FinalStopActive = 1).
🚧

Operational notes

ChargerOperationMode = 5 and FinalStopActive = 0 commonly indicates the vehicle has ceased drawing current naturally; do not send ResumeCharging in that state without confirming the reason for the stop.

If a charger is offline, sending a command will typically fail immediately. Where commands are used, implement appropriate retry or fallback logic if immediate execution is required when the charger is offline.

Recommendation

Prefer pause/resume commands for consistency and determinism. Use MaxCurrent adjustments only when commands are unavailable or when you want to change current gradually rather than triggering an explicit state change. If using MaxCurrent adjustments, ensure your system:

  • Waits for and reads the SessionIdentifier before acting.
  • Compares requested and reported values (MaxCurrent vs ChargeCurrentSet).
  • Applies a sensible threshold (≥ 0.10 A) before issuing updates.
  • Rates-limits updates to avoid rapid toggling.

Decision flow

  1. Is the charger reachable and accepting commands?

    a. Yes: prefer StopChargingFinal / ResumeCharging.

    b. No: consider MaxCurrent adjustments, noting that the charger may not report changes.

  2. Has a session been created (SessionIdentifier present)?

    a. No: wait do not send adjustments.

    b. Yes: proceed with the chosen method.

  3. If using MaxCurrent: send updates only when the change exceeds the threshold and ChargeCurrentSet differs meaningfully from MaxCurrent.

  4. If using commands: verify ChargerOperationMode and FinalStopActive before sending.