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:

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.
  • 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 new TxProfile is received or until the end of the transaction
  • When validTo is defined, the schedule defaults to the TxDefaultProfile after validTo 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"
  }
}