Commands
The Commands module: START_SESSION, STOP_SESSION and UNLOCK_CONNECTOR, with the CommandResponse and CommandResult decision matrices.
On this page
Technical considerations
The following commands shall be supported:
START_SESSIONSTOP_SESSIONUNLOCK_CONNECTOR
All processes are asynchronous. Therefore, it is MANDATORY for the EMSP to provide a unique identifier in the response_url.
For the unlock connector, it is important to note that the EMSP should not be authorized to use this functionality lightly. It is forbidden for EMSP to create apps that allow this command to be executed without validation.
An EMSP SHOULD NOT send commands to an EVSE that is not REMOTE_START_STOP_CAPABLE.
Methods to be implemented
CPO (and MOBI.Hub) – Receiver
| Method | Direction | Description of usage |
|---|---|---|
POST | Response | Acknowledgement of the initial command execution request. |
POST | Request | Asynchronously respond to the EMSP request concerning its execution. |
EMSP (and MOBI.Hub) – Sender
| Method | Direction | Description of usage |
|---|---|---|
POST | Request | The EMSP sends a command to MOBI.Hub |
POST | Response | Receive execution confirmation from MOBI.Hub |
Commands and objects description
START_SESSION
MOBI.Hub shall verify that the token exists and authorize it prior to sending the request to the charging station. This validation can be based on a real-time authorization with the EMSP or based on a whitelist managed by Mobi.e.
Typically, all charging stations should perform OCPP Authorization prior to starting a new transaction. If allowed by the firmware, charging stations will be configured not to authorize transactions following a remote start, so as to improve overall validation time.
The status of the EVSE shall not be considered for the CommandResponse as a charging station may not have communicated all the required status changes.
The following table describes the START_SESSION object:
| Property | Mandatory | Value | Comment |
|---|---|---|---|
response_url | TRUE | URL for later result | |
token | TRUE | APP_USER / AD_HOC_USER | Token needs to have been previously created with MOBI.Hub (even if only a few seconds/minutes earlier). |
token | TRUE | RFID | Token needs to have been previously created with MOBI.Hub. This token is to be used in case the EMSP wants to make sure that the user will be able to start or stop the transaction at the charging station. In case any of the RFID parameters are not correct then the request shall be rejected (e.g. this is not a way of patching the token). |
location_id | TRUE | ||
evse_uid | TRUE | Value should be mandatory as MOBI.Hub cannot ensure that all charging stations support a request at the charging station level with local selection. | |
authorization_reference | FALSE | A UUID-type shall be implemented. |
For the corresponding CommandResponse, please consider the following matrix.
| Condition | CommandResponse - result | Message (if applicable) | ||
|---|---|---|---|---|
| Token is Valid | EVSE UID exists in location | Charging Station is Online | ||
| TRUE | TRUE | TRUE | ACCEPTED | N/A |
| * | * | FALSE | REJECTED | The requested charging station is currently offline. |
| FALSE | * | TRUE | REJECTED | The requested token is invalid. |
| TRUE | FALSE | TRUE | REJECTED | The requested EVSE UID does not exist in the location. |
The token validity check shall consider the following:
- If the token exists, then:
- It must have the same properties.
- It must belong to the requesting party.
Finally, for the CommandResult the following table applies. Please note that unlike what is stated in the reference document, CommandResult result cannot be ACCEPTED if no StartTransaction.req has been received.
| Condition | CommandResult - result | Message (if applicable) | ||||||
|---|---|---|---|---|---|---|---|---|
RemoteStartTransaction.conf received | RemoteStartTransaction.conf status | StartTransaction.req received | Session active with the same token | Session active with differed token | EVSE is OutOfService | Command Execution Timeout | ||
| TRUE | ACCEPTED | TRUE | * | * | * | FALSE | ACCEPTED | N/A |
| TRUE | ACCEPTED | TRUE | * | * | * | FALSE | ACCEPTED | [StartTransaction.req Reason] |
| FALSE | N/A | TRUE | * | * | * | FALSE | ACCEPTED | WARNING! Original ack not received. |
| TRUE | ACCEPTED | FALSE | * | * | * | TRUE | FAILED | The charging station has not confirmed that it started the transaction. |
| TRUE | REJECTED | FALSE | TRUE | FALSE | N/A | FALSE | EVSE_OCCUPIED | The current user has an active transaction on the EVSE. |
| TRUE | REJECTED | FALSE | FALSE | FALSE | TRUE | FALSE | EVSE_INOPERATIVE | The requested EVSE is out of service. |
| TRUE | REJECTED | FALSE | FALSE | TRUE | N/A | FALSE | EVSE_OCCUPIED | The EVSE is currently occupied. |
| FALSE | N/A | FALSE | * | * | * | TRUE | TIMEOUT | |
STOP_SESSION
| Property | Value | Mandatory | Comment |
|---|---|---|---|
response_url | TRUE | URL for later result | |
session_id | TRUE |
If the given charging station does not support remotely stopping a session, then the following CommandResponse result shall be given: NOT_SUPPORTED.
For the corresponding CommandResponse, please consider the following matrix.
| Condition | CommandResponse - result | Message (if applicable) | |||
|---|---|---|---|---|---|
| Session Exists | Session is Active | Session is owned by the EMSP | Charging Station is Online | ||
| TRUE | TRUE | TRUE | TRUE | ACCEPTED | N/A |
| TRUE | TRUE | TRUE | FALSE | REJECTED | The requested session is currently offline. |
| TRUE | TRUE | FALSE | * | REJECTED | The requested session is not owned by the requesting party. |
| TRUE | FALSE | TRUE | * | REJECTED | The requested session is no longer active. |
| TRUE | FALSE | FALSE | * | REJECTED | The requested session is not owned by the requesting party. |
| FALSE | N/A | N/A | * | UNKNOWN_SESSION | N/A |
For the CommandResult please consider the following table:
| Condition | CommandResult - result | Message (if applicable) | ||||
|---|---|---|---|---|---|---|
RemoteStopTransaction.conf received | RemoteStopTransaction.conf status | StopTransaction.req received | StopTransaction.req Reason | Command Execution Timeout | ||
| TRUE | ACCEPTED | TRUE | Remote OR OCPP 1.5 Charging Station | FALSE | ACCEPTED | N/A |
| TRUE | ACCEPTED | TRUE | (other than Remote in OCPP 1.6 Charging Stations) | FALSE | ACCEPTED | [StopTransaction.req Reason] |
| FALSE | N/A | TRUE | * | FALSE | ACCEPTED | Concatenation between: WARNING! Original ack not received + [StopTransaction.req Reason]. |
| TRUE | ACCEPTED | FALSE | N/A | TRUE | FAILED | The charging station has not confirmed that it stopped the transaction. |
| TRUE | REJECTED | FALSE | N/A | FALSE | FAILED | The charging station has rejected the request. |
| FALSE | N/A | FALSE | N/A | TRUE | TIMEOUT | |
UNLOCK_CONNECTOR
The object can be described by the following properties:
| Property | Value | Mandatory | Comment |
|---|---|---|---|
response_url | TRUE | URL for later result | |
location_id | TRUE | ||
evse_uid | TRUE | ||
connector_uid | TRUE |
| Condition | CommandResponse - result | Message (if applicable) | ||
|---|---|---|---|---|
| Active Session with EMSP User | No Active Session but Last User belongs to EMSP (less than 24h) | Charging Station is Online | ||
| TRUE | N/A | TRUE | ACCEPTED | N/A |
| TRUE | N/A | FALSE | REJECTED | Impossible to perform the requested command as the charging station is offline. |
| FALSE | TRUE | TRUE | ACCEPTED | Warning: the charging session had ended at [stop_timestamp] |
| FALSE | TRUE | FALSE | REJECTED | Impossible to perform the requested command as the charging station if offline. Warning: the charging session had ended at [stop_timestamp] |
| FALSE | FALSE | * | REJECTED | There is no valid session owned by the EMSP on the charging station |
For the CommandResult please consider the following table for OCPP 1.6 stations:
| Condition | CommandResult - result | Message (if applicable) | ||
|---|---|---|---|---|
UnlockConnector.conf received | UnlockConnector.conf status | Command Execution Timeout | ||
| TRUE | Unlocked (OCPP 1.6) or Accepted (OCPP 1.5) | FALSE | ACCEPTED | N/A |
| TRUE | Rejected (OCPP 1.5) | FALSE | REJECTED | N/A |
| TRUE | UnlockFailed (OCPP 1.6) | FALSE | FAILED | N/A |
| TRUE | NotSupported (OCPP 1.6) | FALSE | NOT_SUPPORTED | N/A |
| FALSE | N/A | TRUE | TIMEOUT | N/A |