OCPI versus OCPP
Introduction
During development of smart charging services using charger data, it was observed that the OCPI protocol typically used between a sub-operator and the CPO does not facilitate the most convenient way to perform Smart Charging services.
Together with partners, Jedlix has developed two methods that can be leveraged by CPOs to exchange data with the Jedlix platform. These methods have been developed with OCPI and OCPP in mind, such that integration is enabled with limited development impact.
Both the OCPI (Open Charge Point Interface) and OCPP (Open Charge Point Protocol), play crucial roles but serve distinct purposes.
- OCPP specializes in facilitating communication between an EV charging station and its central management system, allowing for detailed, real-time insights and control, essential for optimized smart charging.
- In contrast, OCPI is vital for enabling communication between different EV charging networks and service providers, focusing on features like roaming and billing information exchange, but it typically lacks the comprehensive real-time monitoring provided by OCPP.
Supported methods for exchanging data
Jedlix, recognizing the significance of both protocols, and offers two distinct methods, each leveraging one of these protocols.
- The first method, utilizing OCPP, enables the seamless forwarding of essential charging station data, focusing on real-time transfer of crucial information.
- The second method, leveraging OCPI, is instrumental in registering and managing charging sessions.
Charger Identification
Currently, no open standard exists that prescribe how a CPO should onboard a charger on the Smart Charging Service Provider’s platform. However, the OCPP and OCPI standards do prescribe methods for identifying and EVSE or Charging Station that can be useful during these operations. This guide describes two options to identify EVSEs throughout CPO and eMSP systems.
Charger identification in OCPI
OCPI utilizes a different model, listed from the highest to the lowest level:
- Location: Location is a group of one or more EVSEs that belong together geographically or spatially.
- EVSE: EVSE is the part that controls the power supply to a single EV in a single session. An EVSE may provide multiple connectors but only one of these can be active at the same time.
- Connector: Connector is a specific socket or cable available for the EV to make use of.
Location object
The Location Object details the properties of the location where a group of related EVSEs are installed. In OCPI, every EVSE is distinguished by a uid
, serving as a unique identifier within the CPOs platform and any suboperator platforms. This attribute is permanent and is not subject to any alterations, modifications, or renaming. Given that OCPI interactions involve numerous entities, the uid
is a more reliable identifier compared to the evse_id
. This is because the evse_id
can be re-utilized by several CPOs and can be eliminated from an EVSE object if its status is marked as REMOVED. A typical OCPI location message and the EVSE Object attributes are illustrated in the provided example.
-
Location Example JSON
{ "country_code": "BE", "party_id": "BEC", "id": "LOC1", "publish": true, "name": "Gent Zuid", "address": "F.Rooseveltlaan 3A", "city": "Gent", "postal_code": "9000", "country": "BEL", "coordinates": { "latitude": "51.047599", "longitude": "3.729944" }, "parking_type": "ON_STREET", "evses": [{ "uid": "3256", "evse_id": "BE*BEC*E041503001", "status": "AVAILABLE", "capabilities": ["RESERVABLE"], "connectors": [{ "id": "1", "standard": "IEC_62196_T2", "format": "CABLE", "power_type": "AC_3_PHASE", "max_voltage": 220, "max_amperage": 16, "tariff_ids": ["11"], "last_updated": "2015-03-16T10:10:02Z" }, { "id": "2", "standard": "IEC_62196_T2", "format": "SOCKET", "power_type": "AC_3_PHASE", "max_voltage": 220, "max_amperage": 16, "tariff_ids": ["13"], "last_updated": "2015-03-18T08:12:01Z" }], "physical_reference": "1", "floor_level": "-1", "last_updated": "2015-06-28T08:12:01Z" }, { "uid": "3257", "evse_id": "BE*BEC*E041503002", "status": "RESERVED", "capabilities": ["RESERVABLE"], "connectors": [{ "id": "1", "standard": "IEC_62196_T2", "format": "SOCKET", "power_type": "AC_3_PHASE", "max_voltage": 220, "max_amperage": 16, "tariff_ids": ["12"], "last_updated": "2015-06-29T20:39:09Z" }], "physical_reference": "2", "floor_level": "-2", "last_updated": "2015-06-29T20:39:09Z" }], "operator": { "name": "BeCharged" }, "time_zone": "Europe/Brussels", "last_updated": "2015-06-29T20:39:09Z" }
-
EVSE Attributes
Property Type Cardinality Description uid CiString(36) 1 Uniquely identifies the EVSE within the CPOs platform (and suboperator platforms). This field can never be changed, modified, or renamed. This is the 'technical' identification of the EVSE, not to be used as 'human readable' identification, use the field evse_id for that. evse_id CiString(48) ? Compliant with the specification for EVSE ID from "eMI3 standard version V1.0" "Part 2: business objects." Optional because if an evse_id is to be re-used in the real world, the evse_id can be removed from an EVSE object if the status is set to REMOVED. status Status 1 Indicates the current status of the EVSE. status_schedule StatusSchedule * Indicates a planned status update of the EVSE. capabilities Capability * List of functionalities that the EVSE is capable of. connectors Connector + List of available connectors on the EVSE. floor_level string(4) ? Level on which the Charge Point is located (in garage buildings) in the locally displayed numbering scheme. coordinates GeoLocation ? Coordinates of the EVSE. physical_reference string(16) ? A number/string printed on the outside of the EVSE for visual identification. directions DisplayText * Multi-language human-readable directions when more detailed information on how to reach the EVSE from the Location is required. parking_restrictions ParkingRestriction * The restrictions that apply to the parking spot. images Image * Links to images related to the EVSE such as photos or logos. last_updated DateTime 1 Timestamp when this EVSE or one of its Connectors was last updated (or created).
Charger identification in OCPP
OCPP 2.0 and subsequent versions use the following model:
- Charging Station: The Charging Station is the physical system where EVs can be charged. A Charging Station has one or more EVSEs.
- EVSE: An EVSE is considered as an independently operated and managed part of the Charging Station that can deliver energy to one EV at a time. Each can have one or more Connectors.
- Connector: Connector is a specific socket or cable available for the EV to make use of.
Charging station object
The models differ on the highest level, the equivalent of a Location in OCPI is the Charging Station in OCPP. OCPP does not define a standard format of a Charging Location. Jedlix proposes the following format. A Charging Station is identified by a uid
. Each Charging Station can contain multiple EVSEs. These are identified by integers within the the Charging Station (1,2,etc…) and are not unique identifiers. Therefore a specific EVSE can be distinguished by the combination of the Charging Station uid
and evse_id
.
-
Charging Station Example JSON
{ "charging_station": { "uid": "5f69ad2c0ed5ca86d449cc93", "evses": [{ "evse_id": 1, "capabilities": ["CHARGING_PROFILE_CAPABLE"], "connectors": [{ "id": "1", "power_type": "AC_3_PHASE", "max_voltage": 220, "max_amperage": 16 }] }, { "evse_id": 2, "capabilities": ["CHARGING_PROFILE_CAPABLE"], "connectors": [{ "id": "1", "power_type": "AC_3_PHASE", "max_voltage": 220, "max_amperage": 16 }, { "id": "2", "power_type": "AC_1_PHASE", "max_voltage": 220, "max_amperage": 16 }] }] } }
-
EVSE Attributes
Field Name Field Type Cardinality Description id integer 1..1 Required. EVSE Identifier. This contains a number (> 0) designating an EVSE of the Charging Station. connectorId integer 0..1 Optional. An id to designate a specific connector (on an EVSE) by connector index number.
Mapping of Charger Data to a Charger
We have now learned that chargers can be identified in multiple ways, such as:
- In a 2-tier model (OCPI);
- through the
evse_id
, the charger hardware identification (eMI3 standard), or; - through
evse_uid
, the unique identifier in the CPO platform.
- through the
- In a 3-tier model (OCPP);
- though the combination of the
chargingStation_uid
andevse_id
, combining the unique identifier in the CPO platform with the integer to identify the specific EVSE.
- though the combination of the
At Jedlix, we prefer using the unique identifier to distinguish EVSEs in the CPO platform. This is because the evse_id
can be reused and removed by the CPO, making it less suitable for cross-referencing between the CPO and SCSP platform.
Ultimately, this will be used as the unique identifier in the CPO platform to map the incoming charger data and send control signals.
Updated 9 months ago