Command and Control

One of the most basic use cases in electric vehicle charging (EVC) is the command and control of devices. This means the control of when a device starts, when it stops, and various other things such as changing settings and configurations.

Initiated by Charge Point

Start and Stop a Transaction Remotely

Within this section, we will give you a short introduction to the most common use cases of starting a charge session and then stopping it.

With OCPP we can imagine a sequence like this for starting and stopping a charge session:

348

To create this flow in reality we use either of the following:

  1. The user interface of the back office (OCPP software) by clicking on the charger you would like to control and then selecting the start button

  2. If you are running a more bare bones server while developing, you would need to send the following text through the websocket connection you have with EaseeOCPP:

    [2,"7dedecf3-ec66-4344-b48a-dac14943e4c7",
    "RemoteStartTransaction",{"connectorId":1,"idTag":"04894D5A245C80"}]
    
    [2,"fc1f6fa8-0b49-4a91-a9fb-a327c92f7389",
    "RemoteStopTransaction",{"transactionId":624}]
    

Boot Notification

Section 4.2 describes that after start-up, a Charge Point SHALL send a request to the Central System with information about its configuration (e.g. version, vendor, etc.). The Central System SHALL respond to indicate whether it will accept the Charge Point.

When the Central System responds with a BootNotification.conf with a status Accepted, the Charge Point will adjust the heartbeat interval in accordance with the interval from the response PDU and it is RECOMMENDED to synchronize its internal clock with the supplied Central System’s current time. If the Central System returns something other than Accepted, the value of the interval field indicates the minimum wait time before sending the next BootNotification request.

[2, \"3d43847d-98a0-409a-9862-bc6a09305993\", \"BootNotification\", {\"chargePointModel\":\"Easee Home\",\"chargePointSerialNumber\":\"EHHY7AJZ\",\"chargePointVendor\":\"Easee\",\"firmwareVersion\":\"298/1.5.5.0\",\"iccid\":\"\",\"imsi\":\"\",\"meterSerialNumber\":\"\",\"meterType\":\"\"}]

Heartbeat

To let the Central System know that a Charge Point is still connected, a Charge Point sends a heartbeat after a configurable time interval.

Upon receipt of a Heartbeat.req PDU, the Central System SHALL respond with a Heartbeat.conf. The response PDU SHALL contain the current time of the Central System, which is RECOMMENDED to be used by the Charge Point to synchronize its internal clock.

Data Transfer

Section 4.3 describes that if a Charge Point needs to send information to the Central System for a function not supported by OCPP, it SHALL use the DataTransfer.req PDU. Optionally, the messageId in the request PDU MAY be used to indicate a specific message or implementation.
The length of data in both the request and response PDU is undefined and should be agreed upon by all parties involved.

[2,\"26d3d7b3-b2d2-412d-81c6-f4ac8b915747\",\"DataTransfer\",{\"vendorId\":\"no.easee\",\"messageId\":\"OverrideSchedule\"}]

Initiated by Central System

Change Availability

According to section 5.2 of OCPP 1.6, Central System can request a Charge Point to change its availability. A Charge Point is considered available (“operative”) when it is charging or ready for charging. Upon receipt of a ChangeAvailability.req PDU, the Charge Point SHALL respond with a ChangeAvailability.conf PDU. In the event that Central System requests Chargepoint to change to a status it is already in, Charge Point SHALL respond with availability status ‘Accepted’.

[2,\"f7cc6335-1ff9-480a-8299-c4af287c4566\",\"ChangeAvailability\",{\"connectorId\":0,\"type\":\"Operative\"}]

Change Configuration

According to section 5.3 of OCPP 1.6, Central System can request a Charge Point to change configuration parameters. To achieve this, Central System SHALL send a ChangeConfiguration.req. This request contains a key-value pair, where "key" is the name of the configuration setting to change and "value" contains the new setting for the configuration setting.

[2,\"887cae6e-f6b7-49fc-a227-ea357c490f0f\",\"ChangeConfiguration\",{\"key\":\"AllowOfflineTxForUnknownId\",\"value\":\"false\"}]
[2,\"b4df7eea-82e3-4c5e-b2e9-479ff7296019\",\"ChangeConfiguration\",{\"key\":\"freecharging\",\"value\":\"True\"}]

An example for ChangeConfiguration.req and ChangeConfiguration.conf indicating whether it was able to apply the change to its configuration.

[2,\"4eb5dfc8-e2b7-4a71-9e4e-58c2eebca507\",\"ChangeConfiguration\",{\"key\":\"HeartbeatInterval\",\"value\":\"900\"}]
[3, \"4eb5dfc8-e2b7-4a71-9e4e-58c2eebca507\", {\"status\":\"Accepted\"}]

👍

please also check Supported Configuration Keys

Clear Cache

According to section 5.4 of OCPP 1.6, Central System can request a Charge Point to clear its Authorization Cache. The Central System SHALL send a ClearCache.req PDU for clearing the Charge Point’s Authorization Cache.

Set Charging Profile

With Smart Charging a Central System gains the ability to influence the charging power or current of a specific EV, or the total allowed energy consumption on an entire Charge Point / a group of Charge Points, for instance, based on a grid connection, energy availability on the gird or the wiring of a building.

👍

please also check how Easee supports Smart Charging

A Central System can send a SetChargingProfile.req to a Charge Point, to set a charging profile, in the following
situations:

  • At the start of a transaction to set the charging profile for the transaction;
  • In a RemoteStartTransaction.req sent to a Charge Point
  • During a transaction to change the active profile for the transaction;
  • Outside the context of a transaction as a separate message to set a charging profile to a local controller, Charge Point, or a default charging profile to a connector.
[2,\"EC107474@637975791164458967\",\"SetChargingProfile\",{\"connectorId\":1,\"csChargingProfiles\":{ChargingProfile}]
982

The Central System uses this message to send charging profiles to a Charge Point.

[2,\"74a84bf4-06d5-4118-b87d-e4ab50246eca\",\"SetChargingProfile\",{\"connectorId\":1,\"csChargingProfiles\":{\"chargingProfileId\":144385,\"stackLevel\":0,\"chargingProfilePurpose\":\"TxProfile\",\"chargingProfileKind\":\"Absolute\",\"validFrom\":\"2022-06-26T11:00:32Z\",\"chargingSchedule\":{\"chargingRateUnit\":\"A\",\"chargingSchedulePeriod\":[{\"startPeriod\":0,\"limit\":20,\"numberPhases\":3}],\"startSchedule\":\"2022-06-26T11:00:32Z\",\"minChargingRate\":20},\"transactionId\":732}}]

Clear Charging Profile

If the Central System wishes to clear some or all of the charging profiles that were previously sent to the Charge Point, it SHALL use the ClearChargingProfile.req PDU.
The Central System can use this message to clear (remove) either a specific charging profile (denoted by id) or a selection of charging profiles that match with the values of the optional connectorId, stackLevel and chargingProfilePurpose fields.

[2,\"410cfbd4-33f1-4958-9e9d-0b3154374562\",\"ClearChargingProfile\",{\"connectorId\":1}]

or

[2,\"febb2351-8df2-4fcd-870a-665c06781bdf\",\"ClearChargingProfile\",{\"id\":10}]

or

[2,\"c5f4d548-53b1-4c5e-8db9-bd574b75d27b\",\"ClearChargingProfile\",{\"id\":215890,\"connectorId\":0}]

or other combinations.

Trigger Message

According to section 5.17 in OCPP 1.6 docs, during normal operation, the Charge Point informs the Central System of its state and any relevant occurrences. If there is nothing to report the Charge Point will send at least a HeartBeat at a predefined interval.

[2,\"51754620-bdb9-4d44-899d-5b6cef63273a\",\"TriggerMessage\",{\"requestedMessage\":\"MeterValues\"}]

There are 2 questions to answer here :

  1. Under normal circumstances this is just fine, but what if the Central System has (whatever) reason to doubt the last known state?
  2. What can a Central System do if a firmware update is in progress and the last status notification it received about it was much longer ago than could reasonably be expected?

Unlock Connector

Central System can request a Charge Point to unlock a connector. To do so, the Central System SHALL send an UnlockConnector.req PDU.

❗️

Calling UnlockConnector will terminate any ongoing transaction, and will change the value of configuration key "UnlockConnectorOnEVSideDisconnect" to "true".

Send Local List

Central System can send a Local Authorization List that a Charge Point can use for authorization of idTags. The list MAY be either a full list to replace the current list in the Charge Point or it MAY be a differential list with updates to be applied to the current list in the Charge Point.

[2,\"ab26415d-6d6e-432d-9f89-7d9658acf07f\",\"SendLocalList\",{\"listVersion\":22,\"localAuthorizationList\":[{\"idTag\":\"04776E52697381\",\"idTagInfo\":{\"status\":\"Accepted\"}}],\"updateType\":\"Full\"}]
[2,\"6c0a3ef2-31c5-446a-a134-0538d147e8fe\",\"SendLocalList\",{\"listVersion\":4,\"localAuthorizationList\":[{\"idTag\":\"047CA2BA827180\",\"idTagInfo\":{\"status\":\"Accepted\"}},{\"idTag\":\"04F33712256E80\",\"idTagInfo\":{\"status\":\"Accepted\"}}],\"updateType\":\"Full\"}]

📘

💡 For more information on OCPP and how it works please read more at https://www.openchargealliance.org/