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
MaxCurrentAdjusting 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
MaxCurrentto less than 6 A (< 6 A). This causes the charger to stop delivering current. - Resume: set
MaxCurrentto 6 A or more (≥ 6 A). This allows charging to start or continue. - Do not send
MaxCurrentadjustments before the session exists; the charger evaluatesMaxCurrentat the time the SessionIdentifier is reported. - Compare the desired value against both:
MaxCurrent(the requested value) andChargeCurrentSet(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 = 5andFinalStopActive = 1).
Operational notes
ChargerOperationMode = 5andFinalStopActive = 0commonly indicates the vehicle has ceased drawing current naturally; do not sendResumeChargingin 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
SessionIdentifierbefore 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
-
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.
-
Has a session been created (SessionIdentifier present)?
a. No: wait do not send adjustments.
b. Yes: proceed with the chosen method.
-
If using
MaxCurrent: send updates only when the change exceeds the threshold andChargeCurrentSetdiffers meaningfully fromMaxCurrent. -
If using commands: verify
ChargerOperationModeandFinalStopActivebefore sending.
Updated 1 day ago
