Integrating Josev
In order to enable Josev’s services integration, there is the need to exchange specific information that allows a seamless charging session from start to end. Information like EVSE charge parameters, EVSE power relays state and control pilot state are a few examples of such data. This exchange of data is made by means of an MQTT Broker ruled by a specific contract (API).
Details on this MQTT interface can be found in Josev API documentation.
An MQTT broker will have to be spawned in order to establish a way of communicating between the CS and Josev (think of the broker like the mailing service in charge of transporting and delivering messages from one end to the other).
The messages between the charging station (CS) and Josev are exchanged through specific channels called “topics”. The naming of the topics follow the rule sender/receiver.
The aforementioned naming convention is better understood with the following example, illustrated in the following sequence and its diagram:
Once Josev starts, in order to initiate its services, the CS status and limits must be known first. To get this info, Josev will publish a request message on the josev/cs topic while the CS will be listening (subscribed) to it.
After the CS receives and process the request, it will reply to Josev with a response but it will be sent on a different topic, in this case cs/josev and Josev will be subscribed to it.
In case any status or limit changes on the CS, an update message will be sent on the same topic as the response.
Josev MQTT API example (cs_status_and_limits)
The same approach is followed for the rest of the messages.
Message Name |
Type |
Sub (listener) |
Pub (publisher) |
---|---|---|---|
cs_status_and_limits |
request |
cs |
josev |
cs_status_and_limits |
response |
josev |
cs |
cs_status_and_limits |
update |
josev |
cs |
After having a look at the previous table, you might have noticed there are certain messages that do not allow the “request” type message, hence the following clarification:
Request: is issued in order to force an answer from the counter party.
Update: is used as a form of “push” notification even without a previous request.
Message structure
The format of the messages is in JSON and the schemas for each message type ensure this contract is strictly respected.
Continuing the example with cs_status_and_limits, the sequence of payloads exchanged would be:
Request by Josev (on topic josev/cs):
{
"id": "6c1f594a-3dfe-409b-8251-bceb68ad0812",
"name": "cs_status_and_limits",
"type": "request",
"data": {}
}
Response from CS (on topic cs/josev):
{
"id": "6c1f594a-3dfe-409b-8251-bceb68ad0812",
"name": "cs_status_and_limits",
"type": "response",
"data": {
"GB*SEV*E123456789" : {
"ac": {
"max_current": {"l1": 16.0, "l2": 16.0, "l3": 16.0},
"nominal_voltage": 230,
"rcd_error": False
}
}
}
Map of OCPP sections and relevant API messages
The following table aims to give the CS manufacturer a guide of what are the API messages that need to be supported for the different sections of the OCPP specification use cases.
OCPP Section |
Name |
Relevant API message for the CS manufacturer |
---|---|---|
A |
Security |
|
B |
Provisioning |
|
C |
Authorization |
|
D |
Local Auth List Mgmt |
N/A |
E |
Transactions |
|
F |
Remote Control |
|
G |
Availability |
|
H |
Reservation |
Not implemented yet |
I |
Tariff and Cost |
Not implemented yet |
J |
Meter Values |
|
K |
Smart Charging |
Transactions related messages |
L |
Firmware Management |
|
M |
ISO 15118 Certificate Management |
N/A |
N |
Diagnostics |
|
O |
Display Message |
|
P |
Data Transfer |
Message sequence for a charging session
The sequence diagram below shows an example of the exchanged MQTT messages between Josev and the charging station CS, that might take place during the operation of a charging station and a typical charging session. Note that some of the messages, like meter_values, can be sent at any time depending on the situation.
ISO15118 specific API messages
In order to integrate the ISO15118 protocol, the following API messages must be supported by the CS manufacturer.
Control Pilot Control (Only if using RSLAC)
Cable Check (DC only)
Power Electronics Setpoint (DC only)
SDP (If UDP server is disabled)