Remote Commands
The Remote Command API allows CPOs to perform actions on their Charge Stations that were currently only available via the EvPortal or in case of Reservations, not enabled at all.
We distinguish between Charge Station Commands and Reservations:
Charge Station Commands:
- Start session
- Stop session
- Unlock Connector
- Reset
Reservations
- ReserveNow
- CancelReservation
For the Charge Station Commands, a key use-case we see is that CPOs want to create their own Support tools that give them more capabilities. For example:
- a Support Center using bespoke software could integrate 'Unlock Connector' or 'Stop session' functionalities when a Customer calls
- a venue (gas station, shop etc.) can start a session in case a EV driver has issues to start using their RFID card or App
Using Remote commands
Because Charge Stations can respond asynchronously, the response to the Remote Commands need to be retrieved in a separate call.
OCPI works with a response_url, however we will provide a 'charge_station_notification_id' to the API User that they can use to call the specific Notification Response API to retrieve the actual response from the Charge station.
So the first response from GreenFlux is a response whether the request was syntactically correct.
Start session
To Remote Start a session, either the auth_id or uid (aka Token or ChipID) is required.
Additionally the Charge Station, EVSE and Locaton ID are required to be specified.
{
"token": {
"auth_id": "NL-GFX-CSOMEAUTHID"
"uid": "TokenID"
},
"chargestation_id": "TestCS",
"evse_uid": "NL-GFX-ETestCS-1",
"location_id": "bbc1d4c5-400c-417e-904d-cbe0bc8bd3a1"
}
{
"timestamp": "2022-11-29T09:41:20Z",
"data": {
"result": "ACCEPTED",
"charge_station_notification_id": "638053116813678296-4a208"
},
"status_code": 1000,
"status_message": "Success"
}
{
"timestamp": "2022-11-29T09:44:05Z",
"data": {
"result": "REJECTED"
},
"status_code": 2000,
"status_message": "Can't find chargeStation"
}
{
"timestamp": "2022-11-29T09:41:28Z",
"data": {
"result": "ACCEPTED",
"request": {
"token": {
"uid": "SomeChipId",
"type": "OTHER",
"valid": true,
"whitelist": "ALWAYS"
},
"location_id": "bbc1d4c5-400c-417e-904d-cbe0bc8bd3a1",
"connector_id": "1",
"chargestation_id": "TestChargeStations"
},
"charge_station_notification_id": "638053116813678296-4a208"
},
"status_code": 1000,
"status_message": "Success"
}
{
"timestamp": "2022-11-29T09:44:59Z",
"data": {
"result": "EVSE_INOPERATIVE",
"request": {
"token": {
"uid": "SomeChipId",
"type": "OTHER",
"valid": false,
"whitelist": "ALWAYS"
},
"location_id": "bbc1d4c5-400c-417e-904d-cbe0bc8bd3a1",
"connector_id": "1",
"chargestation_id": "TESTCHARGESTATION"
},
"charge_station_notification_id": "638053118924058687-ff7e1"
},
"status_code": 1000,
"status_message": "Success"
}
The initial response is from the GreenFlux backend whether the request is syntactically valid. The 'Accepted' states does not indicate anything about the Charge Station response. For this, the 'GET Command Notification' API needs to be called.
Please see in the examples above how a successful and unsuccessful response could look like.
Stop session
For a Stop Session Command, the 'Session_ID' is required.
{
"session_id": "NLGFX638053106592639882-faa2daasas"
}
This can be retrieved from the Sessions API (a PUSH session is required since GET sessions only returns completed sessions).
The session_id can also be retrieved in the EvPortal, but then a User might as well stop a session via the EvPortal.
Unlock Connector
The UNLOCK_CONNECTOR is intended to be used in the rare situation that the connector is not unlocked successfully after a transaction is stopped. It will however stop any ongoing transactions.
OCPP says the following: The UnlockConnector SHOULD NOT be used to remotely stop a running transaction, use the Remote Stop Transaction instead.
{
"location_id": "bbc1d4c5-400c-417e-904d-cbe0bc8bd3a1",
"evse_uid": "NL-GFX-ETestChargeStation-1",
"connector_id": "1"
}
Reset
To Reset a Charge Station, the Charge Station and EVSE_ID should be included.
The Type is currently only a 'Hard' reset.
It is optional to select whether it should be sent 'Immediate' or 'OnIdle' (i.e. when no active sessions are ongoing, the system will send the reset command)
{
"chargestation_id": "TestChargeStation",
"evse_uid": "NL-GFX-ETestChargeStation-1",
"type": "Hard",
"scheduled": "Immediate"
}
Reservations
In general, GreenFlux believes that Reservations in the current OCPP and OCPI ecosystem are NOT a good functionality and is practically unworkable in a public parking space.
There are specific use cases in the semi-public area:
- in workplace parking, a certain number of Charge Stations can only be used if reserved beforehand. The CPO would provide employees using the site access to a 'Reservations application'. The CPO could limit reservations to half days or charge extra
- semi-public DC charging - example is an industrial area where multiple companies would share a DC fast-charging hub. Participating companies could guarantee themselves a place using a reservation application.
Or one company wants to give access to their extra capacity, but limit it by time of day.
However, the above use cases only work if CPOs create bespoke reservation Apps with custom logic on top of the Reservation APIs by GreenFlux.
Please view this page for more information on our current view regarding implementing reservations: Reservations
SESSIONS_ID Warning
There is a limitation with the OCPI and OCPP Protocols, where the charging station doesn't provide a session ID in response to the Start Session command. Instead, the SESSION_ID must be acquired through the implementation of the Sessions API.
Updated 5 months ago