Back to Blog
solar technology 22 min read

OCPP Solar EV Charging Integration 2026: Protocol Guide for Smart Solar-EV Systems

OCPP solar EV charging integration explained: 1.6 vs 2.0.1 differences, smart charging profiles, ISO 15118 Plug and Charge, HEMS coupling, vendor lock-in.

Keyur Rakholiya

Written by

Keyur Rakholiya

CEO & Co-Founder · SurgePV

Rainer Neumann

Edited by

Rainer Neumann

Content Head · SurgePV

Published ·Updated

A Spanish hotel in Valencia paid €18,400 for ten Wallbox Commander 2 chargers in 2023, signed a three-year contract with a network operator, and discovered nine months later that switching providers would cost €11,200 in firmware unlocks plus a new commissioning visit. The chargers were OCPP-capable on the spec sheet. They were not OCPP-active in the firmware shipped. This is the gap that defines most solar-EV integration projects in 2026, and the protocol layer is where the money is won or lost.

Quick Answer

OCPP solar EV charging integration is the use of the Open Charge Point Protocol to let a solar inverter, home energy manager, or DERMS push smart charging profiles to an EV charger based on live PV surplus. OCPP 1.6-J handles basic SetChargingProfile messages and is universal. OCPP 2.0.1 adds Transaction-Level Messaging, ISO 15118 Plug and Charge, and richer DER coordination. The protocol decouples the charger from the operator, which kills vendor lock-in if the charger ships OCPP-active.

This explainer covers what installers, EPCs, and homeowners need to know to specify and deploy an OCPP-based solar-EV system in 2026.

  • What OCPP is and why it exists
  • The technical differences between OCPP 1.6 and OCPP 2.0.1
  • How smart charging profiles steer an EV charger from PV surplus
  • How OCPP couples with home energy management systems and DERMS
  • Where ISO 15118 fits and why Plug and Charge needs both protocols
  • OCPP versus the closed Tesla, Wallbox, and ChargePoint stacks
  • Three real-world setups: Home Assistant + EVBox, Solar Manager + EVBox, gridX + Wallbox
  • The most common OCPP-PV integration failures and how to fix them

What OCPP Is and Why It Exists

OCPP, the Open Charge Point Protocol, is an open application-layer protocol that defines how an EV charger talks to a central management system. The Open Charge Alliance, a non-profit consortium founded in 2014 by ElaadNL and Greenlots, publishes and certifies the spec. The protocol is free to use and royalty-free.

The original problem OCPP solved was vendor lock-in at public charging stations. A network operator that deployed a hundred ChargePoint stations in 2013 could not switch to a different operator without ripping out and replacing every charger. OCPP standardised the messages so any compliant charger could talk to any compliant back-end.

In Simple Terms

OCPP is to EV chargers what USB is to laptops. Without it, every charger speaks a private language to its own cloud and nothing else. With it, the charger speaks one shared language that any management platform can understand.

The protocol runs over WebSocket with JSON message bodies in the 1.6-J and 2.0.1 variants. Messages flow in both directions: the charger reports status, meter values, and authentication events, and the back-end sends configuration, firmware updates, and charging profiles. The transport is encrypted with TLS when the charger uses Security Profile 2 or 3.

For solar integration, OCPP matters because it is the only widely supported way to push a dynamic power limit to a third-party charger. A solar inverter knows how much PV is being produced. A house meter knows how much is being consumed. The OCPP back-end translates the difference into a SetChargingProfile message and the charger throttles itself accordingly.


OCPP 1.6 versus OCPP 2.0.1: The Real Differences in 2026

OCPP 1.6 was released in October 2015 and is still the dominant version in the field. The Open Charge Alliance reported in late 2024 that more than 80% of OCPP-connected chargers in Europe run version 1.6-J, the JSON-over-WebSocket variant. OCPP 2.0.1 was released in March 2020 and has been gaining ground slowly, helped by mandates rather than market demand alone.

FeatureOCPP 1.6-JOCPP 2.0.1
Release year20152020
TransportWebSocket + JSONWebSocket + JSON
Smart chargingSetChargingProfile (basic)Three variants: Central, Local, External
ISO 15118 Plug and ChargeNo native supportNative via OCPP-PnC
Device managementLimitedFull firmware, monitoring, variables
Security profileProfile 0, 1 (basic auth)Profiles 0 to 3 (TLS 1.3 client cert)
Display messagesNoYes (push text to charger screen)
Transaction modelAuthorize then StartTransactionEvent (Start, Update, End)
V2G smart chargingWorkarounds onlyNative chargingProfileKind extensions
Backwards compatibilityN/ANot wire-compatible with 1.6

The headline upgrade in 2.0.1 is the Transaction-Level Messaging model and the device management framework. Both make large fleets cheaper to operate. For solar-EV integration specifically, the biggest gain is the native handling of ISO 15118 Plug and Charge certificates and the three distinct smart charging variants.

Pro Tip

For residential solar-EV setups in 2026, OCPP 1.6-J is still the right call. It is universally supported, the SetChargingProfile message handles solar-following adequately, and most HEMS platforms speak it natively. OCPP 2.0.1 is overkill until you need V2G certificate management or multi-EVSE Local smart charging.

The smart charging story is where the two versions diverge most. In OCPP 1.6, you push a ChargingProfile to a connector and the charger enforces it. In OCPP 2.0.1, you can pick:

  • Central smart charging — the back-end calculates the limit and pushes it to the charger, identical to 1.6
  • Local smart charging — a Local Controller, often a site-level box from Alfen or Compleo, balances multiple chargers without round-tripping to the cloud
  • External smart charging — an external system, typically a HEMS or DERMS, signals the limit directly to the Local Controller via API

Local smart charging matters for large solar-EV sites because cloud latency in Central mode is typically 200 to 800 ms per round trip. That is fine for residential surplus diversion but too slow for a 20-charger workplace following sub-minute PV variability under broken cloud.


Why OCPP Matters for Solar Coupling

The economics of residential solar in most European and Australian markets in 2026 are dominated by the gap between import and export tariffs. The German EEG 2023 feed-in tariff for new systems is 8.2 cents per kWh according to the Bundesnetzagentur, while average residential retail is 38 cents per kWh per Strom-Report 2025. That is a 4.6x ratio. Every kWh kept on-site is worth 4.6 times as much as one exported.

EV charging is the single largest controllable load in most homes. A typical 7 kW Level 2 charger uses 35 to 60 kWh per session, which is more than the average UK home uses in a full day according to Ofgem 2024 data. If that session can be aligned with the noon PV peak, the self-consumption math changes the entire ROI of the array.

SurgePV Analysis

On a 6 kWp German rooftop with a Volkswagen ID.3 charging 40 kWh per session three times a week, OCPP-controlled solar-only charging shifts roughly 5,800 kWh per year from grid import at 38 c/kWh to direct PV self-consumption. Versus an uncontrolled charger always running at full power, the annual saving is €1,740. The OCPP integration pays for itself in under 6 months even at €900 of HEMS hardware.

OCPP becomes the lever because the charger is the only flexible load big enough to soak up surplus reliably. Heat pumps, hot water tanks, and air conditioning are all useful, but none of them have the 7 to 22 kW continuous power-shifting capacity that a Level 2 charger provides. The protocol is what lets a third-party HEMS speak to the charger without a custom integration per brand.

The same logic scales up. A workplace with 20 chargers and a 200 kWp rooftop can run a Local smart charging algorithm that shares the available solar surplus across active sessions in proportion to vehicle SOC and required departure time. Without OCPP, you would need a per-charger physical wiring loop into the inverter dataloggers. With OCPP, it is software.


OCPP Charge Profiles for Solar-Mode Charging

The SetChargingProfile message is the workhorse of OCPP solar integration. Its structure is the same in 1.6 and 2.0.1, with a few field renames. A typical solar-following profile looks like this in concept:

FieldTypical ValuePurpose
chargingProfileId100Unique ID for this profile
stackLevel1Priority level (higher overrides lower)
chargingProfilePurposeTxProfileApplies during an active session
chargingProfileKindAbsoluteSchedule starts at a real timestamp
recurrencyKind(none)Not repeating
chargingRateUnitAAmps, not watts
chargingSchedule.duration3005 minutes
chargingSchedule.startPeriod0Effective immediately
limit1212 A per phase, 2.8 kW single-phase

The HEMS recalculates limit every 10 to 30 seconds based on instantaneous PV minus load, then either updates the existing profile or pushes a new one. The IEC 61851 minimum of 6 amps per phase means any value below 6 must drop to 0 and pause the session. This is the key constraint that defines solar-only mode.

In practice three operating modes are standard across HEMS platforms:

  1. PV-only mode — charger runs only when surplus exceeds 6 A on the relevant number of phases. Below that, charging pauses. Best for users with no time pressure, like weekend cars.
  2. PV-priority mode — charger runs at surplus level but tops up from grid when below 6 A or when SOC is below a configurable floor like 20%. Best for daily-driven cars with predictable schedules.
  3. Eco-plus mode — Solar Manager and gridX terminology, blends surplus with cheap-tariff windows from a dynamic tariff like Octopus Agile or Tibber. Best when the vehicle has a fixed departure deadline.

Pro Tip

If the EV is a 3-phase compatible model like the Audi e-tron, set the minimum charging power threshold to 4.1 kW (6 A × 3 × 230 V). If the EV charges single-phase only, like older Renault Zoe and Tesla Model 3 SR, set the threshold to 1.4 kW (6 A × 230 V). Mismatched assumptions here cause 80% of “charger stuck at 0” complaints in solar-following mode.

For three-phase chargers the picture gets messier. Many EVs cannot smoothly drop from 3-phase to 1-phase mid-session, and not all chargers support phase switching at all. The KEBA P40, EVBox Elvi, and ABB Terra AC W7 do support it; the Wallbox Pulsar Plus does not. This is the most common gotcha in German solar-following installs because most domestic supplies are 3-phase 400 V there.


Integration with HEMS via OCPP

A home energy management system in the OCPP context plays the role of the OCPP central system, or CSMS in 2.0.1 terminology. The charger opens a WebSocket connection to the HEMS instead of phoning home to the manufacturer cloud. From the charger’s perspective, the HEMS is the operator.

This is the architecture that unlocks everything. The HEMS reads:

  • Solar production from the inverter (Modbus TCP, SunSpec, or vendor REST API)
  • Household load from the main meter (Modbus TCP, P1 port, or CT clamp)
  • Battery SOC and dispatch state if a battery is present
  • Dynamic tariff data if available (Octopus, Tibber, aWATTar, Awattar)
  • Weather forecast for next-hour PV (typically Solcast or Open-Meteo)

It then computes a target charger limit and pushes it via OCPP SetChargingProfile. The cycle repeats every 10 to 30 seconds. The same HEMS can manage multiple chargers, the home battery, and a heat pump in parallel.

The main HEMS options in 2026 include:

HEMSOCPP roleInverter compatibilityNotes
Home Assistant + OCPP integrationCentral systemAll via custom integrationsFree, requires DIY
Solar Manager AGCentral systemSMA, Fronius, SolarEdge, HuaweiSwiss, CHF 599/year
gridX XENONCentral system30+ via XENON inverter libraryGerman, B2B-focused
EVCCCentral systemMost via vendor integrationsOpen-source, German
openWB Series 2Central systemSMA, Fronius, Huawei, RCTClosed-source hardware
Smappee InfinityCentral systemVia Smappee energy monitorBelgian
ev.energyCentral system (cloud)Cloud-onlyUK, smart tariff focus

Home Assistant deserves a specific note. The community OCPP integration, maintained by Lars Bo Mortensen, supports OCPP 1.6-J and partial 2.0.1. It exposes the charger as a Home Assistant entity with services for SetChargingProfile, TriggerMessage, and remote start/stop. Combined with the SMA or Fronius integration on the same Home Assistant instance, the entire surplus-diversion logic can be built in a YAML automation in under 60 lines.

Real-World Example

A 9.6 kWp Fronius Symo Hybrid array in Stuttgart, paired with a KEBA KeContact P30 charger and Home Assistant on a Raspberry Pi 4. The OCPP integration ran the charger in PV-priority mode from May to October 2024. Logged data: 2,140 kWh charged directly from solar surplus out of 2,950 kWh total EV consumption, equating to a 72.5% solar-share. At €0.36/kWh retail, that saved €770 in 6 months on a hardware budget of €450.


ISO 15118 Plug and Charge and OCPP 2.0.1

ISO 15118 is the international standard for digital communication between the EV and the EVSE, the technical name for the charger. It runs over PLC, power-line communication, on the Control Pilot wire of the charging cable. The 2014 version, ISO 15118-2, defined Plug and Charge. The 2022 version, ISO 15118-20, added bidirectional power transfer for V2G and V2H.

Plug and Charge is the feature that eliminates the RFID card or app authentication step. The vehicle and charger exchange X.509 certificates over TLS 1.3 when the cable is plugged in. If the certificates check out, charging starts automatically and the session is billed to the contract holder. The driver does nothing.

OCPP 2.0.1 is the protocol that carries the ISO 15118 contract certificates between the charger and the back-end CSMS. This is called OCPP-PnC. The charger does not need to know who the contract holder is; it just relays the certificate chain to the CSMS, which validates it and authorizes the session. OCPP 1.6 cannot do this natively because the message schema does not carry certificates.

What Most Guides Miss

ISO 15118 and OCPP are not competing protocols. They operate on different links. ISO 15118 runs between the vehicle and the charger. OCPP runs between the charger and the back-end. A complete Plug and Charge deployment needs both, and OCPP 2.0.1 is what makes them work as one system. Most residential solar-EV setups do not need Plug and Charge at all, so OCPP 1.6 is still fine.

For solar coupling, ISO 15118-20 is the more relevant upgrade because of the dynamic mode. In dynamic mode, the vehicle and charger renegotiate the charging schedule every few seconds. The HEMS pushes a target schedule through OCPP, the charger converts it to a 15118-20 schedule, and the vehicle confirms or counter-proposes based on its own state of charge and battery management policy. This is the foundation for true solar-following at residential scale and for V2G grid services at any scale.

Vehicle support for ISO 15118-20 in 2026 is still narrow. The Ford F-150 Lightning, Hyundai Ioniq 5/6, Kia EV6/EV9, Nissan Leaf 2022+, Polestar 3, Porsche Taycan 2024+, and Volkswagen ID.4 and ID.Buzz have firmware that speaks at least Plug and Charge. Full bidirectional 15118-20 with V2G is supported by a much shorter list: F-150 Lightning, Hyundai Ioniq 5/6 with the new 800V Pro trim, and Kia EV9.


Vendor Lock-In versus OCPP Compliance

The OCPP promise is operator portability. The reality in 2026 is that not every “OCPP-capable” charger is OCPP-active out of the box. Three patterns of lock-in survive:

Pattern 1: OCPP locked behind a paid unlock. Wallbox sold the Commander 2 and the original Pulsar Plus with OCPP support gated behind a €99 to €299 firmware unlock per charger. The hardware speaks the protocol; the firmware refuses to enable it until you pay. Wallbox phased this out for new installations from 2024 onward but legacy units in the field still need the unlock.

Pattern 2: Manufacturer cloud as a forced gateway. ChargePoint Home Flex and Tesla Wall Connector do not expose a configurable OCPP back-end URL. Even when OCPP is technically supported, you can only point it at the manufacturer’s cloud. Third-party HEMS access goes through the manufacturer API, with the manufacturer free to deprecate or rate-limit it at will.

Pattern 3: OCPP with proprietary extensions. Some manufacturers ship “OCPP plus” with custom vendor-specific messages that competing back-ends do not understand. A Driivz back-end may handle a Schneider charger fine but lose access to advanced features that the Schneider EVlink Cloud uses. The charger is still OCPP-compliant for the basics.

Common Mistake

Reading “OCPP 1.6 compatible” on a spec sheet and assuming the charger will work with any HEMS. The right question to ask before procurement is: “Does this charger accept a user-configurable OCPP back-end URL out of the box, with no paid unlock?” If the answer is anything other than yes, the charger is not truly OCPP-open.

The chargers that are reliably OCPP-open in 2026 without any paid unlock or cloud gateway, based on installer-reported field data:

  • EVBox Elvi — OCPP 1.6-J native, configurable via USB or web UI
  • KEBA KeContact P30 and P40 — OCPP 1.6-J and 2.0.1 native, configurable via DIP switches and web UI
  • Alfen Eve Single Pro-line and NG9xx — OCPP 1.6-J and 2.0.1 native, configurable via Alfen ACE Service Installer
  • ABB Terra AC W7-W22 — OCPP 1.6-J native, configurable via ChargerSync app
  • go-eCharger HOMEfix and Pro — OCPP 1.6-J native, configurable via go-e app
  • Schneider EVlink Pro AC — OCPP 1.6-J and 2.0.1 native

The chargers that are not OCPP-open without a workaround:

  • Tesla Wall Connector — no OCPP at all, closed Tesla ecosystem
  • ChargePoint Home Flex — OCPP locked to ChargePoint cloud
  • Wallbox Pulsar Plus (pre-2024 firmware) — OCPP behind paid unlock; new units now ship unlocked
  • Enphase IQ EV Charger — Enphase ecosystem only, no third-party OCPP

There is a parallel question worth asking about the OCPP back-end side. Most HEMS platforms speak OCPP 1.6-J at minimum. The gaps appear at the OCPP 2.0.1 level, where only Solar Manager AG, gridX, EVCC, and the more recent Home Assistant integration handle the full 2.0.1 message set as of early 2026.


OCPP versus Tesla, Wallbox, and ChargePoint Proprietary Stacks

A direct comparison helps clarify what you give up when you stay inside a proprietary stack versus going OCPP-open.

CapabilityOCPP 1.6-JTesla closedChargePoint closedWallbox myWallbox
Third-party HEMS solar controlYesWorkaround via Tesla APINoCloud-only via API
Switch operator without firmware changeYesNoNoLimited
Local control without internetYes (with local HEMS)Yes (Wall Connector)NoNo
Plug and Charge for billingWith OCPP 2.0.1Tesla-onlyYesYes
Dynamic load balancing across multiple chargersYes (Local SC in 2.0.1)Tesla-onlyCloud-onlyCloud-only
Solar surplus followingYes (any HEMS)Limited via APINoCloud-only with myWallbox Plus
V2GOCPP 2.0.1 + ISO 15118-20No (as of 2026)Pilot onlyQuasar 2 only

The Tesla case is the most one-sided. The Wall Connector is hardware-excellent and the Tesla-to-Tesla ecosystem works smoothly, but the moment you want a third-party HEMS to control charging based on solar surplus you are in workaround territory. The TWCManager open-source project, the Tesla local API for the Powerwall, and the unofficial Tesla Fleet API are the only routes in. None of them are OCPP.

ChargePoint Home Flex is technically OCPP 1.6 capable in firmware, but the configurable back-end URL is not exposed to the end user. Field installers report that switching the back-end requires a ChargePoint engineering ticket and a justification, which makes it unusable for residential solar integration in practice.

Wallbox is the most improved. The Quasar 2 bidirectional charger is OCPP 1.6-J native and works with gridX, Solar Manager, and Home Assistant. The newer Pulsar Plus units shipping from late 2024 onward are OCPP-active out of the box, which closes the historical gap.


Real-World Setups

Three integration patterns cover most of what installers actually deploy in 2026.

Home Assistant + EVBox Elvi (DIY residential)

Hardware budget: €1,400 for the charger, €120 for a Raspberry Pi 5 with SSD, €60 for a Shelly 3EM meter if not already in place. Total HEMS + charger: about €1,580 over the base system.

The architecture is straightforward. The EVBox Elvi opens an OCPP 1.6-J WebSocket connection to the Home Assistant instance running on the Raspberry Pi. Home Assistant also runs the Fronius or SMA inverter integration over Modbus TCP and the Shelly 3EM integration over MQTT or CoAP. An automation reads the live surplus every 15 seconds and calls the OCPP service ocpp.set_charge_rate with the appropriate amperage.

This is the lowest-cost route for technical homeowners and works reliably for single-charger residential setups. The main drawback is no commercial support; if the Home Assistant integration breaks after an update, you are on your own.

Solar Manager + EVBox or KEBA (turnkey residential to small commercial)

Solar Manager AG is a Swiss platform that sells a turnkey HEMS with an on-premise gateway box and a cloud dashboard. The gateway runs an embedded OCPP 1.6-J central system that the EVBox or KEBA charger connects to over the local LAN. Solar Manager reads SMA, Fronius, SolarEdge, Huawei, or Kostal inverter data over Modbus TCP, and the cloud dashboard handles user-facing scheduling.

Pricing in early 2026 is CHF 599 per year subscription plus CHF 850 for the gateway hardware. The platform is the dominant solar-EV HEMS in Switzerland and Austria. Field data from Solar Manager’s 2024 user report indicates 68% average solar share for residential users with an EV, and 81% for users who add a home battery as well.

The main strength is reliability. The gateway runs locally and survives internet outages. The OCPP integration is tested against the manufacturer-certified firmware on each supported charger model, which avoids the firmware-drift issues that plague pure cloud platforms.

gridX XENON + Wallbox Quasar 2 or Commander 2 (commercial)

gridX is a Munich-based platform aimed at commercial sites, white-label charger operators, and utilities. The XENON platform runs as a SaaS with an on-premise gridBox controller for local execution. It speaks OCPP 1.6-J and 2.0.1 to chargers and SunSpec or Modbus to inverters.

A typical deployment for a 20-charger workplace site costs €18,000 to €30,000 for hardware (Wallbox Commander 2 chargers, gridBox controllers, network switches) plus a per-charger subscription of €4 to €8 per month. The platform handles load balancing across multiple chargers, dynamic solar surplus distribution, and peak-shaving against demand charges.

Real-World Example

A 180 kWp rooftop on a logistics depot in Hamburg with 22 Wallbox Commander 2 chargers and gridX XENON. The site shifted from a flat-rate charging policy to solar-following Local smart charging in May 2024. Result over the next 9 months: peak demand charges dropped from €1,840 to €640 per month, and the solar self-consumption rate rose from 38% to 71%. The gridX subscription paid for itself in month 3.


Design Your Solar-EV Project with OCPP-Ready Tools

Model surplus diversion, charger sizing, and demand-charge offsets before you procure hardware. SurgePV’s design platform helps installers spec OCPP-compatible systems that pay back faster.

Book a Demo

No commitment required · 20 minutes · Live project walkthrough


OCPP, Modbus TCP, and EEBUS: Where Each Protocol Fits

OCPP is one of four protocols you will see in a typical solar-EV integration stack in 2026. Each lives at a different layer.

ProtocolLayerUse
OCPPCharger to back-endPush charging profiles, report status
ISO 15118EV to chargerPlug and Charge, V2G, dynamic mode
Modbus TCPInverter to HEMSRead PV, battery, meter data
EEBUSHEMS to home appliancesHeat pump, battery, white goods control
SunSpecInverter to back-endStandardized inverter data model on top of Modbus
IEEE 2030.5DERMS to home gatewayUtility-side aggregation (US-centric)
OpenADRUtility to flexible loadsDemand response signals

A typical European residential solar-EV stack uses Modbus TCP from inverter to HEMS, OCPP from HEMS to charger, and optionally EEBUS from HEMS to the heat pump. The HEMS does the translation. A US site is more likely to swap EEBUS for SEP2/IEEE 2030.5 and add OpenADR signals from the utility.

The German VHPready standard adds another wrinkle in the utility-aggregation space, mapping flexibility from local devices into virtual power plant signals. This matters for commercial solar-EV sites participating in EEX intraday balancing markets, which is where OCPP 2.0.1’s External smart charging variant becomes valuable.


Troubleshooting OCPP-PV Integration

Field installers report the same handful of failures over and over. The pattern is consistent enough to publish.

Failure 1: Charger does not connect to the HEMS. Cause is almost always a misconfigured OCPP back-end URL in the charger firmware. Common formats are ws://192.168.1.100:8180/steve/websocket/CentralSystemService/CHARGER_ID for SteVe-based systems and ws://homeassistant.local:9000/CHARGER_ID for Home Assistant. Check the charger logs first. Most EVBox, KEBA, and Alfen units expose a web UI with a recent log buffer.

Failure 2: Charger connects but ignores ChargingProfiles. Cause is usually a mismatched chargingProfilePurpose. Use TxProfile for profiles that apply during an active session, TxDefaultProfile for defaults that apply when a session starts, and ChargePointMaxProfile for hard station-wide caps. Some chargers reject profiles with stackLevel > 0 if no lower-priority profile exists.

Failure 3: Solar surplus calculation oscillates. Cause is usually polling latency. If the HEMS reads PV every 10 seconds but pushes OCPP profiles every 30 seconds, the charger lags the surplus by up to 30 seconds, then over-shoots when correcting. The fix is to keep the OCPP push cycle at or below the PV polling cycle. Solar Manager and gridX both run on 10-second cycles by default.

Failure 4: Charger refuses to go below 6 A. This is not a failure; it is IEC 61851 working as designed. The fix is to set a minimum surplus threshold in the HEMS at 1.4 kW (single-phase) or 4.1 kW (three-phase) and pause the session below that. Solar Manager calls this “PV Pause.” Home Assistant requires an explicit automation to send the RemoteStopTransaction message.

Failure 5: ChargingProfile is accepted but not visible to the EV. Some EVs, notably older Renault Zoe and certain Mitsubishi Outlander PHEV models, ignore mid-session current changes from the charger. The vehicle locks in the negotiated current at session start. The fix is to set the desired limit before the session starts (TxDefaultProfile) rather than pushing TxProfile mid-session.

Failure 6: Three-phase charger draws single-phase only. The most common cause is a Type 2 cable wired for single-phase between the charger and the EV inlet. The second cause is the vehicle not supporting phase switching mid-session, which prevents the charger from re-negotiating to three-phase when surplus rises. Check the cable rating and the vehicle’s phase-switching capability in the same step.

Pro Tip

Before any field commissioning, run a 24-hour bench test of the charger and HEMS together using a synthetic PV profile. The Open Charge Alliance OCTT, the OCPP Compliance Test Tool, is free and surfaces 80% of protocol mismatches before the charger ever leaves the bench. The two-day investment in bench testing saves a week of on-site debugging.


What Most Installers Get Wrong

Three patterns repeat in installer-led OCPP-PV projects.

Mistake 1: Specifying chargers without checking the OCPP-active status. Reading the spec sheet is not enough. The right test is asking the manufacturer to email a config file with the OCPP back-end URL set to a customer-controlled WebSocket endpoint, and verifying that the charger connects to it without any cloud account or paid unlock. If they cannot or will not, the charger is closed.

Mistake 2: Assuming OCPP 2.0.1 is required for residential. It is not. The added complexity of 2.0.1 device management and the migration risk from 1.6 firmware to 2.0.1 firmware is rarely justified for single-charger residential sites. OCPP 1.6-J handles solar-following adequately for at least the next 3 to 5 years for residential installs.

Mistake 3: Forgetting that the HEMS is the integration point, not the inverter. Solar inverters with built-in EV charger control, like the Fronius Wattpilot or SMA EV Charger Business, are convenient but create vendor lock-in on the inverter side. The right architecture for long-term flexibility is a brand-agnostic HEMS that speaks Modbus to any inverter and OCPP to any charger.


What This Means for Your Next Solar-EV Project

Three actions follow from the protocol-level picture.

  • Specify chargers from the OCPP-open list (EVBox, KEBA, Alfen, ABB Terra AC, go-e, Schneider EVlink Pro) and confirm OCPP-active firmware in writing before procurement. Reject any unit that requires a paid unlock or a manufacturer cloud account to enable OCPP.
  • Pick a HEMS first, charger second. A brand-agnostic HEMS like Home Assistant, Solar Manager, EVCC, or gridX gives you 10-year flexibility on both the inverter and the charger side. Confirm that the HEMS supports your inverter brand over Modbus TCP and your charger brand over OCPP 1.6-J before you sign the contract.
  • Model the surplus self-consumption gain before quoting. A 6 kWp German rooftop with OCPP-controlled solar-following on an EV typically lifts self-consumption from 28% to 65% according to HTW Berlin’s 2024 sector coupling analysis. Use solar design software to project the kWh shift and translate it into euros at the customer’s actual import and export tariffs before promising a payback.

Frequently Asked Questions

What is OCPP solar EV charging integration?

OCPP solar EV charging integration is the use of the Open Charge Point Protocol to let a solar inverter, home energy management system, or DERMS control an EV charger based on live PV surplus. The energy manager reads solar production and household load, then sends OCPP smart charging profiles to the charger to throttle or boost current. OCPP 1.6-J supports basic ChargingProfile messages, while OCPP 2.0.1 adds Transaction-Level Messaging and far richer DER coordination. Most 2026 HEMS platforms speak OCPP 1.6-J as the lowest common denominator.

What is the difference between OCPP 1.6 and OCPP 2.0.1?

OCPP 1.6 was published in 2015 and remains the most widely deployed version, supporting JSON over WebSocket (1.6-J) with basic smart charging via SetChargingProfile messages. OCPP 2.0.1, released in March 2020 by the Open Charge Alliance, adds device management, ISO 15118 Plug and Charge, three smart charging variants (Central, Local, External), display messages, and security profile 3 with TLS 1.3. OCPP 2.0.1 is required for new public NEVI-funded stations in the US and is being mandated by several EU member states for new commercial installations from 2025 onward.

Can OCPP charge an EV from solar surplus only?

Yes. The OCPP SetChargingProfile message accepts a power or current limit schedule, and a HEMS computes the surplus every few seconds as PV output minus household load, then pushes the new limit to the charger. Wallbox Pulsar Plus, EVBox Elvi, KEBA P30, and Alfen Eve all support this through OCPP 1.6-J with sub-15-second update intervals. The minimum charging current of 6 amps per phase, defined in IEC 61851, sets the lower floor below which the charger pauses entirely.

What is ISO 15118 Plug and Charge?

ISO 15118 is the international standard for vehicle-to-charger communication, with the 2014 version covering Plug and Charge authentication and the 2022 version (15118-20) adding bidirectional power transfer for V2G. Plug and Charge uses TLS 1.3 and X.509 certificates so the vehicle authenticates itself to the charger automatically, eliminating the RFID card or app step. OCPP 2.0.1 carries the ISO 15118 contract certificates between the charger and the back-end, making the two protocols complementary rather than competing.

What is a smart charging profile in OCPP?

A ChargingProfile in OCPP is a structured message that tells a charger how much power or current to deliver across a time schedule. It carries a chargingProfileKind (Absolute, Recurring, or Relative), a chargingRateUnit (W or A), and a list of period start times with corresponding limits. The CSMS or HEMS sends the profile, and the charger applies it at the next limit-check cycle. A typical solar-following profile updates every 10 to 30 seconds based on PV output.

How does OCPP integrate with HEMS like Home Assistant or Solar Manager?

Most HEMS act as a local OCPP central system. The charger opens a WebSocket connection to the HEMS instead of the manufacturer cloud. Home Assistant has the OCPP integration that exposes the charger as an entity, with services for SetChargingProfile and TriggerMessage. Solar Manager AG runs an on-premise OCPP gateway that connects to EVBox, KEBA, and Hager chargers and pulls solar data from SMA, Fronius, or SolarEdge inverters over Modbus TCP. gridX uses a similar architecture with its XENON platform.

Does Tesla use OCPP?

Tesla Wall Connectors do not natively support OCPP as of early 2026. Tesla operates a closed ecosystem with its own communication stack between the Wall Connector and the vehicle. Third-party solar diverters integrate with Tesla through the local Tesla API and the unofficial TWCManager project, not via OCPP. The new Tesla Universal Wall Connector with NACS and J1772 support still does not expose an OCPP endpoint, which keeps the charger inside a vendor-locked stack.

What is vendor lock-in in EV charging and how does OCPP fix it?

Vendor lock-in means the charger only works with the manufacturer’s back-end and app, so you cannot switch operators or integrate it with a third-party HEMS without losing functionality. OCPP fixes this because any compliant charger can connect to any OCPP-compliant central system, which is the point of the Open Charge Alliance certification program. A site owner can swap from ChargePoint to Driivz to EV.energy without replacing the hardware. The catch is that some manufacturers ship chargers with OCPP disabled by default and require a paid feature unlock.

Which EV chargers are OCPP 2.0.1 certified in 2026?

As of early 2026 the Open Charge Alliance OCPP 2.0.1 certified product list includes ABB Terra AC and DC families, Alfen Eve Single Pro and NG9xx, Schneider EVlink Pro AC, Siemens VersiCharge, EVBox Liviqo, Wallbox Supernova, Kempower DC chargers, ChargePoint CP6000, and KEBA KeContact P40. The full list is maintained at openchargealliance.org. OCPP 2.0.1 is now the default for new commercial procurements in Germany, the Netherlands, and the UK.


Sources and Further Reading

Related SurgePV reading: smart EV charging load management with solar, home EV charging with solar optimization, HEMS comparison for SolarEdge, Enphase, Shelly, and Victron, solar carport EV fleet charging, vehicle-to-grid V2G solar design, and the solar + EV charging integration design guide. For SurgePV’s design tools, see solar design software, the shadow analysis feature, and the generation and financial tool. Glossary entries worth bookmarking: EV solar charging, hybrid inverter, grid export limitation, and smart inverter.

About the Contributors

Author
Keyur Rakholiya
Keyur Rakholiya

CEO & Co-Founder · SurgePV

Keyur Rakholiya is CEO & Co-Founder of SurgePV and Founder of Heaven Green Energy Limited, where he has delivered over 1 GW of solar projects across commercial, utility, and rooftop sectors in India. With 10+ years in the solar industry, he has managed 800+ project deliveries, evaluated 20+ solar design platforms firsthand, and led engineering teams of 50+ people.

Editor
Rainer Neumann
Rainer Neumann

Content Head · SurgePV

Rainer Neumann is Content Head at SurgePV and a solar PV engineer with 10+ years of experience designing commercial and utility-scale systems across Europe and MENA. He has delivered 500+ installations, tested 15+ solar design software platforms firsthand, and specialises in shading analysis, string sizing, and international electrical code compliance.

Get Solar Design Tips in Your Inbox

Join 2,000+ solar professionals. One email per week - no spam.

No spam · Unsubscribe anytime