A carefully curated list of specifications, tools, and resources for electric vehicle (EV) charging protocols — a central point of information for developers and enthusiasts working in the e-mobility space.
The Open Charge Point Protocol (OCPP) is a communication protocol between electric vehicle charging stations and a central management system.
- Wikipedia
- Open Charge Aliance
- Specifications
- 2.1 (2025-01)
- 2.0.1 (2020-04)
- 2.0 (deprecated) (2018)
- 1.6 (2015)
- 1.6 - Security Whitepaper Ed3
- 1.x - Multiple Connectors per EVSE
- 1.5 (deprecated) (2012)
- 1.2 (deprecated) (2010)
- Configuration Keys (1.6) - Reference table of OCPP 1.6 configuration keys.
ISO 15118 is an international standard for communication between electric vehicles and the charging station.
The Open Charge Point Interface (OCPI) is a protocol for roaming between charging station networks.
-
- 2.3.0-d2 (2026-06)
- 2.3.0 (2025-02)
- 2.2.1 (2021-10)
- 2.2.0-d2 - Deprecated, use 2.2.1 instead (2020-06)
- 2.2.0 - Deprecated, use 2.2.0-d2 instead (2019-09)
- 2.1.1-d2 (2019-06)
- 2.1.1 - Deprecated, use 2.1.1-d2 instead (2017-06)
- 2.1.0 - Deprecated, contains some bugs, use 2.1.1 instead (2016-04)
- 2.0 (2016-02)
-
ocpi.github.io - OCPI feature-development hub: proposals and processes for upcoming spec versions.
-
Official OpenAPI/Swagger definitions and migration guides (rendered from the openapi-specification project).
-
ocpi.fyi - A browsable rendering of the OCPI specification with an API reference and version comparison. 🏅
- 2.3.0 Swagger (unofficial)
- 2.2.1 Swagger (unofficial)
- 2.1.1 Swagger (unofficial)
OCPI 2.3.0 is published as a core specification plus optional modules packaged separately.
Core functional modules:
| Module | Specification per version |
|---|---|
| Locations | 2.1.1, 2.2.1, 2.3.0 |
| Sessions | 2.1.1, 2.2.1, 2.3.0 |
| CDRs | 2.1.1, 2.2.1, 2.3.0 |
| Tariffs | 2.1.1, 2.2.1, 2.3.0 |
| Tokens | 2.1.1, 2.2.1, 2.3.0 |
| Commands | 2.1.1, 2.2.1, 2.3.0 |
| Charging Profiles | 2.2.1, 2.3.0 |
| Hub Client Info | 2.2.1, 2.3.0 |
| Invoice Reconciliation | 2.3.0 (ed2) |
Additional modules (packaged separately). Payments and Bookings are optional, evolve independently of the core, and are published as standalone PDFs bundling a core edition with the module. They are independent from each other and from Invoice Reconciliation — an implementation may support any of them on its own.
- Payments (2.3.0)
- Booking (2.3.0) — exact version labels are still being settled; the OCPI editors deferred on this in ocpi/ocpi#572
Extensions (vendor / community):
| Extension | OCPI version | Source | Date |
|---|---|---|---|
| Direct Payment | 2.2.1 | EVRoaming | 2024-03 |
| e-PoI service | 2.2.1 | Gireve | 2025-10 |
| Accessibility extension | 2.3.0, 3.0 | EVRoaming | 2025-12 |
| Autocharge | 2.3.0 | Community | — |
Roaming relies on ID Registration Offices (IDRO) that assign and publish the operator (CPO) and provider (eMSP) identifiers exchanged over OCPI.
- Identification Registration Repository - The European reference, maintained by the European Alternative Fuels Observatory.
- IDRO Directory - A global directory aggregating e-mobility identifiers from national and regional IDRO registries.
Roaming platforms (hubs) that interconnect CPOs and eMSPs, by founding year:
- 🇩🇪 Hubject (2012)
- 🇫🇷 Gireve (2013)
- 🇩🇪 e-clearing.net (2014)
- 🇩🇪 eNAPI (2024)
- 🇫🇷 CO-OP ev (2026)
The Open InterCharge Protocol (OICP) is another protocol for roaming, developed by Hubject.
The eMobility Protocol Inter-Operation (eMIP) is a roaming protocol developed by Gireve.
- Protocol description v1.0.17 (2025-02)
- Implementation guide v1.0.7 (2022-09)
eMI³ (eMobility ICT Interoperability) was a European initiative for e-mobility interoperability.
- Website (archived)
- Document index - Every PDF the website published, with a verified archived copy where one survives.
- Statement on quality of e-mobility service - Using publicly accessible charging infrastructures (2020-06).
- Specifications
- eMi³ standard version V1.1 electric vehicle ICT interface specifications (2019-10)
- eMi³ standard version V1.0 electric vehicle ICT interface specifications (2019-10)
NeMo (Hyper-Network for electroMobility) was a European Horizon 2020 project (2016–2019) that defined a common information model and an open inter-roaming protocol to connect e-mobility platforms.
- Website (archived)
- Deliverables (archived)
- Document index - Every PDF the website published, with its original and archived links.
- Specifications
- D3.2 Open European Inter-Roaming Protocol - Draft (2017-12).
- Common Information Models v1.0 (2017-09)
- D3.3 deliverable
- Standalone edition - Model chapters only, without the deliverable front matter.
- D2.3 Standards and protocols - Subject to EC approval (2019-10).
- Requirements and methodology
- D1.1 Use cases and actors' requirements (2017-06)
- D1.3 Interoperability and regulatory requirements (2017-10)
- D7.1 Global adoption and self-certification methodology for CPOs and EMPs - Subject to EC approval (2019-02).
- Validation and tooling
- D6.3 Hyper-Network validation (2019-11)
- Service Creation Tools manual (2018-05)
Eichrecht is a German law for calibration and verification of measuring instruments, which applies to EV charging.
This list features actively maintained, curated projects. Dormant, archived, or not-yet-reviewed projects are collected separately in legacy-projects.md. Charging Station Management Systems — source-available and commercial, with their OCA certificates, OCPP versions and API availability — are catalogued in csms.md.
- steve-community/steve - SteVe is a Java-based charging station management system that administers charge points, users, and RFID authentication through OCPP (OCPP 1.2, 1.5, 1.6 · Java · ⭐ 1148).
- dallmann-consulting/OCPP.Core - OCPP.Core is a .NET-based OCPP server with a web interface for managing charge points, connectors, transactions, and charging tokens (OCPP 1.6, 2.0, 2.1 · C# · ⭐ 309).
- citrineos/citrineos-core - CitrineOS is a TypeScript-based modular server runtime and operator interface for managing EV charging infrastructure via OCPP 1.6 and 2.0.1 (OCPP 1.6, 2.0.1, 2.1 · TypeScript · ⭐ 308).
- EVtivity/evtivity-csms - EVtivity is a charging station management system implementing OCPP, OCPI roaming, ISO 15118 Plug and Charge, operator APIs, and web interfaces for operators and drivers (OCPP 1.6, 2.0.1, 2.1 · TypeScript · ⭐ 34).
- apostoldevel/ocpp-cs - A C++20 central system and charge point emulator supporting OCPP 1.5, 1.6, and 2.0.1 (OCPP 1.5, 1.6, 2.0.1 · C++ · ⭐ 80).
- yuncitys/charging-cloud-web - Open-source enterprise-level charging station management system (CSMS) supporting OCPP 1.5, 1.6J, and 2.0J protocols for electric vehicles and e-bikes, built with Spring Cloud microservices and Vue.js frontend (OCPP 1.6, 2.0 · Vue · ⭐ 27).
- gertjana/ocpp-backend - An Elixir backend implementing OCPP 1.6 and limited OCPP 2.0 support for connecting to and managing EV chargers (OCPP 1.6, 2.0 · Elixir · ⭐ 23).
- srcfl/ftw - FTW is a local-first home energy management system that coordinates solar generation, batteries, grid power, EV charging, and thermal assets on Raspberry Pi or Linux (OCPP 1.6, 2.0.1 · Go · ⭐ 23).
- vampirebyte/rabbitmq-web-ocpp - A RabbitMQ plugin that accepts OCPP 1.6J and 2.x messages over WebSockets and translates them into AMQP messages (Erlang · ⭐ 19).
- savekar-ev/OCPP-1.6-Charging-Point-Management-System - An open-source full-stack Charge Point Management System that manages EV chargers using OCPP 1.6 JSON (OCPP 1.6 · TypeScript · ⭐ 17).
- joulo-nl/joulo-ocpp-proxy - Joulo-ocpp-proxy is a Node.js/TypeScript WebSocket proxy that forwards OCPP traffic between EV chargers and a primary CSMS while optionally mirroring charger messages to secondary CSMS backends (OCPP 1.6, 2.0, 2.0.1 · TypeScript · ⭐ 15).
- gyzod/ocpp2mqtt - A Python gateway that converts OCPP 1.6 messages to MQTT and MQTT messages to OCPP for integrating EV charging stations with automation systems (OCPP 1.6 · Python · ⭐ 11).
- OpenChargingCloud/CSMSCLI - A C#/.NET Charging Station Management System that manages charging stations and operates as an OCPI charge point operator (OCPP 1.6, 2.1 · C# · ⭐ 9).
- davbauer/ocpp-manager - OCPP Manager is an open-source platform for monitoring and managing EV charging stations, RFID authorizations, and charging transactions through a web interface (TypeScript · ⭐ 8).
- SolarNetwork/solarnetwork-central - SolarNet is a cloud platform that manages SolarNetwork accounts and nodes, accepts SolarNode data, and exposes REST APIs for accessing it (Java · ⭐ 7).
- unified-error-codes/csds - UEC Software Stack provides charging-station diagnostics through unified error codes and telemetry, with a backend, web dashboard, and EVSE agent communicating via OCPP (Python · ⭐ 7).
- Beep-Technologies/esteban-ocpp - Esteban-OCPP is a Golang OCPP server providing charge-point, user, transaction, and REST administration functions (OCPP 2.0 · Go · ⭐ 5).
- parklapp/steve-pluggable - SteVe is a Java-based OCPP server for managing electric vehicle charging stations, users, RFID cards, and related operations (OCPP 1.2, 1.5, 1.6 · Java · ⭐ 4).
- juherr/evolve - EVolve is a Java implementation of an OCPP server for electric vehicle charging systems (Java · ⭐ 4).
- evlinked/ocpp-rs - A Rust implementation of OCPP 1.6J and partially OCPP 2.0.1 providing a CSMS server, charge point simulator, conformance tests, and observability (OCPP 1.6, 2.0.1 · Rust · ⭐ 4).
- erik73/app-steve - A Home Assistant add-on that runs the SteVe OCPP server to communicate with charge points (Dockerfile · ⭐ 3).
- eliodecolli/Medinilla - Medinilla is an ASP.NET Core backend implementing OCPP functionality for managing electric vehicle charging stations (OCPP 2.0.1 · C# · ⭐ 3).
- eveys-mobility/OCPP - A Python-based OCPP 1.6/2.0.1 gateway that manages EV charger WebSocket connections and exposes REST, gRPC, Kafka, and webhook interfaces (OCPP 1.6, 2.0.1 · Python · ⭐ 3).
- elton-saraci/ocpp-central-system - An open-source Java backend that manages EV charging stations through OCPP 1.6 over WebSockets and provides REST APIs for monitoring and control (OCPP 1.6 · Java · ⭐ 3).
- mohsinali33226/ocpp-charging-operations-lab - An OCPP 1.6 system that simulates charging stations and provides a CSMS for monitoring, remote operations, smart charging, and failure recovery (OCPP 1.6, 2.0.1 · HTML · ⭐ 2).
- wimhaanstra/virtual-ocpp - Virtual OCPP is a self-hosted OCPP 1.6J service that connects Smart EVSE chargers to a local CSMS, records charging activity, proxies selected traffic, and provides monitoring dashboards (OCPP 1.6 · TypeScript · ⭐ 2).
- zeloscloud/zelos-extension-ocpp - An OCPP server extension for the Zelos App that collects real-time meter data from charge points and monitors fleet health (OCPP 1.6, 2.0.1 · Python · ⭐ 1).
- LastProject-ESIEE/OCPPConfigurationServer - A Spring Boot web application implementing an OCPP websocket server for configuring and managing charge points (Java · ⭐ 1).
- alexeimoisseev/ocpp-server-typescript - A TypeScript WebSocket server that supports core OCPP 1.6J and 2.0.1 charging operations for testing and learning (OCPP 1.6, 2.0.1 · TypeScript · ⭐ 1).
- amolsurjuse/ocpp-service - A Spring Boot microservice that manages OCPP WebSocket connections to electric vehicle charging stations and routes charging commands and messages (OCPP 2.0.1 · Java · ⭐ 1).
- codetics-software/ev-server-lite - A Spring Boot-based EV charging supervision server implementing OCPP 1.6 and OCPI 2.1.1 with a Next.js dashboard for charging management, sessions, and payment (OCPP 1.6 · Kotlin · ⭐ 1).
- juherr/steve-ocpp-csms-image - A community-maintained project that builds ready-to-run Docker images for the SteVe open-source OCPP Central System (Shell · ⭐ 1).
- citrineos/citrineos - CitrineOS is an open-source charging station management system implementing OCPP 1.6 and 2.x for communication between charging stations and charge management software (OCPP 1.6, 2.0.1 · ⭐ 158).
- SAP/e-mobility-charging-stations-simulator - A Node.js application that simulates and scales charging stations using the OCPP-J protocol (OCPP 1.6, 2.0, 2.0.1 · TypeScript · ⭐ 232).
- monta-app/ocpp-emulator - An open-source Kotlin Multiplatform desktop application that emulates OCPP 1.6 and 2.0.1 charge points for testing and local development (OCPP 1.6, 2.0.1 · Kotlin · ⭐ 182).
- ozgurbayram/OCPPSimulator - A web-based simulator that emulates OCPP charge points to test communication with charge station management systems (OCPP 1.6 · TypeScript · ⭐ 35).
- solidstudiosh/ocpp-virtual-charge-point - A configurable, terminal-based OCPP charging station simulator written in Node.js with support for OCPP versions 1.2, 1.6, 2.0.1, and 2.1, featuring schema validation and multi-connector configuration (OCPP 1.2, 1.6, 2.0.1 · TypeScript · ⭐ 122).
- shiv3/ocpp-cp-simulator - An OCPP charge point simulator with browser, CLI, and control APIs for testing AI agents, CI workflows, and CSMS implementations (OCPP 1.2, 1.5, 1.6, 2.0.1, 2.1 · TypeScript · ⭐ 47).
- OpenChargingCloud/ChargingStationApp - An Electron-based virtual charging station that implements OCPP versions 1.6, 2.0.1, and 2.1 for testing and certification (OCPP 1.6, 2.0.1, 2.1 · TypeScript · ⭐ 42).
- virta-ltd/charge-device-simulator - A Python-based collection of EV charging device simulators supporting protocols such as OCPP and Ensto (Python · ⭐ 21).
- road-labs/chargestation-one - A browser-based charging station simulator supporting OCPP 1.6 and OCPP 2.0.1, including OCMF meter-data signing (OCPP 1.6, 2.0.1, 2.1 · Less · ⭐ 18).
- c-jimenez/open-ocpp-simu - A charge point simulation environment that uses Open OCPP to simulate charge points communicating with an OCPP central system and MQTT to coordinate its components (C++ · ⭐ 16).
- tzi-app/tzi-OCTT - A Python pytest test suite implementing OCTT scenarios to verify CSMS implementations against OCPP 2.0.1 and OCPP 1.6J using mock charge points and a minimal CSMS (OCPP 1.6, 2.0.1 · Python · ⭐ 11).
- kwtycoon/kilowatt-tycoon - Kilowatt Tycoon is a Rust/Bevy tycoon game and full-stack EV charging network simulator that models grid operations, charger faults, and OCPP, OCPI, and OpenADR data flows (OCPP 1.6 · Rust · ⭐ 7).
- PlugSecure-Inc/ocpp-simulator-lab - An end-to-end testing tool that simulates OCPP charge points and charge point management systems through a web interface (OCPP 1.6, 2.0.1, 2.1 · Python · ⭐ 6).
- ZhongRuoyu/ocppsim - A terminal-based OCPP-J charge point simulator written in Rust that connects to a CSMS over WebSocket for protocol testing and development (OCPP 1.6, 2.0.1, 2.1 · Rust · ⭐ 5).
- elton-saraci/ocpp-charge-point-simulator - A Java-based OCPP 1.6 charge point simulator that manages multiple charge points through a REST API and web console (OCPP 1.6 · Java · ⭐ 5).
- vfg27/EmuOCPP - EmuOCPP is a Mininet/IPMininet-based emulator for testing OCPP 1.6, 2.0, and 2.0.1 communications between charging stations and central management systems (OCPP 1.6, 2.0, 2.0.1 · Python · ⭐ 5).
- flowionab/charge-point-simulator - Flowion Charge Point Simulator emulates EV charge points using OCPP for testing and validating charging infrastructure and CSMS software (OCPP 1.6, 2.0.1, 2.1 · Rust · ⭐ 4).
- ReliON-Charging/everest-dcfc - A multi-architecture container that simulates an EVerest-based DC fast charger with configurable connectors and OCPP versions for testing (OCPP 1.6, 2.0.1, 2.1 · C++ · ⭐ 4).
- road-labs/ocpp-trace-replayer - A command-line tool that replays Open OCPP Trace files against OCPP backends, with support for multiple OCPP versions and message rewrites (OCPP 1.5, 1.6, 2.0.1, 2.1 · Go · ⭐ 3).
- wirelane/ocpp-client-simulator - A Node.js command-line simulator of an OCPP 1.6 charging station that connects to OCPP servers and supports configurable charging scenarios and signed meter values (OCPP 1.6 · JavaScript · ⭐ 3).
- hlsxx/ocpp-charge-point-simulator - A Rust CLI that simulates OCPP 1.6 charge points for testing and load-testing OCPP backends (OCPP 1.6, 2.0.1, 2.1 · Rust · ⭐ 2).
- I-Love-OCPP/Charge-Point-Simulator - A React and TypeScript web application for simulating an electric vehicle charge point (TypeScript · ⭐ 1).
- tux-evse/afb-ocpp-ext - An AFB microservice extension that provides OCPP 1.6 and 2.0.1 client connectivity (OCPP 1.6, 2.0.1 · ⭐ 2).
- OpenChargingCloud/WWCP_OCPP - A software library for building OCPP v1.6, v2.0.1, and v2.1 services and gateways connecting OCPP systems with WWCP (OCPP 1.5, 1.6, 2.0.1, 2.1 · ⭐ 71).
- c-jimenez/open-ocpp - Open-source C++ library implementing the WebSocket/JSON versions of OCPP 1.6 and 2.0.1 (OCPP 1.6, 2.0.1 · ⭐ 174).
- matth-x/MicroOcpp - C/C++ OCPP 1.6 / 2.0.1 client library for microcontroller-based EV charging equipment, supporting Espressif, Arduino, NXP, STM, Linux and other platforms (OCPP 1.6, 2.0.1 · ⭐ 547).
- Tinkerforge/tfocpp - A C++ library implementing OCPP 1.6J Core and Smart Charging profiles for integration into EV charger firmware (OCPP 1.6 · ⭐ 4).
- aliml92/ocpp - A Go library implementing the JSON-based Open Charge Point Protocol (OCPP) versions 1.6 and 2.0.1 for charge point clients and central systems (OCPP 1.6, 2.0.1 · ⭐ 27).
- ChargePi/ocpp-manager - A Go library for managing and validating OCPP charging-station configuration variables, including versioned and mandatory keys (OCPP 1.6, 2.0.1 · ⭐ 6).
- shiv3/gocpp - Gocpp is a Go library implementing OCPP 1.6, 2.0.1, and 2.1 for typed CSMS and charge-point communication with JSON-schema validation (OCPP 1.6, 2.0.1, 2.1 · ⭐ 5).
- road-labs/ocppj-go - A Go library implementing OCPP-J communication over WebSockets for client and server applications (OCPP 1.6, 2.0.1 · ⭐ 4).
- road-labs/ocpp-types-go - A Go library providing strongly typed message definitions and routing helpers for OCPP versions 1.5, 1.6, 2.0.1, and 2.1 (OCPP 1.5, 1.6, 2.0.1, 2.1 · ⭐ 3).
- aasanchez/ocpp16messages - A Go library that defines and validates OCPP 1.6 request and response message types for EV charging systems (OCPP 1.6 · ⭐ 2).
- ChargeTimeEU/Java-OCA-OCPP - Java library implementing OCPP client and server functionality for OCPP 1.6, 2.0.1, and 2.1 using JSON and SOAP transports (OCPP 1.6, 2.0.1, 2.1 · ⭐ 380).
- mikuso/ocpp-rpc - A Node.js client and server library implementing OCPP-J RPC over WebSockets for OCPP 1.6J, 2.0.1J, and 2.1 (OCPP 1.6, 2.0.1, 2.1 · ⭐ 136).
- argonne-vci/node-red-contrib-ocpp - Node-RED nodes for communicating with EVSE charge points and central systems using OCPP 1.5 and 1.6 over SOAP and JSON (OCPP 1.5, 1.6 · ⭐ 37).
- ampeco/cpd-ocpp - A JavaScript library implementing and validating OCPP 1.6 JSON communication between charging stations and central systems (OCPP 2.0 · ⭐ 3).
- BSVKey/ocmf-kit - A zero-dependency toolkit that generates and verifies OCMF-signed EV-charging meter readings, tests invalid sessions, and maps them to OCPP signed-meter-value formats (OCPP 2.0.1 · ⭐ 1).
- monta-app/library-ocpp - A Kotlin library for implementing OCPP 1.6 and OCPP 2.0.1 communication between charge points and servers (OCPP 1.6 · ⭐ 6).
- IZIVIA/ocpp-toolkit - A Kotlin library implementing the OCPP charging protocol for both charging stations and management systems across versions 1.2–2.0.1 (SOAP and JSON/WebSocket) (OCPP 1.2, 1.5, 1.6, 2.0 · ⭐ 46).
- I-Love-OCPP/sdk-1.6j - A Kotlin SDK for implementing an OCPP 1.6 JSON Central System (OCPP 1.6 · ⭐ 1).
- mobilityhouse/ocpp - Python library implementing the Open Charge Point Protocol (OCPP) in JSON format, supporting versions 1.6, 2.0.1, and 2.1 (OCPP 1.6, 2.0.1, 2.1 · ⭐ 1050).
- tommymalmqvist/rust-ocpp - A Rust library implementing and validating OCPP versions 1.6, 2.0.1, and work-in-progress 2.1 for EV charging stations (OCPP 1.6, 2.0.1, 2.1 · ⭐ 106).
- flowionab/ocpp-client - A Rust library implementing the communication layer for OCPP-enabled charge points and CSMS integrations, supporting OCPP 1.6J, 2.0.1, and 2.1 over WebSocket (OCPP 1.6, 2.0.1, 2.1 · ⭐ 8).
- flowionab/ocpp-charge-point - A Rust framework for developing EV charger firmware with OCPP 1.6J and 2.0.1 support (OCPP 1.6, 2.0.1, 2.1 · ⭐ 7).
- hupe1980/ocpp-kit - A Rust library providing typed, layered abstractions for OCPP 1.6J, 2.0.1, and 2.1 over JSON/WebSocket, with protocol framing, a sans-I/O engine, transport layer, and optional higher-level domains for charging stations and CSMS backends (OCPP 1.6, 2.0.1, 2.1 · ⭐ 4).
- voltbras/ts-ocpp - A TypeScript library implementing OCPP central system and charge point communication for OCPP-JSON 1.6 and OCPP-SOAP 1.5 (⭐ 48).
- jacoscaz/typed-ocpp - A TypeScript library for type-aware validation of OCPP 1.6, 2.0.1, and 2.1 messages using the Open Charge Alliance’s JSON Schemas (OCPP 1.6, 2.0, 2.1 · ⭐ 11).
- connected-hil/ocpp-tools - A TypeScript library providing OCPP 1.6 and 2.0.1 message types, parsers, schemas, and validation utilities (OCPP 1.6, 2.0.1, 2.1 · ⭐ 8).
- ocpp-debugkit/toolkit - OCPP DebugKit is an open-source developer toolkit for inspecting, analyzing, replaying, testing, and reporting OCPP charging-session traces locally (⭐ 7).
- ocpptools/ocpptools - Open-source TypeScript monorepo providing OCPP 1.6J and 2.0.1 libraries for frame parsing, validation, schema-driven simulation, and message construction (OCPP 1.6, 2.0.1 · ⭐ 1).
- lbbrhzn/ocpp - A Home Assistant integration for controlling and monitoring electric vehicle chargers using OCPP 1.6J, 2.0.1, and experimental 2.1 (Python · ⭐ 413).
- EVerest/EVerest - EVerest is a modular open-source full-stack framework for building EV charging systems with support for OCPP 1.6/2.0/2.1 and ISO 15118-2/3/20 protocols (OCPP 1.6, 2.0.1, 2.1 · C++ · ⭐ 293).
- evcc-io/evcc - Evcc is a local EV charge controller and home energy management system that coordinates charging with chargers, meters, solar, batteries, and other energy devices (Go · ⭐ 7539).
- OpenEVSE/openevse_esp32_firmware - OpenEVSE ESP32 firmware that provides a WiFi gateway, web interface, energy-management features, and integrations for an OpenEVSE charger (OCPP 1.6 · C · ⭐ 283).
- SmartEVSE/SmartEVSE-3 - Open source EVSE (Electric Vehicle Supply Equipment) controller with OCPP 1.6j support, smart charging capabilities, and multi-module power sharing (OCPP 1.6 · C · ⭐ 238).
- ChargeLab/OpenOCPP - Multi-platform OCPP 1.6/2.0.1 embedded firmware for electric vehicle charging stations (OCPP 1.6, 2.0.1 · C++ · ⭐ 91).
- ChargePi/ChargePi-go - ChargePi is a Linux-based framework for building and managing EV charging stations, with hardware abstraction, OCPP 1.6 support, a management UI, and an API (OCPP 1.6, 2.0.1, 2.1 · Go · ⭐ 54).
- nader0913/ocpp-rag - MCP server providing semantic search and retrieval of OCPP 1.6, OCPP 2.0.1, and ISO 15118 Plug & Charge specifications, use cases, and documentation (OCPP 1.6, 2.0.1 · Python · ⭐ 53).
- alexeimoisseev/ocpp.md - A structured reference and documentation repository for developing with OCPP 2.1, 2.0.1, and 1.6J (OCPP 1.6, 2.0.1, 2.1 · Python · ⭐ 31).
- ocpp-balanz/ocpp-2w-proxy - An OCPP proxy that forwards charger messages between the charger and primary and secondary central systems (Python · ⭐ 18).
- appspace/kwwhat - Kwwhat is a dbt-based open-source data pipeline that transforms raw OCPP charging logs into structured analytics models for charger reliability and utilization metrics (OCPP 1.6, 2.0.1, 2.1 · ⭐ 15).
- vfg27/CheckOCPP - CheckOCPP is a Wireshark dissector that detects OCPP versions, validates message structures, and flags non-compliant unencrypted packets (OCPP 1.6, 2.0, 2.0.1 · Lua · ⭐ 13).
- chargex-consortium/ev-charge-seq-state - A collection of UML sequence diagrams and finite-state-machine models describing SAE J1772 PWM, ISO 15118 HLC, and OCPP charging workflows (OCPP 1.6, 2.0.1, 2.1 · ⭐ 8).
- michael-adler/ha-ocpp-relay - Home Assistant integration that relays OCPP communication between EV chargers and remote management servers while exposing OCPP traffic as Home Assistant sensors (Python · ⭐ 7).
- juherr/open-ocpp-tck - Open-ocpp-tck is an open-source test harness for OCPP 1.6 and 2.0.1 CSMS conformance testing that drives a charge-point simulator and verifies OCPP wire messages (OCPP 1.6, 2.0.1 · TypeScript · ⭐ 6).
- ChargePi/chargeflow - ChargeFlow is a CLI tool that validates OCPP 1.6, 2.0.1, and 2.1 JSON messages against schemas and checks OCMF-compatible meter values (OCPP 1.6, 2.0.1, 2.1 · Go · ⭐ 4).
- ocpp-debugkit/studio - A native Zig desktop application and CLI for capturing, decoding, analyzing, and replaying OCPP 1.6J charging-session traces, including live WebSocket proxying between charge points and CSMS backends (OCPP 1.6 · Zig · ⭐ 4).
- open-ocpp-trace/specification - An implementation-independent JSON/JSONL specification for recording, validating, and exchanging OCPP message traces (JavaScript · ⭐ 4).
- sepehr-safari/ocpp-handbook - A vendor-neutral, comprehensive course on EV charging protocols (OCPP, OCPI, ISO 15118), industry context, hardware, and practical debugging techniques for software engineers (OCPP 1.6, 2.0.1 · JavaScript · ⭐ 3).
- eliodecolli/ocpp-test-cases - A repository of AI-generated test cases for the base implementation of OCPP 2.0.1 (OCPP 2.0.1 · Python · ⭐ 1).
- OpenChargingTechnology/OCPP-SBOM - Formal SBOM (CycloneDX and SPDX) representations of OCPP specification bundles for supply-chain transparency and reproducibility (OCPP 2.1 · ⭐ 1).
- citrineos/citrineos-ocpi - A set of modules that adds OCPI 2.2.1 CPO functionality to CitrineOS Core (OCPI 2.2.1 · TypeScript · ⭐ 23).
- olisystems/ocn-node-v2 - A Kotlin and Spring Boot service that brokers OCPI traffic between parties and integrates with the Open Charging Network Registry (OCPI 2.2 · Kotlin · ⭐ 1).
- savekar-ev/OCPI-2.2.1-EMSP-Simulator - A Python simulator of an OCPI 2.2.1 EMSP used to validate CPO implementations, credentials exchanges, and schema compliance (OCPI 2.2.1 · Python · ⭐ 10).
- rally-finance/ocpi-mock-hub - A Go-based mock OCPI 2.2.1 hub server that simulates charging-network interactions for integration development and testing (OCPI 2.2.1 · Go · ⭐ 5).
- OpenChargingCloud/WWCP_OCPI - A software implementation that enables communication between WWCP entities and OCPI-compliant entities across OCPI versions 2.1.1, 2.2.1, 2.3.0, and 3.0 (OCPI 2.0, 2.1, 2.1.1, 2.2, 2.2.1, 2.3.0 · ⭐ 29).
- BitzArt/OCPI.Net - OCPI.Net is a C#/.NET implementation of the OCPI protocol for EV charging and roaming (⭐ 27).
- steve-community/ocpi-models - A Java library providing OCPI 2.2.1 data models, Spring MVC API mappings, and REST clients (OCPI 2.2.1 · ⭐ 3).
- IZIVIA/ocpi-toolkit - A Kotlin library that implements OCPI 2.2.1 business logic, validation, data models, and transport interfaces for CPO and eMSP integrations (OCPI 2.2.1 · ⭐ 38).
- mrbig/ocpi-protocol - A PHP library for handling OCPI v2.2.1 requests, responses, models, validation, and client/server interfaces (OCPI 2.2.1 · ⭐ 2).
- TECHS-Technological-Solutions/ocpi - A Python library that implements the Open Charge Point Interface (OCPI) for communicating with central systems (⭐ 64).
- elumobility/ocpi-python - A Python library implementing the OCPI protocol with FastAPI and Pydantic, supporting versions 2.3.0, 2.2.1, and 2.1.1 (OCPI 2.1.1, 2.2.1, 2.3.0 · ⭐ 8).
- evorada/ocpi-types - Auto-generated type definitions for the OCPI protocol in Go, Python, Rust, and TypeScript (OCPI 2.3.0 · ⭐ 5).
- evlinked/ocpi-rs - A Rust implementation of the OCPI protocol providing typed models, an asynchronous client, server handlers, and a validation CLI (OCPI 2.0, 2.1.1, 2.2.1, 2.3.0 · ⭐ 4).
- hupe1980/ocpi-kit - A Rust toolkit that implements OCPI versions 2.1.1–2.3.0 with data models, protocol translation, client and server components, roaming-hub support, tariff auditing, and a CLI (OCPI 2.1.1, 2.2.1, 2.3.0 · ⭐ 1).
- ocpi/ocpi-tool - A command-line tool that exports filtered charging data from OCPI platforms for use in external data-processing pipelines (OCPI 2.2.1 · ⭐ 33).
- solidstudiosh/ocpi-schema - A Node.js tool that generates JSON Schemas for OCPI 2.1.1 and later (⭐ 20).
- shiv3/gocpi - Gocpi is a Go library implementing OCPI versions 2.1.1, 2.2.1, and 2.3.0 with typed clients, server handlers, generated models, validation, and pricing utilities for EV-charging roaming (OCPI 2.1.1, 2.2.1, 2.3.0 · ⭐ 2).
- tandemdrive/ocpi-tariffs - A project for calculating tariffs defined by the Open Charge Point Interface (OCPI) (⭐ 40).
- Quentin-BACQUET/GIREVE_Tech_OCPI_V2.2.1 - A GIREVE implementation guide for integrating with the OCPI 2.2.1 interface (OCPI 2.2.1 · ⭐ 2).
- OpenChargingCloud/OCPIExplorerDesktopApp - An Electron desktop application for testing and certifying OCPI implementations and vendor extensions across multiple OCPI versions (OCPI 2.1, 2.1.1, 2.2, 2.2.1, 2.3.0 · TypeScript · ⭐ 5).
- Quentin-BACQUET/GIREVE_Tech_OCPI_V2.1.1 - An implementation guide documenting GIREVE’s OCPI 2.1.1 interface, including CPO/eMSP integration rules and Eichrecht signed-data handling (OCPI 2.1.1 · ⭐ 5).
- OpenChargingCloud/OCPIExplorerWebApp - A web application for exploring, testing, and certifying OCPI implementations and vendor extensions across multiple OCPI versions (OCPI 2.1, 2.1.1, 2.2.1, 2.3.0 · TypeScript · ⭐ 2).
- juherr/ocpi-fyi - A versioned documentation site for OCPI specifications and related API reference material (OCPI 2.1.1, 2.2.1, 2.3.0 · JavaScript · ⭐ 2).
- olisystems/ocn-registry-v2.0 - OCN Registry 2.0 provides Ethereum-based smart contracts and a CLI for registering Open Charging Network nodes, OCPI parties, and service providers (TypeScript · ⭐ 1).
- securityinmobility/dc-charging-station - Software stack for a bidirectional DC charging station implementing ISO 15118 V2G communication and Plug&Charge support with hardware abstraction for power delivery control (Python · ⭐ 10).
- hubject/opcp - Open Plug&Charge Protocol (OPCP) provides specifications and documentation for exchanging, signing, and managing ISO 15118-related Plug&Charge certificates and services (JavaScript · ⭐ 73).
- dspace-group/dsV2Gshark - A Wireshark plugin that decodes and analyzes ISO 15118, DIN 70121, and related electric vehicle charging communication packets (⭐ 113).
- SwitchEV/RISE-V2G - RISE V2G is an open-source reference implementation of the ISO 15118 communication interface between electric vehicles and charging stations (⭐ 261).
- uhi22/pyPLC - A Python project for sniffing and implementing CCS powerline communication between electric vehicles and charging equipment (⭐ 238).
- ecog-io/iso15118 - A Python implementation of the ISO 15118-2 and ISO 15118-20 communication protocols (⭐ 248).
- Sevenstax/FreeV2G - FreeV2G is a Python host application that controls 8devices WHITE-beet modules for ISO 15118 and DIN 70121 communication between electric vehicles and charging equipment (⭐ 71).
- ecog-io/pyslac - A Python implementation of the SLAC protocol specified in ISO 15118-3 for managing EVSE matching sessions over a network interface (⭐ 56).
- zeloscloud/zelos-extension-v2g - A Zelos extension that decodes ISO 15118, DIN 70121, and SocketCAN traffic from captures or live traffic into queryable traces (⭐ 1).
- hupe1980/iso15118 - A pure Rust implementation of the ISO 15118 vehicle-to-grid communication protocol providing EXI codecs, session engines, message handling, SLAC discovery, and Plug & Charge profiles for both charging station and vehicle roles (⭐ 2).
- SukritJaAIproject/EV_Charger_Fault_Detection_AI - Windows application for AI-based fault detection in DC EV charger sessions from ISO 15118-2 / DIN 70121 packet captures, benchmarked on a 212-station fleet (Python · ⭐ 2).
- uhi22/ccs32clara - Ccs32clara is STM32 software using a QCA7005 modem to control CCS charging communication and related vehicle charging hardware (C · ⭐ 115).
- road-labs/ocmf-js - TypeScript/JavaScript library that implements signing and verification of OCMF (Open Charge Metering Format) signed meter data (⭐ 3).
- OpenChargingCloud/ChargyCore.TS - A TypeScript library that validates transparent, cryptographically-signed EV charging meter data according to German Eichrecht calibration law (⭐ 2).
- SAFE-eV/OCMF-Open-Charge-Metering-Format - A markdown repository containing the Open Charge Metering Format (OCMF) specification for development and review (⭐ 33).
- openchargemap/ocm-system - Open Charge Map is an open registry and API for crowdsourced electric vehicle charging-location data, supporting websites, apps, research, and analysis (C# · ⭐ 151).
- open-ev-data/open-ev-data-dataset - OpenEV Data is a versioned, community-maintained dataset of electric vehicle specifications compiled from layered JSON fragments into canonical records (JavaScript · ⭐ 32).
- vbalagovic/cars-dataset - A dataset and API providing specifications for cars, trucks, motorcycles, and market price listings (⭐ 28).
- robeertm/ev-charge-tracker - Self-hosted web dashboard for tracking electric vehicle charges, costs, CO2 emissions, and battery health across multiple vehicle manufacturer APIs (Python · ⭐ 13).
- gaia-charge/evdb - An open database of electric vehicles containing specifications, market availability, and related data with query and visualization tools (Python · ⭐ 11).
- MTES-MCT/qualicharge - QualiCharge provides an API, dashboard, and analysis tools for evaluating electric vehicle charging service quality from supervision data (Python · ⭐ 10).
- Jungle-Bus/ref-EU-EVSE - A data-processing project that consolidates and validates French open data on EV charging stations for integration into OpenStreetMap (Python · ⭐ 4).
- juherr/open-idro-directory - Open directory that aggregates, validates, and publishes e-mobility identifiers from official national and regional registries with provenance and API access (TypeScript · ⭐ 3).
- chaser-d/Green_Smart_Grid_Simulator - A DuckDB and dbt pipeline that ingests, validates, transforms, and aggregates telemetry from solar, wind, and hydroelectric assets into financial reporting marts (HTML · ⭐ 3).
- rajvvv/EV-Infra-Planner - A geospatial dashboard forecasts EV adoption and identifies charger deployment gaps across major Indian cities (JavaScript · ⭐ 3).
- scroodge/VoltFlow - VoltFlow is a mobile-first PWA for tracking EV charging sessions, vehicle telemetry, trips, maintenance records, and related analytics (TypeScript · ⭐ 3).
- GuillaumeBraillon/EV-Charge-Tracker - A personal web PWA that records, analyzes, and estimates EV charging costs using real charging data, tariffs, subscriptions, and Home Assistant/N8N imports (TypeScript · ⭐ 1).
- roy429-hub/buima-tracker - Buima Tracker is a web dashboard that parses EV-charging site reports and displays installation data, revenue, profit, KPIs, and charging sessions (JavaScript · ⭐ 1).
- openchargemap/ocm-export - A tool that exports Open Charge Map point-of-interest data into separate JSON files for each charging location (JavaScript · ⭐ 47).
- dalathegreat/Battery-Emulator - Battery-Emulator translates between supported EV battery packs and home or solar inverters so the packs can be used as stationary energy storage (C++ · ⭐ 3016).
- mnh-jansson/open-battery-information - Open Battery Information provides Arduino firmware and a web-based tool for reading battery-management-system data to support battery repair (C++ · ⭐ 1829).
- remontsuri/EV-QA-Framework - A Python framework for validating EV battery telemetry, detecting anomalies, predicting state of health, simulating CAN networks and battery behavior, and exposing monitoring metrics (Python · ⭐ 9).
- flobz/psa_car_controller - A Python application that remotely monitors and controls PSA electric vehicles through the connected_car v4 API, including charging, climate, and trip data (Python · ⭐ 607).
- artmakerzbr/ev-tracker - A web app for recording EV charging sessions and calculating charges owed to a condominium (JavaScript · ⭐ 1).
- tillsteinbach/CarConnectivity - CarConnectivity is a Python API for retrieving telemetry and other data from vehicle services across multiple car brands (Python · ⭐ 216).
- juherr/mobilityid - A multi-language monorepo providing implementations for parsing and handling mobility and EVSE identifiers (PHP · ⭐ 2).
- ChargePi/openev-data-mcp - An MCP server that provides AI assistants with query and semantic-search access to electric vehicle specifications from the open-ev-data dataset (PLpgSQL · ⭐ 1).
- ducminhquan/datex2-ts - A TypeScript data model and runtime conversion/validation library for DATEX II v3 JSON (TypeScript · ⭐ 1).
- xBlaz3kx/evcc-helm-chart - Helm chart for deploying EVCC, an open-source EV charging controller, on Kubernetes with SQLite database backup support (Go Template · ⭐ 0).
- dzurikmiroslav/esp32-evse - ESP32-based J1772 EVSE firmware with configurable hardware support, web management, energy metering, scheduling, and OTA updates (C · ⭐ 151).
- bastoon577-lang/Viridian_SmartCharger - Custom firmware for ESP01/Viridian-based EV charger that adapts charging power in real-time based on Linky smart meter data to manage grid load (C++ · ⭐ 1).
- OpenEMS/openems - OpenEMS is a modular platform for monitoring and controlling energy storage, renewable generation, electric vehicle charging stations, heat pumps, and other energy devices (Java · ⭐ 1617).
- marq24/ha-evcc - An unofficial Home Assistant integration that connects to evcc to monitor and control EV charging and photovoltaic-based charging settings (Python · ⭐ 501).
- andreadegiovine/homeassistant-stellantis-vehicles - A Home Assistant integration that connects to Stellantis vehicle APIs to monitor vehicle status and control supported remote functions (Python · ⭐ 297).
- leeyuentuen/alfen_wallbox - A custom Home Assistant component for monitoring and controlling Alfen wallboxes (Python · ⭐ 104).
- Pulpyyyy/carconnectivity-addon - A Home Assistant add-on that packages CarConnectivity to retrieve vehicle data from compatible manufacturers’ online services (JavaScript · ⭐ 80).
- lachand/EV_charger - A Home Assistant integration that locally monitors and controls Tuya EV chargers over a LAN connection (Python · ⭐ 42).
- tamcore/stelloauth - Stelloauth is a self-hosted web service that automates Stellantis vehicle OAuth authentication for the Home Assistant integration (Go · ⭐ 16).
- SCiunczyk/wallbox-diy - An ESP32-based Wi-Fi Modbus proxy and Home Assistant configuration for monitoring and controlling a DIY electric vehicle wallbox (⭐ 5).
- wimhaanstra/com.sortedbits.smartevse - A Homey app that connects to Smart EVSE-3 chargers through MQTT to monitor and control charging locally (TypeScript · ⭐ 1).
- GeiserX/Pumperly - An open-source route planner combining live fuel prices from 22 countries and EV charging station data with detour-aware corridor filtering (TypeScript · ⭐ 45).
- ev-map/EVMap - EVMap is an open-source Android app that displays electric vehicle charging stations, availability, search, filtering, and navigation-map data from community databases (Kotlin · ⭐ 283).
- powerly-ev/open-ev-charge-android-app - White-label Android application template for discovering and managing EV charging sessions with peer-to-peer charger sharing and OCPP/OCPI backend integration (Kotlin · ⭐ 9).
- EVtivity/evtivity-mobile-app - A white-label iOS and Android mobile app for EV drivers using the EVtivity charging platform (TypeScript · ⭐ 6).
- enbility/eebus-go - A Go library for implementing EEBUS use cases, including SHIP and SPINE communication, certificate handling, device discovery, connections, and pairing (Go · ⭐ 123).
- enbility/ship-go - A Go library implementing the EEBUS SHIP 1.0.1 protocol (Go · ⭐ 19).
- enbility/spine-go - Spine-go is a Go library implementing the EEBUS SPINE 1.3 protocol (Go · ⭐ 10).
- hupe1980/openadr - A Rust crate implementing OpenADR 3.1 with VTN and VEN runtimes, a typed client, and conformance-testing tools (Rust · ⭐ 1).
- juherr/datex4j - Datex4j is a modular Java SDK for parsing, serializing, validating, and converting DATEX II publications across multiple standard versions (Java · ⭐ 0).
- EVtivity/evtivity-ev-tester - An open-source EV-side simulator that emulates AC charging over SAE J1772 to test EVSEs and charging-system backends (C++ · ⭐ 3).
- chargeprice/chargeprice-api-docs - Documentation for accessing the Chargeprice API, which provides electric-vehicle charging tariffs, stations, companies, and vehicle data (⭐ 43).
- etalab/schema-irve - A set of data schemas for static, operational, and pricing information about public electric vehicle charging infrastructure (Elixir · ⭐ 13).
- charinev/unified-error-codes - A draft specification for standardized error codes and diagnostics across the EV charging ecosystem (Python · ⭐ 11).
- OpenChargingTechnology/Whitepapers - A collection of technical whitepapers and specifications for EV charging infrastructure covering OCPP, OCPI, OICP, ISO 15118, and related cybersecurity and interoperability standards (Python · ⭐ 5).
- ocpi/openapi-specification - A repository containing an OpenAPI specification (JavaScript · ⭐ 4).
- unified-error-codes/specification - A CharIN repository containing a draft specification for standardized error codes and diagnostics across the EV charging ecosystem (Python · ⭐ 4).
- codetics-software/electric-mobility - A guidance and reference collection for AI agents building EV charging infrastructure, with protocol-specific field cards, architecture patterns, security gates, and engineering practices for OCPI, OCPP, and CSMS platforms (Python · ⭐ 1).
- ChargePi/oecs - OECS is a JSON Schema for describing the hardware, software, payment, pricing, and compliance details of EV charger models (Go · ⭐ 1).
- vampirebyte/ocpp-gatling-test (Java · ⭐ 1)
Contributions are welcome! If you know of a tool or resource that is not on the list, please feel free to add it.
The easiest way to contribute is to open an issue using the "Add a link" template.
You can also submit a pull request. Note that the project listing above is generated — descriptions and categories are edited in classifications.csv, not by hand in this file. See CONTRIBUTING.md for the full workflow.
