Take a charger in and out of service
OCPP functional block G — Availability.
Availability is how you tell a station "stop accepting new drivers" without switching it off. A faulty connector, a site closed for works, a unit awaiting a part — all of these want the station present and reporting, but not charging anyone.
Operative and inoperative#
Two states, and they mean exactly what they say:
- Operative — available for use.
- Inoperative — not available for new sessions.
curl -X POST https://api.flowion.io/v1/chargers/$CHARGER/commands/change-availability \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"connector_id": 1, "type": "inoperative"}'
connector_id is the station's own wire-level connector number, not a
UUID. 0 means the whole charger and every connector on it.
For a 2.x station you may target an EVSE instead, with evse_id. Omitting it
targets the whole charging station.
The answer that catches people out#
Three possible statuses:
| Status | Meaning |
|---|---|
accepted | Done, in effect now |
rejected | The station will not |
scheduled | Accepted, but not yet in effect |
scheduled means a transaction is running. The station will not interrupt a
driver mid-session, so it takes the change and applies it when the connector
becomes free.
This is correct behaviour and the usual answer when you take a busy connector
out of service. But it means a scheduled connector is still charging
someone, and if you assumed inoperative meant immediately idle, your next
step is wrong. Poll the connector's status, or watch the event stream, until
it actually goes Unavailable.
To take a connector out of service now, stop its transaction first — see Start and stop sessions remotely — and then change availability.
It survives reboots#
A connector set inoperative by this command stays inoperative across restarts. That is required by the specification, and it is the right behaviour: a connector taken out of service for a physical fault should not quietly return after a power cut.
The corollary is that you cannot clear it by rebooting. Set it back to
operative explicitly.
Stations may also use Unavailable for their own reasons — during a firmware
update, or while waiting for a boot to be accepted — so an inoperative
connector is not necessarily one you made inoperative.
Availability versus registration status#
Two different levers, easily confused:
| Scope | Effect | |
|---|---|---|
| Availability | A connector, an EVSE, or the whole station | Stops new sessions. The station stays connected and reporting |
| Registration status | The whole charger | Pending holds it quiet; Rejected makes it stop responding entirely |
Availability is the operational tool — reach for it routinely. Registration
status is the provisioning gate, and Rejected in particular is close to
irreversible until the station retries. See
Register and provision a charger.
Reading the current state#
Connector status tells you where things actually stand:
Available— freePreparing,Charging,SuspendedEV,SuspendedEVSE,Finishing— in useReserved— held by a reservationUnavailable— inoperativeFaulted— broken
Available through Reserved count as Operative; Unavailable and Faulted
are Inoperative. A Faulted connector is out of service without anyone asking
for it, which is the distinction worth alerting on.