ProvideChargingRequests messages (Charging Schedules)

alt="Failed to load image"

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. 1. ChargingRequests.req message can only be sent after receiving a first ProvideChargingInformation.req message from ChargePilot®.
  2. 2. Only identifiers of Charging Points that are provided with ProvideChargingInformation messages are allowed.
  3. 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®.

ActionResult
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 instructionConditionAction
NormalCharging request is already known to the ChargePilot.No action is taken.
NormalCharging Request is not known to the ChargePilot.New Charging Request is created.
ChangedCharging Request must be known to the ChargePilot.Charging Request is updated with given charging details.
TerminateCharging 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.

EntityId
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. 1. Charging Request is considered changed when values of this Charging Request are different from values sent in the previous ProvideChargingRequests message.

  2. 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. 1. Charging Requests that are no longer provided in ProvideChargingRequests messages will be deleted.

  2. 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. 1. Charging Request must not contain duplicated property chargingRequestId in one ProvideChargingRequests message
  2. 2. Arrival time must be earlier than departure time
  3. 3. Time difference between arrival time and departure time must be less than 7 days
  4. 4. Max. Target SOC must be greater than or equal to Min. target SOC