Evse15118D20

This module is a draft implementation of iso15118-20 for the EVSE side

Handwritten Documentation

This module implements the SECC side of ISO 15118-20 charging, including the AC_DER_IEC service and a grid_support provider that accepts active DER directives and raises grid alarms from EV-reported grid-event conditions.

DER grid support

Active DER directives received via grid_support::set_active_directives are stored and relayed to the EV as AC_DER_IEC control functions. The relay is implemented for the curve family: VoltVar maps to VoltVarMode, WattVar to WattVarMode, and WattPF to WattCosPhiMode, each encoded as an absolute-unit ISO 15118-20 control curve. Non-curve directives (frequency, volt-watt, setpoint, ride-through, and similar) have no AC_DER_IEC counterpart here; they are logged and skipped.

Application is next-session-dynamic: a directive arriving mid-session takes effect at the next V2G session rather than interrupting the running one. The DER transfer limits advertised at each session’s charge parameter discovery derive from the module’s AC transfer limits (ac_limits).

This module does not publish DER capability; for the AC_DER_IEC service an empty capability is expected.

The DER control functions the EV negotiates during service selection are surfaced upward in ChargingNeeds.der_charging_parameters.ev_supported_dercontrol so the backend can learn what the EV supports without the EVSE advertising a guess.

Discharge power limits advertised to the EV follow ISO 15118-20 8.3.5.2.1: they are emitted as negative values when the negative_bidirectional_limits config key is set, and the nominal discharge power is set equal to the maximum discharge power so the advertised pair never violates V2G20-3229.

Auto-Generated Reference

Module Configuration

device: string <optional>
default: “eth0”
Ethernet device used for HLC. Any local interface that has an ipv6 link-local and a MAC addr will work
logging_path: string <optional>
default: “.”
Path to logging directory (will be created if non existent)
tls_negotiation_strategy: string <optional>
default: “ACCEPT_CLIENT_OFFER”
Select strategy on how to negotiate connection encryption
enum:
- ACCEPT_CLIENT_OFFER
- ENFORCE_TLS
- ENFORCE_NO_TLS
enforce_tls_1_3: boolean <optional>
default: False
Enforcing tls version 1.3. Only applies if tls_negotiation_strategy is ENFORCE_TLS.
enable_ssl_logging: boolean <optional>
default: False
Verbosely log the ssl/tls connection
enable_tls_key_logging: boolean <optional>
default: False
Enable/Disable the export of TLS session keys (pre-master-secret) during a TLS handshake. Note that this option is for testing and simulation purpose only
tls_key_logging_path: string <optional>
default: “/tmp”
Output directory for the TLS key log file
enable_sdp_server: boolean <optional>
default: True
Enable the built-in SDP server
supported_dynamic_mode: boolean <optional>
default: True
The EVSE should support dynamic mode
supported_mobility_needs_mode_provided_by_secc: boolean <optional>
default: False
The EVSE should support the mobility needs mode provided by the SECC. Mobility needs mode provided by the EVCC is always provided.
supported_scheduled_mode: boolean <optional>
default: False
The EVSE should support scheduled mode
custom_protocol_namespace: string <optional>
default: “”
Providing a custom protocol namespace.
negative_bidirectional_limits: boolean <optional>
default: False
Some cars send or expect negative discharge limits. However, it is not clear from the standard whether the discharge limits should be negative. Until this is clarified, the positive limits can be converted using this option.
selecting_sap_based_on_energy_service: boolean <optional>
default: False
Based on ISO15118-20 AMD1, selecting the SAP namespace does not imply a final selection. The final decision on which service to select is made later in the D20 service states. However, since AMD1 is relatively new, it is possible that EVs will only support certain energy services after the SAP namespace has been selected. If this is the case, this option should be set to true so that libiso15118 will select the sap namespace based on the supported energy services.

Provides

This interface provides limited access to iso15118-20
This interface is used to share data between ISO15118 and OCPP modules to support the requirements of the OCPP protocol
grid_support: grid_support
Raises grid alarms from EV grid-event conditions and accepts active DER directives. Curve-family directives (VoltVar, WattVar, WattPF) are relayed to the EV as AC_DER_IEC control functions at the next V2G session; non-curve directives are logged and skipped.

Requirements

security: evse_security 1
iso15118_vas: ISO15118_vas 0..128

Metadata

Authors

Sebastian Lukas

License