.. _everest_modules_Ev15118: ####### Ev15118 ####### | ISO 15118 EV-side (EVCC) implementation built on the libiso15118 ev::Controller. ************************* Handwritten Documentation ************************* .. include:: index.inc ************************ Auto-Generated Reference ************************ Module Configuration ==================== | **device**: *string* | *default: "auto"* | Ethernet device used for HLC. auto picks the first interface with an IPv6 link-local address at startup and fails the module start when there is none. | **evcc_id**: *string* | *default: "02:00:00:00:00:01"* | EVCC identifier sent to the SECC in ISO 15118-20 SessionSetup, 1 to 255 characters. Both forms are valid, a MAC address (02:00:00:00:00:01) and a vehicle identifier (WMIV1234567890ABCDEX). ISO 15118-2 and DIN SPEC 70121 do not use it; their EVCCID is the 6 byte MAC of `device`. | **response_timeout_ms**: *integer* | *default: 0* | Response watchdog timeout in milliseconds. 0 uses the per-message ISO 15118 timeouts from the specification table. | **authorization_timeout_ms**: *integer* | *default: 0* | Bound on the ISO 15118-20 authorization loop, in milliseconds. The EV re-sends AuthorizationReq while the EVSE reports Ongoing and after a declined attempt, so the driver can authorize again, and stops the session once this bound expires. 0 uses V2G_EVCC_Ongoing_Timeout (60000 ms) from the specification table. | **control_mode**: *string* | *default: "Dynamic"* | Preferred charge-loop control mode, ISO 15118-20 only; ISO 15118-2 and DIN SPEC 70121 always run scheduled. The EV selects the SECC parameter set matching this preference and falls back to the first offered set when the preference is not offered. | enum: | - Scheduled | - Dynamic | **supported_protocols**: *string* | *default: ""* | Comma-separated protocols the EV offers in the SAP handshake, highest priority first, from ISO15118_20, ISO15118_2 (AC and DC, EIM or Plug&Charge, TLS 1.2 or plaintext) and DIN70121 (DC, plaintext only), e.g. "ISO15118_20,ISO15118_2". Empty unless set, so a configuration offers only the protocols it lists. The module fails at startup when the list is empty, names an unknown protocol, or names one twice. | **tls**: *string* | *default: "off"* | Transport security. off runs plaintext only and requests no TLS in SDP; ISO 15118-20 over plaintext deviates from [V2G20-2677] and is meant for testing, and Plug&Charge over it also needs allow_pnc_without_tls. prefer requests TLS in SDP and accepts a plaintext offer. require rejects an SDP response without TLS. | enum: | - off | - prefer | - require | **allow_pnc_without_tls**: *boolean* | *default: False* | Accept the deviation from the standard and present a contract over a session with no transport security. Off, the vehicle charges by EIM on a plaintext link instead, which is the correction this repository's own charger already makes from the other end. On, the contract chain and the eMAID go out in clear in PaymentDetailsReq and a contract-key signature over a charger-chosen challenge goes out in clear in AuthorizationReq; legitimate for the [V2G2-465] robustness test and for bring-up against a plaintext test charger. | **tls_version**: *string* | *default: "auto"* | TLS version, ignored when tls is off. auto offers TLS 1.3 when ISO 15118-20 is in the offer and the vehicle chain is usable, and TLS 1.2 when ISO 15118-2 is; after the handshake it offers only ISO 15118-20 over 1.3 and only ISO 15118-2 over 1.2. With no version left start_charging is rejected, or the session stops at connect when the chain files turn out unusable. "1.2" and "1.3" pin exactly that version and offer every enabled protocol over it, with a startup warning for ISO 15118-2 over 1.3 or ISO 15118-20 over 1.2. TLS 1.3 presents the vehicle certificate (ISO 15118-20); TLS 1.2 presents none (ISO 15118-2). | enum: | - auto | - 1.2 | - 1.3 | **verify_server_certificate**: *boolean* | *default: True* | Verify the SECC certificate chain against the V2G root. | **enable_tls_key_logging**: *boolean* | *default: False* | Export the TLS session keys (pre-master-secret) of the handshake. For testing and simulation only. | **tls_key_logging_path**: *string* | *default: "/tmp"* | Output directory for the TLS key log file. With enable_tls_key_logging, empty is a configuration error, logged when TLS is set up; key logging then stays off. | **pki_path**: *string* | *default: ""* | Directory holding the EV certificates and keys. Each certificate and key path below that is left empty resolves under it, written there. Empty selects /certs, the certs directory of the EVerest etc path. | **v2g_root_cert_path**: *string* | *default: ""* | Path to the V2G root certificate. Empty resolves to /ca/v2g/V2G_ROOT_CA.pem. Every certificate in the file is trusted, so under tls_version auto it must hold both the ISO 15118-2 and the ISO 15118-20 V2G roots. | **device_cert_chain_path**: *string* | *default: ""* | Path to the vehicle (TLS client) certificate chain, leaf first. Empty resolves to /client/vehicle/VEHICLE_CERT_CHAIN.pem. | **device_key_path**: *string* | *default: ""* | Path to the vehicle leaf private key. Empty resolves to /client/vehicle/VEHICLE_LEAF.key. | **device_key_password_path**: *string* | *default: ""* | Path to the file holding the password of the vehicle leaf private key. Empty resolves to /client/vehicle/VEHICLE_LEAF_PASSWORD.txt; a missing or empty file means no password. | **iso2_ac_e_amount_wh**: *number* | *default: 60000* | ISO 15118-2 AC_EVChargeParameter EAmount, the energy the EV asks for, in watt-hours. The -20 AC parameters below are power based and do not carry this value. | **iso2_ac_ev_max_voltage_v**: *number* | *default: 400* | ISO 15118-2 AC_EVChargeParameter EVMaxVoltage in volts (per line). | **iso2_ac_ev_max_current_a**: *number* | *default: 32* | ISO 15118-2 AC_EVChargeParameter EVMaxCurrent in amperes (per line). | **iso2_ac_ev_min_current_a**: *number* | *default: 10* | ISO 15118-2 AC_EVChargeParameter EVMinCurrent in amperes (per line). | **enable_pnc**: *boolean* | *default: False* | Offer ISO 15118-2 Plug&Charge (Contract) next to EIM and select Contract whenever the SECC offers it. Requires TLS; without it the EV falls back to EIM only. This is config driven because EvManager's default payment option is `auto`; an explicit ExternalPayment in start_charging turns the preference off for that session, and an explicit Contract keeps it on. The contract certificate material below is used for PaymentDetails and, when it is missing or pnc_force_cert_install is set, for a CertificateInstallation. | **pnc_contract_cert_chain_path**: *string* | *default: ""* | Path to one PEM file holding the whole PnC contract (MO) certificate chain, leaf first. Empty resolves to /client/mo/MO_LEAF.pem followed by /ca/mo/INTERMEDIATE_MO_CA_CERTS.pem. | **pnc_contract_key_path**: *string* | *default: ""* | Path to the PnC contract (MO) leaf private key (PEM); signs the PnC AuthorizationReq. Empty resolves to /client/mo/MO_LEAF.key. | **pnc_contract_key_password_path**: *string* | *default: ""* | Path to the file holding the password of the contract leaf private key. Empty resolves to /client/mo/MO_LEAF_PASSWORD.txt; a missing or empty file means no password. | **pnc_oem_prov_cert_path**: *string* | *default: ""* | Path to the OEM provisioning certificate (PEM). Signs CertificateInstallationReq and holds the static ECDH key that decrypts the delivered contract key. Empty resolves to /client/oem/OEM_LEAF.pem. | **pnc_oem_prov_key_path**: *string* | *default: ""* | Path to the OEM provisioning private key (PEM). Empty resolves to /client/oem/OEM_LEAF.key. | **pnc_oem_prov_key_password_path**: *string* | *default: ""* | Path to the file holding the password of the OEM provisioning private key. Empty resolves to /client/oem/OEM_LEAF_PASSWORD.txt. | **pnc_force_cert_install**: *boolean* | *default: False* | Run a CertificateInstallation even when a contract certificate is configured. Requires the SECC to offer the Certificate service. | **pnc_contract_store_dir**: *string* | *default: ""* | Directory that keeps the contract a CertificateInstallation delivered, as CONTRACT_CHAIN.pem (leaf first), CONTRACT_LEAF.key (mode 0600) and EMAID.txt. Every later session presents the stored contract when all three files are present and the key belongs to the leaf, and falls back to the configured contract material otherwise. Empty disables persistence. Give each Ev15118 instance its own directory; two instances sharing one can mix their files. | **ac_phase_count**: *integer* | *default: 3* | Number of AC lines the EV draws on, 1 or 3. Selects which connector the EV asks for. On a single-phase connector it divides the advertised totals below down to one line's share. A start_charging with AC_single_phase_core and 3 here runs that session on one line, with a third of the charge power totals. | enum: | - 1 | - 3 | **ac_max_charge_power_w**: *number* | *default: 11040* | Advertised AC maximum charge power in watts, as a total across ac_phase_count lines. The default is 16 A x 230 V x 3. | **ac_min_charge_power_w**: *number* | *default: 4140* | Advertised AC minimum charge power in watts, as a total across ac_phase_count lines. The default is 6 A x 230 V x 3. | **der_over_frequency_watt_mode**: *boolean* | *default: False* | Declare support for the IEC OverFrequencyWattMode DER control function. | **der_under_frequency_watt_mode**: *boolean* | *default: False* | Declare support for the IEC UnderFrequencyWattMode DER control function. | **der_volt_watt_mode**: *boolean* | *default: False* | Declare support for the IEC VoltWattMode DER control function. | **der_volt_var_mode**: *boolean* | *default: False* | Declare support for the IEC VoltVarMode DER control function. | **der_watt_var_mode**: *boolean* | *default: False* | Declare support for the IEC WattVarMode DER control function. | **der_watt_cos_phi_mode**: *boolean* | *default: False* | Declare support for the IEC WattCosPhiMode DER control function. | **der_dso_q_setpoint_provision**: *boolean* | *default: True* | Declare support for the IEC DSOQSetpointProvision DER control function. | **der_dso_cos_phi_setpoint_provision**: *boolean* | *default: True* | Declare support for the IEC DSOCosPhiSetpointProvision DER control function. | **der_dc_injection_restriction**: *boolean* | *default: False* | Declare support for the IEC DCInjectionRestriction DER control function. | **der_zero_current_mode**: *boolean* | *default: False* | Declare support for the IEC ZeroCurrentMode DER control function. | **der_over_voltage_fault_ride_through_mode**: *boolean* | *default: False* | Declare support for the IEC OverVoltageFaultRideThroughMode DER control function. | **der_under_voltage_fault_ride_through_mode**: *boolean* | *default: False* | Declare support for the IEC UnderVoltageFaultRideThroughMode DER control function. | **der_stop_on_unsupported_functions**: *boolean* | *default: True* | Stop the session if no AC_DER_IEC parameter set fits the supported DER functions. | **ac_max_discharge_power_w**: *number* | *default: 11040* | Advertised AC maximum discharge power in watts (AC_BPT, AC_DER_IEC and AC_DER_SAE), as a total across ac_phase_count lines. The default is 16 A x 230 V x 3. | **ac_min_discharge_power_w**: *number* | *default: 4140* | Advertised AC minimum discharge power in watts (AC_BPT, AC_DER_IEC and AC_DER_SAE), as a total across ac_phase_count lines. The default is 6 A x 230 V x 3. | **dc_max_discharge_power_w**: *number* | *default: 150000* | Advertised DC maximum discharge power in watts (BPT). set_bpt_dc_params overrides it for the running BPT session and every later one. | **dc_min_discharge_power_w**: *number* | *default: 0* | Advertised DC minimum discharge power in watts (BPT). | **dc_max_discharge_current_a**: *number* | *default: 300* | Advertised DC maximum discharge current in amperes (BPT). set_bpt_dc_params overrides it for the running BPT session and every later one. | **sae_inverter_profile_path**: *string* | *default: ""* | JSON file describing the EV inverter for AC_DER_SAE. Empty uses the built-in profile. A file that fails to parse, or whose values are invalid, makes the module fail at startup. | **cpd_rounds**: *integer* | *default: 1* | ChargeParameterDiscovery rounds the EV drives before it reports Finished. AC_DER_SAE only. | **der_stop_on_invalid_control**: *boolean* | *default: False* | Stop the session on a structurally invalid DER control block from the SECC instead of warning and continuing. AC_DER_SAE only. Provides ======== | **ev**: :ref:`ISO15118_ev ` | ISO 15118 EVCC on the libiso15118 ev::Controller ******** Metadata ******** Authors ======= | Cornelius Claussen | Jan Christoph Habig | Martin Litre License ======= | https://opensource.org/licenses/Apache-2.0