MOBI.Docs
Specification version: v1.0

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_SESSION
  • STOP_SESSION
  • UNLOCK_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

Table 8 – Commands methods for the CPO (and MOBI.Hub) – Receiver
MethodDirectionDescription of usage
POSTResponseAcknowledgement of the initial command execution request.
POSTRequestAsynchronously respond to the EMSP request concerning its execution.

EMSP (and MOBI.Hub) – Sender

Table 9 – Commands methods for the EMSP (and MOBI.Hub) – Sender
MethodDirectionDescription of usage
POSTRequestThe EMSP sends a command to MOBI.Hub
POSTResponseReceive 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:

Table 10 – START_SESSION object properties
PropertyMandatoryValueComment
response_urlTRUEURL for later result
tokenTRUEAPP_USER / AD_HOC_USERToken needs to have been previously created with MOBI.Hub (even if only a few seconds/minutes earlier).
tokenTRUERFIDToken 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_idTRUE
evse_uidTRUEValue should be mandatory as MOBI.Hub cannot ensure that all charging stations support a request at the charging station level with local selection.
authorization_referenceFALSEA UUID-type shall be implemented.

For the corresponding CommandResponse, please consider the following matrix.

Table 11 – START_SESSION CommandResponse
ConditionCommandResponse - resultMessage (if applicable)
Token is ValidEVSE UID exists in locationCharging Station is Online
TRUETRUETRUEACCEPTEDN/A
**FALSEREJECTEDThe requested charging station is currently offline.
FALSE*TRUEREJECTEDThe requested token is invalid.
TRUEFALSETRUEREJECTEDThe 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.

Table 12 – START_SESSION CommandResult
ConditionCommandResult - resultMessage (if applicable)
RemoteStartTransaction.conf receivedRemoteStartTransaction.conf statusStartTransaction.req receivedSession active with the same tokenSession active with differed tokenEVSE is OutOfServiceCommand Execution Timeout
TRUEACCEPTEDTRUE***FALSEACCEPTEDN/A
TRUEACCEPTEDTRUE***FALSEACCEPTED[StartTransaction.req Reason]
FALSEN/ATRUE***FALSEACCEPTEDWARNING! Original ack not received.
TRUEACCEPTEDFALSE***TRUEFAILEDThe charging station has not confirmed that it started the transaction.
TRUEREJECTEDFALSETRUEFALSEN/AFALSEEVSE_OCCUPIEDThe current user has an active transaction on the EVSE.
TRUEREJECTEDFALSEFALSEFALSETRUEFALSEEVSE_INOPERATIVEThe requested EVSE is out of service.
TRUEREJECTEDFALSEFALSETRUEN/AFALSEEVSE_OCCUPIEDThe EVSE is currently occupied.
FALSEN/AFALSE***TRUETIMEOUT

STOP_SESSION

STOP_SESSION object properties
PropertyValueMandatoryComment
response_urlTRUEURL for later result
session_idTRUE

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.

Table 13 – STOP_SESSION CommandResponse
ConditionCommandResponse - resultMessage (if applicable)
Session ExistsSession is ActiveSession is owned by the EMSPCharging Station is Online
TRUETRUETRUETRUEACCEPTEDN/A
TRUETRUETRUEFALSEREJECTEDThe requested session is currently offline.
TRUETRUEFALSE*REJECTEDThe requested session is not owned by the requesting party.
TRUEFALSETRUE*REJECTEDThe requested session is no longer active.
TRUEFALSEFALSE*REJECTEDThe requested session is not owned by the requesting party.
FALSEN/AN/A*UNKNOWN_SESSIONN/A

For the CommandResult please consider the following table:

Table 14 – STOP_SESSION CommandResult
ConditionCommandResult - resultMessage (if applicable)
RemoteStopTransaction.conf receivedRemoteStopTransaction.conf statusStopTransaction.req receivedStopTransaction.req ReasonCommand Execution Timeout
TRUEACCEPTEDTRUERemote OR OCPP 1.5 Charging StationFALSEACCEPTEDN/A
TRUEACCEPTEDTRUE(other than Remote in OCPP 1.6 Charging Stations)FALSEACCEPTED[StopTransaction.req Reason]
FALSEN/ATRUE*FALSEACCEPTEDConcatenation between: WARNING! Original ack not received + [StopTransaction.req Reason].
TRUEACCEPTEDFALSEN/ATRUEFAILEDThe charging station has not confirmed that it stopped the transaction.
TRUEREJECTEDFALSEN/AFALSEFAILEDThe charging station has rejected the request.
FALSEN/AFALSEN/ATRUETIMEOUT

UNLOCK_CONNECTOR

The object can be described by the following properties:

Table 15 – UNLOCK_CONNECTOR object properties
PropertyValueMandatoryComment
response_urlTRUEURL for later result
location_idTRUE
evse_uidTRUE
connector_uidTRUE
Table 16 – UNLOCK_CONNECTOR CommandResponse
ConditionCommandResponse - resultMessage (if applicable)
Active Session with EMSP UserNo Active Session but Last User belongs to EMSP (less than 24h)Charging Station is Online
TRUEN/ATRUEACCEPTEDN/A
TRUEN/AFALSEREJECTEDImpossible to perform the requested command as the charging station is offline.
FALSETRUETRUEACCEPTEDWarning: the charging session had ended at [stop_timestamp]
FALSETRUEFALSEREJECTEDImpossible to perform the requested command as the charging station if offline. Warning: the charging session had ended at [stop_timestamp]
FALSEFALSE*REJECTEDThere 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:

Table 17 – UNLOCK_CONNECTOR CommandResult
ConditionCommandResult - resultMessage (if applicable)
UnlockConnector.conf receivedUnlockConnector.conf statusCommand Execution Timeout
TRUEUnlocked (OCPP 1.6) or Accepted (OCPP 1.5)FALSEACCEPTEDN/A
TRUERejected (OCPP 1.5)FALSEREJECTEDN/A
TRUEUnlockFailed (OCPP 1.6)FALSEFAILEDN/A
TRUENotSupported (OCPP 1.6)FALSENOT_SUPPORTEDN/A
FALSEN/ATRUETIMEOUTN/A