Link copied

Functional Block: H

Types Reference: Shared types referenced below are defined in OCPP-2.0.1-DataTypes.md.
Types used only within this block are documented inline below.

Deep-dive: For conceptual explanations, composite schedule calculation, worked examples, and implementation guidance, see the Smart Charging Deep-Dive.

#Messages


#SetChargingProfile

Direction: CSMS → CS

#SetChargingProfileRequest

Field Type Required Constraints Description
chargingProfile ChargingProfileType Yes
evseId integer Yes For TxDefaultProfile an evseId=0 applies the profile to each individual evse. For ChargingStationMaxProfile and ChargingStationExternalConstraints an evseId=0 contains an overal limit for the whole Charging Station.
customData CustomDataType No
Example SetChargingProfileRequest
{
  "chargingProfile": {
    "id": 0,
    "stackLevel": 0,
    "chargingProfilePurpose": "ChargingStationExternalConstraints",
    "chargingProfileKind": "Absolute",
    "chargingSchedule": [
      "{...}"
    ]
  },
  "evseId": 0
}

#SetChargingProfileResponse

Field Type Required Constraints Description
status ChargingProfileStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#GetChargingProfiles

Direction: CSMS → CS

#GetChargingProfilesRequest

Field Type Required Constraints Description
chargingProfile ChargingProfileCriterionType Yes
requestId integer Yes Reference identification that is to be used by the Charging Station in the ReportChargingProfilesRequest when provided.
evseId integer No For which EVSE installed charging profiles SHALL be reported. If 0, only charging profiles installed on the Charging Station itself (the grid connection) SHALL be reported. If omitted, all installed charging profiles SHALL be reported.
customData CustomDataType No
Example GetChargingProfilesRequest
{
  "chargingProfile": {},
  "requestId": 0
}

#GetChargingProfilesResponse

Field Type Required Constraints Description
status GetChargingProfileStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#ClearChargingProfile

Direction: CSMS → CS

#ClearChargingProfileRequest

Field Type Required Constraints Description
chargingProfileCriteria ClearChargingProfileType No
chargingProfileId integer No The Id of the charging profile to clear.
customData CustomDataType No

#ClearChargingProfileResponse

Field Type Required Constraints Description
status ClearChargingProfileStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#ReportChargingProfiles

Direction: CS → CSMS

#ReportChargingProfilesRequest

Field Type Required Constraints Description
chargingLimitSource ChargingLimitSourceEnumType Yes
chargingProfile ChargingProfileType[] Yes minItems: 1
evseId integer Yes The evse to which the charging profile applies. If evseId = 0, the message contains an overall limit for the Charging Station.
requestId integer Yes Id used to match the GetChargingProfilesRequest message with the resulting ReportChargingProfilesRequest messages. When the CSMS provided a requestId in the GetChargingProfilesRequest, this field SHALL contain the same value.
tbc boolean No To Be Continued. Default value when omitted: false. false indicates that there are no further messages as part of this report. Default: False
customData CustomDataType No
Example ReportChargingProfilesRequest
{
  "chargingLimitSource": "EMS",
  "chargingProfile": [
    {
      "id": 0,
      "stackLevel": 0,
      "chargingProfilePurpose": "ChargingStationExternalConstraints",
      "chargingProfileKind": "Absolute",
      "chargingSchedule": [
        "{...}"
      ]
    }
  ],
  "evseId": 0,
  "requestId": 0
}

#ReportChargingProfilesResponse

No required fields. An empty {} is a valid response.


#GetCompositeSchedule

Direction: CSMS → CS

#GetCompositeScheduleRequest

Field Type Required Constraints Description
duration integer Yes Length of the requested schedule in seconds.
evseId integer Yes The ID of the EVSE for which the schedule is requested. When evseid=0, the Charging Station will calculate the expected consumption for the grid connection.
chargingRateUnit ChargingRateUnitEnumType No
customData CustomDataType No
Example GetCompositeScheduleRequest
{
  "duration": 0,
  "evseId": 0
}

#GetCompositeScheduleResponse

Field Type Required Constraints Description
status GenericStatusEnumType Yes
schedule CompositeScheduleType No
statusInfo StatusInfoType No
customData CustomDataType No

#ClearedChargingLimit

Direction: CS → CSMS

#ClearedChargingLimitRequest

Field Type Required Constraints Description
chargingLimitSource ChargingLimitSourceEnumType Yes
evseId integer No EVSE Identifier.
customData CustomDataType No
Example ClearedChargingLimitRequest
{
  "chargingLimitSource": "EMS"
}

#ClearedChargingLimitResponse

No required fields. An empty {} is a valid response.


#NotifyChargingLimit

Direction: CS → CSMS

#NotifyChargingLimitRequest

Field Type Required Constraints Description
chargingLimit ChargingLimitType Yes
chargingSchedule ChargingScheduleType[] No minItems: 1
evseId integer No The charging schedule contained in this notification applies to an EVSE. evseId must be > 0.
customData CustomDataType No
Example NotifyChargingLimitRequest
{
  "chargingLimit": {
    "chargingLimitSource": "EMS"
  }
}

#NotifyChargingLimitResponse

No required fields. An empty {} is a valid response.


#NotifyEVChargingSchedule

Direction: CS → CSMS

#NotifyEVChargingScheduleRequest

Field Type Required Constraints Description
chargingSchedule ChargingScheduleType Yes
evseId integer Yes The charging schedule contained in this notification applies to an EVSE. EvseId must be > 0.
timeBase string (date-time) Yes Periods contained in the charging profile are relative to this point in time.
customData CustomDataType No
Example NotifyEVChargingScheduleRequest
{
  "chargingSchedule": {
    "id": 0,
    "chargingRateUnit": "W",
    "chargingSchedulePeriod": [
      "{...}"
    ]
  },
  "evseId": 0,
  "timeBase": "2024-01-15T10:30:00Z"
}

#NotifyEVChargingScheduleResponse

Field Type Required Constraints Description
status GenericStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#NotifyEVChargingNeeds

Direction: CS → CSMS

#NotifyEVChargingNeedsRequest

Field Type Required Constraints Description
chargingNeeds ChargingNeedsType Yes
evseId integer Yes Defines the EVSE and connector to which the EV is connected. EvseId may not be 0.
maxScheduleTuples integer No Contains the maximum schedule tuples the car supports per schedule.
customData CustomDataType No
Example NotifyEVChargingNeedsRequest
{
  "chargingNeeds": {
    "requestedEnergyTransfer": "DC"
  },
  "evseId": 0
}

#NotifyEVChargingNeedsResponse

Field Type Required Constraints Description
status NotifyEVChargingNeedsStatusEnumType Yes
statusInfo StatusInfoType No
customData CustomDataType No

#Local Types

Types used only within this block's messages.

#ChargingProfileStatusEnumType

Returns whether the Charging Station has been able to process the message successfully. This does not guarantee the schedule will be followed to the letter. There might be other constraints the Charging Station may need to take into account.

Value
Accepted
Rejected

Used in: SetChargingProfile


#ClearChargingProfileStatusEnumType

Indicates if the Charging Station was able to execute the request.

Value
Accepted
Unknown

Used in: ClearChargingProfile


#EnergyTransferModeEnumType

Mode of energy transfer requested by the EV.

Value
DC
AC_single_phase
AC_two_phase
AC_three_phase

Used in: NotifyEVChargingNeeds


#GetChargingProfileStatusEnumType

This indicates whether the Charging Station is able to process this request and will send ReportChargingProfilesRequest messages.

Value
Accepted
NoProfiles

Used in: GetChargingProfiles


#NotifyEVChargingNeedsStatusEnumType

Returns whether the CSMS has been able to process the message successfully. It does not imply that the evChargingNeeds can be met with the current charging profile.

Value
Accepted
Rejected
Processing

Used in: NotifyEVChargingNeeds


#ACChargingParametersType

EV AC charging parameters.

Field Type Required Constraints Description
energyAmount integer Yes Amount of energy requested (in Wh). This includes energy required for preconditioning.
evMaxCurrent integer Yes Maximum current (amps) supported by the electric vehicle (per phase). Includes cable capacity.
evMaxVoltage integer Yes Maximum voltage supported by the electric vehicle
evMinCurrent integer Yes Minimum current (amps) supported by the electric vehicle (per phase).
customData CustomDataType No

Used in: NotifyEVChargingNeeds


#ChargingLimitType

Field Type Required Constraints Description
chargingLimitSource ChargingLimitSourceEnumType Yes
isGridCritical boolean No Indicates whether the charging limit is critical for the grid.
customData CustomDataType No

Used in: NotifyChargingLimit


#ChargingNeedsType

Field Type Required Constraints Description
requestedEnergyTransfer EnergyTransferModeEnumType Yes
acChargingParameters ACChargingParametersType No
dcChargingParameters DCChargingParametersType No
departureTime string (date-time) No Estimated departure time of the EV.
customData CustomDataType No

Used in: NotifyEVChargingNeeds


#ChargingProfileCriterionType

A ChargingProfile consists of ChargingSchedule, describing the amount of power or current that can be delivered per time interval.

Field Type Required Constraints Description
chargingLimitSource ChargingLimitSourceEnumType[] No minItems: 1, maxItems: 4 For which charging limit sources, charging profiles SHALL be reported. If omitted, the Charging Station SHALL not filter on chargingLimitSource.
chargingProfileId integer[] No minItems: 1 List of all the chargingProfileIds requested. Any ChargingProfile that matches one of these profiles will be reported. If omitted, the Charging Station SHALL not filter on chargingProfileId. This field SHALL NOT contain more ids than set in ChargingProfileEntries.maxLimit
chargingProfilePurpose ChargingProfilePurposeEnumType No
stackLevel integer No Value determining level in hierarchy stack of profiles. Higher values have precedence over lower values. Lowest level is 0.
customData CustomDataType No

Used in: GetChargingProfiles


#ClearChargingProfileType

A ChargingProfile consists of a ChargingSchedule, describing the amount of power or current that can be delivered per time interval.

Field Type Required Constraints Description
chargingProfilePurpose ChargingProfilePurposeEnumType No
evseId integer No Specifies the id of the EVSE for which to clear charging profiles. An evseId of zero (0) specifies the charging profile for the overall Charging Station. Absence of this parameter means the clearing applies to all charging profiles that match the other criteria in the request.
stackLevel integer No Specifies the stackLevel for which charging profiles will be cleared, if they meet the other criteria in the request.
customData CustomDataType No

Used in: ClearChargingProfile


#CompositeScheduleType

Field Type Required Constraints Description
chargingRateUnit ChargingRateUnitEnumType Yes
chargingSchedulePeriod ChargingSchedulePeriodType[] Yes minItems: 1
duration integer Yes Duration of the schedule in seconds.
evseId integer Yes The ID of the EVSE for which the schedule is requested. When evseid=0, the Charging Station calculated the expected consumption for the grid connection.
scheduleStart string (date-time) Yes Date and time at which the schedule becomes active. All time measurements within the schedule are relative to this timestamp.
customData CustomDataType No

Used in: GetCompositeSchedule


#DCChargingParametersType

EV DC charging parameters

Field Type Required Constraints Description
evMaxCurrent integer Yes Maximum current (amps) supported by the electric vehicle. Includes cable capacity.
evMaxVoltage integer Yes Maximum voltage supported by the electric vehicle
bulkSoC integer No min: 0.0, max: 100.0 Percentage of SoC at which the EV considers a fast charging process to end. (possible values: 0 - 100)
energyAmount integer No Amount of energy requested (in Wh). This inludes energy required for preconditioning.
evEnergyCapacity integer No Capacity of the electric vehicle battery (in Wh)
evMaxPower integer No Maximum power (in W) supported by the electric vehicle. Required for DC charging.
fullSoC integer No min: 0.0, max: 100.0 Percentage of SoC at which the EV considers the battery fully charged. (possible values: 0 - 100)
stateOfCharge integer No min: 0.0, max: 100.0 Energy available in the battery (in percent of the battery capacity)
customData CustomDataType No

Used in: NotifyEVChargingNeeds