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.