Skip to content

C++ implementation of the Open Charge Point Protocol

License

Notifications You must be signed in to change notification settings

EVerest/libocpp

Repository files navigation

C++ implementation of OCPP

Github Actions

This is a C++ library implementation of OCPP for version 1.6, 2.0.1 and 2.1. (see OCPP protocols at OCA website). The OCPP2.0.1 implementation of libocpp has been certified by the OCA for multiple hardware platforms.

Libocpp's approach to implementing the OCPP protocol is to address as much functional requirements as possible as part of the library. Since OCPP is a protocol that affects, controls, and monitors many areas of a charging station's operation this library needs to be integrated with your charging station firmware.

Integration with EVerest

This library is integrated within the OCPP and OCPP201 module within everest-core - the complete software stack for your charging station. It is recommended to use EVerest together with this OCPP implementation.

Getting Started

Check out the Getting Started guide. It should be you starting point if you want to integrate this library with your charging station firmware.

Get Involved

See the COMMUNITY.md and CONTRIBUTING.md of the EVerest project to get involved.

OCPP1.6

Supported Feature Profiles

OCPP1.6 is fully implemented.

Feature Profile Supported
Core ✅ yes
Firmware Management ✅ yes
Local Auth List Management ✅ yes
Reservation ✅ yes
Smart Charging ✅ yes
Remote Trigger ✅ yes
Whitepapers & Application Notes Supported
OCPP 1.6 Security Whitepaper (3rd edition) ✅ yes
Using ISO 15118 Plug & Charge with OCPP 1.6 ✅ yes
OCPP & California Pricing Requirements ✅ yes

CSMS Compatibility

The EVerest implementation of OCPP 1.6 has been tested against the OCPP Compliance Test Tool (OCTT and OCTT2) during the implementation.

The following table shows the known CSMS with which this library was tested.

  • chargecloud
  • chargeIQ
  • Chargetic
  • Compleo
  • Current
  • Daimler Truck
  • ev.energy
  • eDRV
  • Fastned
  • Open Charging Cloud (GraphDefined)
  • Electrip Global
  • EnergyStacks
  • EV-Meter
  • Fraunhofer IAO (ubstack CHARGE)
  • Green Motion
  • gridundco
  • ihomer (Infuse CPMS)
  • iLumen
  • JibeCompany (CharlieV CMS and Chargebroker proxy)
  • MSI
  • PUMP (PUMP Connect)
  • Scoptvision (Scopt Powerconnect)
  • Siemens
  • SteVe
  • Syntech
  • Trialog
  • ubitricity
  • Weev Energy

OCPP2.0.1

Supported Functional Blocks

Feature Profile Supported
A. Security ✅ yes
B. Provisioning ✅ yes
C. Authorization ✅ yes
D. LocalAuthorizationList Management ✅ yes
E. Transactions ✅ yes
F. RemoteControl ✅ yes
G. Availability ✅ yes
H. Reservation ✅ yes
I. TariffAndCost ✅ yes
J. MeterValues ✅ yes
K. SmartCharging WIP
L. FirmwareManagement ✅ yes
M. ISO 15118 CertificateManagement ✅ yes
N. Diagnostics ✅ yes
O. DisplayMessage ✅ yes
P. DataTransfer ✅ yes

The development of OCPP2.0.1 is in progress. Check the detailed current implementation status..

Whitepapers & Application Notes Supported
OCPP & California Pricing Requirements ✅ yes

CSMS Compatibility OCPP 2.0.1

The current, ongoing implementation of OCPP 2.0.1 has been tested against a few CSMS and is continuously tested against OCTT2.

Additionally, the implementation has been tested against these CSMS:

OCPP2.1

The implementation of OCPP2.1 is currently under development.