Settings
A charging station's operator-facing settings — a desired-state layer over its configuration. Protocol-agnostic: the same names and values apply to an OCPP 1.6 station and a 2.x one, and a write records a target rather than contacting the station, so it behaves the same while the station is offline. The raw per-protocol surfaces are Configuration (1.6) and the device-model listing (2.x). User reads; Admin writes.
2 endpoints
Lists every setting this platform exposes for a charging station.
get/v1/charging-stations/{chargingStationId}/settingsRequires a bearer token
Each entry carries this station's target, last observed value, and
reconciliation state. Answers from cached state; never talks to the
station, so it is immediate and works while the station is offline. A
setting the station has not reported yet answers supported: false,
which is the honest initial state rather than an absence.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| chargingStationId* | path | string<uuid> | ChargingStation id |
Responses
| Status | Body | Description |
|---|---|---|
| 200 | ListSettingsResponse | Every catalog setting, with this station's state for each |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 404 | ErrorBody | No charging station with this id exists, or the caller cannot access its environment |
| 429 | ErrorBody | The caller has exceeded its request budget. error is rateLimited. Wait Retry-After seconds before retrying — a prior successful response's own RateLimit-Remaining/RateLimit-Reset headers show this coming before it happens. |
| 500 | ErrorBody | An unexpected internal error. error is always internalError; message is deliberately the fixed string "an unexpected error occurred", never the real cause, which is logged server-side instead of being returned to the caller. |
| 503 | ErrorBody | assetServiceUnavailable — the backend this reads through is not configured in this environment |
Records what an operator wants one setting to be.
put/v1/charging-stations/{chargingStationId}/settings/{name}Requires a bearer token
Answers 202, always: the target is stored, and the per-session
reconciler converges it on its own schedule. The station is not
contacted, so this behaves the same whether it is online, offline, or
has never connected — and the returned body is the setting's state
*now*, which for a station that is not already at the target means
syncing: true.
Parameters
| Name | In | Type | Description |
|---|---|---|---|
| chargingStationId* | path | string<uuid> | ChargingStation id |
| name* | path | string | Catalog setting name, e.g. lightIntensity |
Request bodyPutSettingRequest
| Field | Type | Description |
|---|---|---|
| target* | SettingValueView | The value to hold this setting at. Must be in range and land on the setting's own step grid. |
Responses
| Status | Body | Description |
|---|---|---|
| 202 | SettingView | The target was recorded; reconciliation happens out of band |
| 401 | ErrorBody | Missing, invalid, or expired bearer token |
| 403 | ErrorBody | The caller is a member of the station's organization but below the required role |
| 404 | ErrorBody | No such charging station, no such setting (unknownSetting), or the caller cannot access the station's environment |
| 422 | ErrorBody | invalidSettingValue — the value is out of range, or between two values this setting can represent |
| 429 | ErrorBody | The caller has exceeded its request budget. error is rateLimited. Wait Retry-After seconds before retrying — a prior successful response's own RateLimit-Remaining/RateLimit-Reset headers show this coming before it happens. |
| 500 | ErrorBody | An unexpected internal error. error is always internalError; message is deliberately the fixed string "an unexpected error occurred", never the real cause, which is logged server-side instead of being returned to the caller. |
| 503 | ErrorBody | assetServiceUnavailable — the backend this reads through is not configured in this environment |