Arcbound FieldThe EVSE DirectorySubscribe
← Learn

Primer 02 · ~10 minFree

Reading OCPP StatusNotification

Faulted, Unavailable, SuspendedEVSE — extract errorCode and vendor strings without drowning in the CSMS.

CSMS dashboards drown techs in charts. The useful artifact is usually a StatusNotification (and neighbors: Heartbeat, BootNotification, Authorize, StartTransaction). This primer teaches you to extract a field branch—not to memorize the OCPP PDF.

The status words that matter

  • Available / Preparing / Charging / Finishing / Reserved — healthy session path words (still verify energy with MeterValues when billing is in play).
  • Unavailable — intentional offline, maintenance, LMS lockout, or soft-offline. Not automatically “broken hardware.”
  • Faulted — protective or software latch. Capture errorCode and info / vendorErrorCode before you clear anything.
  • SuspendedEVSE — charger paused demand (thermal, LMS, power). Session may still be alive.
  • SuspendedEV — vehicle paused. Do not condemn the cabinet first.

If ops says “Faulted” and the CSMS shows Unavailable, fix the vocabulary before you open covers.

What to capture (every time)

  1. chargeBoxId / station identity
  2. connectorId (and physical stall paint—they can disagree)
  3. status + errorCode + vendor/info string
  4. timestamp vs last good session
  5. Whether Heartbeat is still alive

Alive Heartbeat + stuck Faulted ≠ “modem dead.” Dead Heartbeat + local HMI ready ≠ “power module.”

Common errorCode branches (field, not exhaustive)

errorCode / patternFirst branch
GroundFailureGF/RCD/PE — dry path, PE continuity
EVCommunicationErrorHandshake / latch / CP — CCS guide
OverCurrentFailure / PowerMeterFailureContactor, meter, or real overload — measure
UnderVoltage / OverVoltageSite power — site power
OtherError / InternalError + vendor stringRead the vendor string — that is the real ticket
Empty vendor + OtherErrorPresentation first; do not spam reset

Soft-offline vs Faulted

Soft-offline: CSMS red, local may look ready, Heartbeat gaps, Authorize failures. Fix DNS/TLS/CSMS URL/APN/identity—see free samples like NET-C01 and OCPP-F02.

Hard Faulted with GroundFailure before plug: do not start in the modem tray.

One soft-clear rule

Capture → clear external inhibits → one OEM clear. If it returns in under a minute with no plug, treat as hard latch and measure. Endless resets are how you burn a day and learn nothing.

Field action

Walk the free map: OCPP Faulted triage. Then open matching free protocol samples in the database.

MeterValues and the “it charged but…” ticket

Authorize and StartTransaction can succeed while MeterValues are missing or absurd. Billing fights look like “charger bugs.” Separate: did energy flow, did the meter talk, did the CSMS store it? Free guide: metering & payment.

BootNotification after board or modem work

After a swap, BootNotification may show a new firmware or identity. If chargeBoxIdentity or the CSMS URL drifted, you get soft-offline that looks random. Re-commission identity before you condemn the radio.

Connector ID lies

Paint says Stall 4; OCPP says connectorId 2. Dual-gun cabinets and remodeled pads do this constantly. Mis-map sends LOTO to the wrong door. Prove with a plug test while watching CSMS.

How Arcbound Field uses OCPP in entries

Free protocol samples are written around StatusNotification branches (Heartbeat, Authorize, CableCheck). Search OCPP or Faulted in the database. Pair with the long-form OCPP Faulted triage when you need the full decision tree.

Practice drill (15 minutes)

  1. Pull one real StatusNotification from a healthy session and one from a fault.
  2. Highlight status, errorCode, vendor string, connectorId.
  3. Write a one-sentence branch (network / ISO / GF / payment / site).
  4. Open the matching free sample and see if your branch matches rank-1.

Worked example: Authorize rejected

Status Available, Authorize.conf Invalid for one RFID, others OK. Branch is idTag/account—not isolation. Free sample path: OCPP-F03. If all tags fail and Heartbeat is dead, flip to network.

Worked example: Faulted with GroundFailure before plug

Do not start in CSMS URL settings. Protective branch first. GND-01 and OEM GF samples.

Export hygiene

When you export CSMS CSV/JSON for a ticket or Pro Q&A, scrub customer PII. Keep chargeBoxId, connectorId, timestamps, status, errorCode, vendor strings, and MeterValues summaries.

Connector vs charge point

OCPP can report status per connector. A dual-gun cabinet may show Connector 1 Available and Connector 2 Faulted at the same second. Ticket language that says “the charger is Faulted” without a connector ID forces you to guess. Pull connectorId every time.

MeterValues as supporting evidence

MeterValues are not StatusNotification, but they corroborate branches: zero current with “Charging” status is a mismatch; rising energy with “Available” is impossible and points to CSMS lag or wrong chargeBox mapping. Use them as secondary evidence, not as the first screen you open.

VendorErrorCode discipline

OEM vendor strings often carry the real branch. Capture them verbatim into the ticket and into The EVSE Directory search. Do not “translate” them into friendly English before you search—translation loses the string match.