Receive Charging Profiles using OCPP format
This guide provides detailed instructions on setting up endpoints to receive OCPP formatted charging profiles from the Jedlix Smart Charging Platform.
The documentation can be downloaded here:
OCPP 2.0.1 - Open Charge Alliance
Set Charging Profile
To receive control signals from Jedlix, Jedlix expects the CPO or CPMS to provide an endpoint according to the following specification.
Endpoint details
URL: POST /v1/cpo/chargingstations/{uid}/events/{payload-protocol}/SetChargingProfile
Path parameters:
uid
: Unique identifier of the charging station in the CPO platform.payload-protocol
: Specifies the protocol used in the payload (e.g., ocpp1.6, ocpp2.0.1).
Request body:
- The request should be structured according to the SetChargingProfileRequest.json schema as defined in OCPP.
SetChargingProfileRequest.json
Response codes:
200
: OK - Charging profile has been executed.400
: Bad Request - Invalid EVSE UID or Invalid charging profile.401
: Unauthorized - Unauthorized access to set charging profiles for this EVSE.404
: Not Found - The specified charger UID does not exist.500
: Internal Server Error - An error occurred while processing the request.503
: Service Unavailable - The specified charger is currently offline.
Standard parameters
Jedlix sends charging profiles with standard values for some of the parameters:
- evseId:
0
- Jedlix does not (yet) support controlling the individual EVSEs of a Charging Station. Therefore, Jedlix will send the Charging Profiles in a way that they are applied to all EVSEs of a Charging Station.
- stackLevel:
1
- Represents the precedence level in the hierarchy of profiles, with
1
being the least prioritized.
- Represents the precedence level in the hierarchy of profiles, with
- chargingProfileKind:
Absolute
- Represents a fixed charging schedule with periods set relative to a defined starting point in time.
- chargingProfilePurpose:
TxProfile
- Implies constraints imposed by the Charging Station on the current transaction.
- chargingRateUnit:
W
- Specifies the charging rate measured in Watts.
Expected behavior
- When
validFrom
is not defined, Jedlix assumes the schedule will become effective immediately - When
validTo
is not defined, Jedlix assumes the schedule will be valid until a newTxProfile
is received or until the end of the transaction - When
validTo
is defined, the schedule defaults to theTxDefaultProfile
aftervalidTo
time has passed.
V2G/discharging support
When support for discharging capabilities is desired, Jedlix proposes accepting the receival of negative values in the chargingSchedule.chargingSchedulePeriod.limit
field to initiate discharging of the EV.
Examples
Example request body to Resume Charging immediately
{
"evseId": 0,
"chargingProfile": {
"id":158798,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Absolute",
"chargingSchedule": [
{
"id": 1,
"chargingRateUnit": "W",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 999999
}
]
}
],
"transactionId": "1234"
}
}
Example request body to pause charging from "2023-09-27T11:00:00Z"
to "2023-09-27T12:00:00Z"
{
"evseId": 0,
"chargingProfile": {
"id": 158798,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Absolute",
"chargingSchedule": [
{
"id": 1,
"chargingRateUnit": "W",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": 0
}
]
}
],
"validFrom": "2023-09-27T11:00:00Z",
"validTo": "2023-09-27T12:00:00Z",
"transactionId": "1234"
}
}
Example request body to schedule discharging between "2023-09-27T11:00:00Z"
and "2023-09-27T12:00:00Z"
{
"evseId": 0,
"chargingProfile": {
"id": 158798,
"stackLevel": 1,
"chargingProfilePurpose": "TxProfile",
"chargingProfileKind": "Absolute",
"chargingSchedule": [
{
"id": 1,
"chargingRateUnit": "W",
"chargingSchedulePeriod": [
{
"startPeriod": 0,
"limit": -999999
}
]
}
],
"validFrom": "2023-09-27T11:00:00Z",
"validTo": "2023-09-27T20:00:00Z",
"transactionId": "1234"
}
}
Updated 9 months ago