Implementation details
OCPP 1.6 is implemented under OCPP 1.6 edition 2 FINAL 2017-09-28. The EVSE Check V3 is fulfilled for Eichrecht compliance in Germany as is the hastobe specifications.
1. Supported feature profiles
The Charge Controller provides full support for standard OCPP 1.6 feature profiles with specific implementation choices detailed below.
Feature Profile | Compliance | Key Features | Implementation Notes |
|---|---|---|---|
| # Core | Fully compliant | Authorize, BootNotification, ChangeAvailability, ChangeConfiguration, ClearCache, DataTransfer, GetConfiguration, Heartbeat, MeterValues, RemoteStartTransaction, RemoteStopTransaction, Reset, StartTransaction, StatusNotification, StopTransaction, UnlockConnector | Basic station functionality without firmware updates, local auth list management, or reservations |
| # Firmware Management | Fully compliant | GetDiagnostics, DiagnosticsStatusNotification, FirmwareStatusNotification, UpdateFirmware | Firmware updates and diagnostic log downloads |
| # Local Auth List Management | Fully compliant | GetLocalListVersion, SendLocalList | Note: Uses fixed local list - see Local Authorization List |
| # Reservation | Fully compliant | CancelReservation, ReserveNow | Complete reservation support |
| # Smart Charging | Fully compliant | ClearChargingProfile, GetCompositeSchedule, SetChargingProfile | Current-based smart charging - see Smart Charging Guide |
| # Remote Trigger | Proprietary implementation | TriggerMessage | Extended trigger capabilities |
2. Supported messages
2.1. Support for standard messages
Message⬍ | Specification Reference⬍ | Implementation Notes⬍ |
|---|---|---|
| # Authorize | OCPP 1.6 Edition 2 FINAL, Chapters 6.1-6.2 | Full compliance |
| # BootNotification | OCPP 1.6 Edition 2 FINAL, Chapters 6.3-6.4 | Full compliance |
| # CancelReservation | OCPP 1.6 Edition 2 FINAL, Chapters 6.5-6.6 | Full compliance |
| # ChangeAvailability | OCPP 1.6 Edition 2 FINAL, Chapters 6.7-6.8 | Full compliance |
| # ChangeConfiguration | OCPP 1.6 Edition 2 FINAL, Chapters 6.9-6.10 | Full compliance |
| # ClearCache | OCPP 1.6 Edition 2 FINAL, Chapters 6.11-6.12 | Full compliance |
| # ClearChargingProfile | OCPP 1.6 Edition 2 FINAL, Chapters 6.13-6.14 | Full compliance |
| # DataTransfer | OCPP 1.6 Edition 2 FINAL, Chapters 6.15-6.16 | Full compliance with vendor extensions |
| # DiagnosticsStatusNotification | OCPP 1.6 Edition 2 FINAL, Chapters 6.17-6.18 | Full compliance |
| # FirmwareStatusNotification | OCPP 1.6 Edition 2 FINAL, Chapters 6.19-6.20 | Full compliance |
| # GetCompositeSchedule | OCPP 1.6 Edition 2 FINAL, Chapters 6.21-6.22 | Full compliance |
| # GetConfiguration | OCPP 1.6 Edition 2 FINAL, Chapters 6.23-6.24 | Full compliance |
| # GetDiagnostics | OCPP 1.6 Edition 2 FINAL, Chapters 6.25-6.26 | Full compliance |
| # GetLocalListVersion | OCPP 1.6 Edition 2 FINAL, Chapters 6.27-6.28 | Full compliance |
| # Heartbeat | OCPP 1.6 Edition 2 FINAL, Chapters 6.29-6.30 | Full compliance |
| # MeterValues | OCPP 1.6 Edition 2 FINAL, Chapters 6.31-6.32 | Full compliance |
| # RemoteStartTransaction | OCPP 1.6 Edition 2 FINAL, Chapters 6.33-6.34 | Full compliance |
| # RemoteStopTransaction | OCPP 1.6 Edition 2 FINAL, Chapters 6.35-6.36 | Full compliance |
| # ReserveNow | OCPP 1.6 Edition 2 FINAL, Chapters 6.37-6.38 | Full compliance |
| # Reset | OCPP 1.6 Edition 2 FINAL, Chapters 6.39-6.40 | Full compliance |
| # SendLocalList | OCPP 1.6 Edition 2 FINAL, Chapters 6.41-6.42 | Full compliance (see Local Authorization List) |
| # SetChargingProfile | OCPP 1.6 Edition 2 FINAL, Chapters 6.43-6.44 | Full compliance |
| # StartTransaction | OCPP 1.6 Edition 2 FINAL, Chapters 6.45-6.46 | Full compliance |
| # StatusNotification | OCPP 1.6 Edition 2 FINAL, Chapters 6.47-6.48 | Full compliance |
| # StopTransaction | OCPP 1.6 Edition 2 FINAL, Chapters 6.49-6.50 | Full compliance |
| # TriggerMessage | OCPP 1.6 Edition 2 FINAL, Chapters 6.51-6.52 | Full compliance |
| # UnlockConnector | OCPP 1.6 Edition 2 FINAL, Chapters 6.53-6.54 | Full compliance |
| # UpdateFirmware | OCPP 1.6 Edition 2 FINAL, Chapters 6.55-6.56 | Full compliance |
2.2. Support for ISO 15118 Plug & Charge messages
The Charge Controller supports ISO 15118 Plug & Charge through OCPP 1.6 extensions as defined in
"Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0 (2020-09-16).
Message | Specification Reference | Implementation Notes |
|---|---|---|
| # Authorize (ISO 15118) | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.1.1-6.1.2 | Enhanced authorization with certificates |
| # CertificateSigned | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.2.1-6.2.2 | Certificate chain signing |
| # DeleteCertificate | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.3.1-6.3.2 | Certificate removal |
| # Get15118EVCertificate | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.4.1-6.4.2 | Request EV certificate |
| # GetCertificateStatus | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.5.1-6.5.2 | Certificate validation check |
| # GetInstalledCertificateIds | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.6.1-6.6.2 | List installed certificates |
| # InstallCertificate | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.7.1-6.7.2 | Certificate installation |
| # SignCertificate | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.8.1-6.8.2 | Certificate signing request |
| # TriggerMessage (ISO 15118) | "Using ISO 15118 Plug & Charge with OCPP 1.6" v1.0, Chapters 6.9.1-6.9.2 | Request certificate-related messages |
3. Implementation notes
Where OCPP 1.6 allows flexibility, the following implementation choices apply:
- Dual-connector addressing:
_2suffix is used for connector 2 - Local authorization list: Fixed internal list;
SendLocalListdoes not modify it - Temperature monitoring: Internal hardware temperature only
3.1. Proprietary extensions and decisions
- Eichrecht integration: German calibration law support
- DLM (Dynamic Load Management): Load balancing across multiple stations
- Internal connector coordination: Station-level handling of dual connectors
3.2. Local Authorization List
SendLocalListis supported but does not modify the internal authorization list- The Charge Controller uses a fixed built-in authorization list
- Authorization continues to work without backend connectivity
Consequences:
GetLocalListVersionreturns the internal list versionSendLocalListis accepted but has no operational effect- Offline authorization remains available
4. German Eichrecht compliance
For German calibration law compliance:
- Enable Eichrecht mode in the configuration
- Two retry counters are used:
TransactionMessageAttemptsEichrechtTransactionMessageAttempts
- Public key transmission follows hastobe specifications
- Compatible with EVSE Check V3
5. Measurands and Meter Values
5.1. Supported Measurands
Measurand | Description | Unit | Availability | Typical Use |
|---|---|---|---|---|
| # Energy.Active.Import.Register | Imported energy (session / total) | Wh | Meter-dependent | Billing, session accounting |
| # Energy.Active.Export.Register | Total exported energy | Wh | Meter-dependent | Export-capable setups |
| # Power.Active.Import | Active power during charging | W | Meter-dependent | Load monitoring, diagnostics |
| # Current.Import | Actual charging current | A | Meter-dependent | Current monitoring |
| # Current.Offered | Maximum allowed current | A | Always available | Smart Charging limits |
| # Power.Offered | Maximum power allowed (calculated) | W | Always available | Power capability display |
| # Voltage | Phase-to-phase or phase-to-neutral | V | Meter-dependent | Power quality, diagnostics |
| # Frequency | Grid frequency | Hz | Meter-dependent | Grid stability monitoring |
| # Temperature | Internal controller temperature | °C | Sensor-dependent | Thermal protection, diagnostics |
Temperature values come from internal sensors (CPU, power components).
They represent operating temperature, not ambient temperature.
6. MeterValues configuration
See the Smart Charging guide's section on handling MeterValues for details on handling MeterValues.