ProvideChargingRequests messages (Charging Schedules)

What is a ProvideChargingRequest message?
Via ProvideChargingRequests.req messages, an upstream system can send charging schedules to ChargePilot® to determine schedules in the future.
Conditions for a ChargingRequest
- 1. ChargingRequests.req message can only be sent after receiving a first ProvideChargingInformation.req message from ChargePilot®.
- 2. Only identifiers of Charging Points that are provided with ProvideChargingInformation messages are allowed.
- 3. All ChargingRequests are always provided.
ProvideChargingRequests message
ChargePilot® takes necessary actions on Charging Requests by comparing the received ProvideChargingRequests message with the existing list of Charging Requests already known to ChargePilot®.
| Action | Result |
|---|---|
| ProvideChargingRequests is provided for the first time. | Every Charging Request in the message is treated as new. |
| ProvideChargingRequests message contains Charging Requests provided in the previous message with changed values. | Charging Requests that were provided with changed values have those values updated. |
| ProvideChargingRequests message contains Charging Requests that were not present in the previous message. | Charging Requests that were not present in the previous message are created. |
| ProvideChargingRequests message is missing Charging Requests that were provided in the previous message. | Charging Requests that are no longer provided are deleted. |
ProvideChargingRequests message may contain new, changed or missing (deleted) Charging Requests in one message.
Optionally, determining what action should be performed upon Charging Request may be specified in chargingInstruction property of Charging Request.
VDV 463 differentiates between three different ChargingRequest types:
| Charging request instruction | Condition | Action |
|---|---|---|
| Normal | Charging request is already known to the ChargePilot. | No action is taken. |
| Normal | Charging Request is not known to the ChargePilot. | New Charging Request is created. |
| Changed | Charging Request must be known to the ChargePilot. | Charging Request is updated with given charging details. |
| Terminate | Charging request must be known to the ChargePilot. | Charging request is deleted. |
Default Charging Station and Charging Point
Concept of Charging Station and default Charging Point exists to provide a possibility to create new Charging Requests when it is not known at which Charging Point they should be scheduled. It is a placeholder for Charging Requests without real Charging Points attached to it. It is always provided in ProvideChargingInformation messages (see ProvideChargingInformation section). They can be distinguished from real Charging Stations by its ids, which are always the same. Ids can be seen below.
| Entity | Id |
|---|---|
| Charging Station | {depotId}/0 |
| Charging Point | {depotId}/0/0 |
ProvideChargingRequests schema description
Table below describes data points that make up the ProvideChargingRequests message sent from upstream system to ChargePilot®.
| Substructure description | Substructure | Required | Field in substructure | Required | Description | Type | Unit of measurement | Value range | Format |
|---|---|---|---|---|---|---|---|---|---|
| List containing all charging requests that will be created for a given site. | chargingRequestsList | Yes | chargingPointId | Yes | Unique identifier of a charging point. | string value, uuid or default charging point id | - | - | XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX or XXXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX/0/0 |
| vehicleId | Yes | Unique identifier of a vehicle. | string, vin | - | - | XXXXXXXXXXXXXXXXXXXXXX | |||
| chargingRequestId | Yes | Unique identifier of a charging request. | string | - | - | ||||
| priority | Yes | Priority of a charging request: the lower the number the higher the prioritization. | integer | - | Minimum: 0 | - | |||
| chargingInstruction | No | Indicates action that has to be executed: Normal - creates new charging request / requests. | string enum | - | Normal Changed Terminate |
- | |||
| Informations about charging request. | chargingRequestData | Yes | expectedArrivalTimeAtChargingPoint | Yes | The time when a vehicle will arrive at the charging point. | datetime UTC | - | Minimum: current time | YYYY-MM-DDThh:mm:ss.sZ |
| expectedSocAtArrival | No | Expected SOC, a vehicle will have when arriving at a charging point. | float | percentage | Minimum: 0 Maximum: 100 |
- | |||
| minTargetSoc | Yes | Minimum SOC value that must be reached within this charging process. | float | percentage | Minimum: 0 Maximum: 100 |
- | |||
| maxTargetSoc | Yes | Maximum SOC value that should not be exceeded within this charging process. | float | percentage | Minimum: 0 Maximum: 100 |
- | |||
| requestedTimeForDeparture | Yes | The time when a vehicle needs to leave the charging point. | datetime UTC | - | Minimum: must be less than expectedArrivalTimeAtChargingPoint Maximum: time difference between expectedArrivalTimeAtChargingPoint must be less than 7 days |
YYYY-MM-DDThh:mm:ss.sZ | |||
| Informations about manual preconditioning. | manualPreconditioning | No | hvacPreconditioningStartTime | Yes | Preset start time for climatic preconditioning. | datetime UTC | - | - | YYYY-MM-DDThh:mm:ss.sZ |
| havacAuxiliaryConsumerPower | No | Power specification for climatic preconditioning (air conditioning, heating) | float | KWH | Minimum: 0 | - | |||
| systemPreconditioningStartTime | Yes | Preset start time for system preconditioning. | datetime UTC | - | - | YYYY-MM-DDThh:mm:ss.sZ | |||
| systemAuxiliaryConsumerPower | No | Power specification for system preconditioning (24V, compressed air, traction battery) | float | KW | Minimum: 0 | - | |||
| Informations about automatic preconditioning. | automaticPreconditioning | No | ambientTemperature | No | Ambient temperature outside the underground car park. | float | ℃ | - | - |
| requestedFinishTime | No | Specified end time when the bus will be unplugged from the charging infrastructure. | datetime UTC | - | - | YYYY-MM-DDThh:mm:ss.sZ | |||
| preconditioningRequest | Yes | Preconditioning type | string enum | - | Structure 2.1.6 in VDV 463 documentation | - |
ProvideChargingRequest - Example Payloads
Create new Charging Request with default Charging Point id
Example can be seen below for Depot, that has depotId equal to 29e7d1c4-89b7-40a0-8025-2cd2c92664de.
[
1,
"BMS",
"uri://Customer1/Presystem1",
"2020-07-17T08:38:00Z",
"baf4ad01-d220-4430-a3eb-b31e4999720e",
"ProvideChargingRequests",
{
"chargingRequestList": [
{
"chargingPointId": "29e7d1c4-89b7-40a0-8025-2cd2c92664de/0/0",
"vehicleId": "1FDWE37S0WHB43802",
"chargingRequestId": "12",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-11-16T09:30:00Z",
"expectedSocAtArrival": 22,
"minTargetSoc": 3,
"maxTargetSoc": 90,
"requestedTimeForDeparture": "2023-11-19T09:27:12Z"
}
}
]
}
]Creation of new ChargingRequest(s)
[
1, //Request
"BMS",
"Presystem1",
"2020-07-17T08:38:00Z",
"baf4ad01-d220-4430-a3eb-b31e4999720e",
"ProvideChargingRequests",
{
"chargingRequestList": [
{
"chargingPointId": "acaa6611-9b9b-4296-9ba1-102a028f1f99",
"vehicleId": "195882359823rhfcc",
"chargingRequestId": "1",
"priority": 1,
"chargingInstruction": "Normal",
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-09-26T09:30:00Z",
"expectedSocAtArrival": 22,
"minTargetSoc": 50,
"maxTargetSoc": 90,
"requestedTimeForDeparture": "2023-09-30T09:27:12Z"
},
"manualPreconditioning": {
"hvacPreconditioningStartTime": "2023-09-26T09:35:00Z"
}
},
{
"chargingPointId": "3a0aeeea-35ef-4bd7-a990-9b15987d25f5",
"vehicleId": "69588235982bdufab",
"chargingRequestId": "2",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-09-26T09:30:00Z",
"expectedSocAtArrival": 22,
"minTargetSoc": 50,
"maxTargetSoc": 90,
"requestedTimeForDeparture": "2023-09-29T09:27:12Z"
},
"automaticPreconditioning": {
"ambientTemperature": 20,
"requestedFinishTime": "2023-09-29T09:27:12Z",
"preconditioningRequest": "HotWaterAndHeating"
}
},
{
"chargingPointId": "08c44fb2-c570-4009-ac52-f6b1f97cfb60",
"vehicleId": "12345644430000000",
"chargingRequestId": "3",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-09-30T09:30:00Z",
"expectedSocAtArrival": 22,
"minTargetSoc": 50,
"maxTargetSoc": 90,
"requestedTimeForDeparture": "2023-10-01T09:27:12Z"
}
}
]
}
]Change existing ChargingRequest(s)
- 1. Charging Request is considered changed when values of this Charging Request are different from values sent in the previous ProvideChargingRequests message.
- 2. Charging Request can be marked as changed when chargingInstruction property is set to Changed and values of this Charging Request are different from values sent in the previous ProvideChargingRequests message.
[
1, // Request
"BMS",
"Presystem1",
"2020-07-17T08:38:00Z",
"baf4ad01-d220-4430-a3eb-b31e4999720e",
"ProvideChargingRequests",
{
"chargingRequestList": [
{
"chargingRequestId": "1",
"chargingPointId": "acaa6611-9b9b-4296-9ba1-102a028f1f99",
"vehicleId": "195882359823rhfcc",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-10-04T09:30:00Z",
"expectedSocAtArrival": 22,
"minTargetSoc": 7,
"maxTargetSoc": 90,
"requestedTimeForDeparture": "2023-10-05T09:27:12Z"
}
},
{
"chargingRequestId": "2",
"chargingPointId": "3a0aeeea-35ef-4bd7-a990-9b15987d25f5",
"vehicleId": "69588235982bdufab",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-10-04T09:30:00Z",
"minTargetSoc": 9,
"maxTargetSoc": 40,
"requestedTimeForDeparture": "2023-10-05T09:27:12Z"
}
},
{
"chargingRequestId": "3",
"chargingInstruction": "Changed",
"chargingPointId": "08c44fb2-c570-4009-ac52-f6b1f97cfb60",
"vehicleId": "12345644430000000",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-10-04T09:30:00Z",
"expectedSocAtArrival": 1,
"minTargetSoc": 55,
"maxTargetSoc": 56,
"requestedTimeForDeparture": "2023-10-05T09:27:12Z"
}
}
]
}
]Delete existing ChargingRequest(s)
- 1. Charging Requests that are no longer provided in ProvideChargingRequests messages will be deleted.
- 2. Charging Request that have chargingInstruction property set to Terminate will be deleted.
[
1, // Request
"BMS",
"Presystem1",
"2020-07-17T08:38:00Z",
"baf4ad01-d220-4430-a3eb-b31e4999720e",
"ProvideChargingRequests",
{
"chargingRequestList": [
{
"chargingRequestId": "3",
"chargingInstruction": "Terminate",
"chargingPointId": "08c44fb2-c570-4009-ac52-f6b1f97cfb60",
"vehicleId": "12345644430000000",
"priority": 1,
"chargingRequestData": {
"expectedArrivalTimeAtChargingPoint": "2023-10-04T09:30:00Z",
"expectedSocAtArrival": 1,
"minTargetSoc": 55,
"maxTargetSoc": 56,
"requestedTimeForDeparture": "2023-10-05T09:27:12Z"
}
}
]
}
]ProvideChargingRequests.conf message sent by ChargePilot®
[
2, // Confirmation
"CMS",
"Presystem1",
"2023-06-19T13:51:14.081Z",
"afe00401-da68-4fc8-bd6b-22f21de9f81f",
"ProvideChargingRequests",
{}
]Restrictions for ProvideChargingRequest messages (partly based on ChargePilot® constraints)
- 1. Charging Request must not contain duplicated property chargingRequestId in one ProvideChargingRequests message
- 2. Arrival time must be earlier than departure time
- 3. Time difference between arrival time and departure time must be less than 7 days
- 4. Max. Target SOC must be greater than or equal to Min. target SOC