description: >- EVSE Manager. Grid side power meter: Will be used for energy management. Will also be used for billing if no car side power meter connected. Car side powermeter: Will be used for billing if present. config: connector_id: description: Connector id of this evse manager type: integer connector_type: description: The connector type of this evse manager (/evse_manager#/ConnectorTypeEnum) type: string default: "Unknown" evse_id: description: EVSE ID type: string default: DE*PNX*E1234567*1 evse_id_din: description: EVSE ID DIN after DIN SPEC 91286 type: string default: 49A80737A45678 payment_enable_eim: description: Set to true to enable EIM (e.g. RFID card or mobile app) authorization type: boolean default: true payment_enable_contract: description: Set to true to enable contract (aka plug and charge) authorization type: boolean default: true ac_nominal_voltage: description: Nominal AC voltage between phase and neutral in Volt type: number default: 230 ev_receipt_required: description: "Unsupported: request receipt from EV with HLC" type: boolean default: false session_logging: description: Enable/Disable session log file output type: boolean default: false session_logging_path: description: Output directory for session log files type: string default: /tmp session_logging_xml: description: Log full XML messages for HLC type: boolean default: true has_ventilation: description: Allow ventilated charging or not type: boolean default: true charge_mode: description: Select charging mode type: string enum: - AC - DC default: AC supported_iso_ac_bpt: description: Set to true if ISO15118-20 AC BPT is supported and should be offered to the EV type: boolean default: false ac_hlc_enabled: description: Enable or disable HLC (aka ISO15118) for AC mode type: boolean default: false ac_hlc_use_5percent: description: >- If set to true, start with 5% PWM if HLC is enabled on AC. If set to false, start with X1. Note that almost no EV will perform SLAC/HLC on X1. Recommendation is to set this to true. type: boolean default: true ac_enforce_hlc: description: >- Combine with 5percent option to really enforce HLC even with EIM. ISO15118-3 forbids the usage of 5% if Auth happens before plugin, but most EVs will not perform HLC with nominal PWM. For the home use case (always authorized or auth before plugin) it may still be desirable to use HLC e.g. for better energy management. In this case you can use this option, but be aware that EVs that do not support HLC may take a long time to start (or never start) charging. This mode is not ISO15118-2/-3 compliant. Do not use for public charging stations. type: boolean default: false ac_with_soc: description: >- Special mode that switches between AC and DC charging to get SoC percentage with AC charging type: boolean default: false internal_over_voltage_duration_ms: description: >- Time in milliseconds the internal software over voltage monitor waits before raising MREC5 once the measured voltage exceeds the negotiated limit. type: integer minimum: 0 default: 400 dbg_hlc_auth_after_tstep: description: >- Special mode: send HLC auth ok only after t_step_XX is finished (true) or directly when available (false) type: boolean default: false dc_isolation_voltage_V: description: Override DC voltage used to test isolation in CableCheck. Default is 0, which means the voltage will be determined according to IEC 61851-23 (2023) CC.4.1.2 type: integer default: 0 cable_check_wait_number_of_imd_measurements: description: >- Amount of isolation measurement samples to collect before the value can be trusted. This does not average, it will evaluate the last measurement. Some IMDs (e.g. from Bender) need to measure for 10s to really get a trustable result. In this case, at 1 Hz sample rate, specify 10 samples here. If the self test includes the isolation resistance checking you may also set this to 0. type: integer default: 1 cable_check_enable_imd_self_test: description: >- Enable self testing of IMD in cable check with the voltage calculated from ev_max_voltage and with relays closed. This is required e.g. for Bender IMDs which also perform an isolation measurement during the self test. A self test is required for IEC 61851-23 (2023) compliance. type: boolean default: true cable_check_enable_imd_self_test_relays_open: description: >- Enable self testing of IMD at the beginning of cable check where the relays may still be open. The voltage is set by the cable_check_relays_open_voltage_V config option and may differ from the voltage that is later used to perform the isolation resistance sample. cable_check_wait_number_of_imd_measurements needs to be >=1 in this case as no isolation resistance checking can be performed at this stage. A self test is required for IEC 61851-23 (2023) compliance. type: boolean default: false cable_check_relays_open_voltage_V: description: >- Voltage to set for the self test using cable_check_enable_imd_self_test_relays_open option. type: integer default: 48 cable_check_relays_closed_timeout_s: description: >- Timeout in seconds to wait for the relays to close at the beginning of cablecheck. Normally they should be closed right away, but when cable_check_enable_imd_self_test_relays_open option, the relays may close may be delayed by the self test. type: integer default: 5 cable_check_wait_below_60V_before_finish: description: >- Switch off power supply and wait until output voltage drops below 60V before cable check is finished. Note: There are different versions of IEC 61851-23:2023 in the wild with the same version number but slightly different content. The IEC was correcting mistakes _after_ releasing the document initially without tagging a new version number. Some early versions require to wait for the output voltage to drop below 60V in CC.4.1.2 (last sentence). Later versions do not have that requirement. The later versions are correct and should be used according to IEC. Both settings (true and false) are compliant with the correct version of IEC 61851-23:2023. Set to true when: - the power supply has no active discharge, and lowering the voltage with no load takes a very long time. In this case this option usually helps to ramp the voltage down quickly by switching it off. It will be switched on again in precharge. Also, some EVs switch their internal relay on at a too high voltage when the voltage is ramped down directly from cablecheck voltage to precharge voltage, so true is the recommended default. Set to false when: - the power supply has active discharge and can ramp down quickly without a switch off (by just setting a lower target voltage). This may save a few seconds as it avoids unnecessary voltage down and up ramping. type: boolean default: true hack_skoda_enyaq: description: >- Skoda Enyaq requests DC charging voltages below its battery level or even below 0 initially. Set to true to enable dirty workaround. type: boolean default: false hack_present_current_offset: description: >- Adds an offset [A] to the present current reported to the car on HLC. Set to 0 unless you really know what you are doing. type: integer default: 0 hack_pause_imd_during_precharge: description: >- Disable IMD at the end of CableCheck and re-enable when current is flowing in CurrentDemand. Some DCDC power supplies do not start current flow when insulation measurement is active. Set to true to enable dirty workaround for some IMD hardware. type: boolean default: false hack_allow_bpt_with_iso2: description: Hack. Allow bidirectional power transfer with DIN spec and ISO-2. Currents communicated on HLC will always be positive but power supply may actually discharge the car. type: boolean default: false hack_simplified_mode_limit_10A: description: >- Limit PWM to 10A if EV uses simplified charging mode. Set to false to be compliant with IEC61851-1:2019 section A.2.3. It is the responsibility of the EV to limit to 10A according to the norm. Enable this option to deviate from the norm and limit from the EVSE side. type: boolean default: false autocharge_use_slac_instead_of_hlc: description: Use slac ev mac address for autocharge instead of EVCCID from HLC type: boolean default: false enable_autocharge: description: >- Enables Autocharge (i.e. Mac address for authorization). Disabled by default as PnC should be used instead. type: boolean default: false logfile_suffix: description: Use the string given for the log folder name. Special string session_uuid will be replaced with session uuid. type: string default: session_uuid soft_over_current_tolerance_percent: description: Allow for N percent over current in soft over current checking during AC charging. type: number default: 10.0 soft_over_current_measurement_noise_A: description: Set current measurement noise. Added to limit as an offset to avoid false triggers. type: number default: 0.5 hack_fix_hlc_integer_current_requests: description: >- Some cars request only integer ampere values during DC charging. For low power DC charging that means that they charge a few hundred watts slower then needed. If enabled, this will charge at full power if the difference between EV requested current (integer) and HLC current limit is less then 1.0 type: boolean default: false disable_authentication: description: >- Do not wait for authorization from Auth module, offer a free service. Start charging immediately after plug in. Do not use with Auth manager or OCPP, this option is only to allow charging with a standalone EvseManager that is not connected to an Auth manager. Use DummyTokenProvider/Validator when testing with Auth module and/or OCPP. type: boolean default: false sae_j2847_2_bpt_enabled: description: Enable SAE J2847 2 V2G or V2H mode type: boolean default: false sae_j2847_2_bpt_mode: description: SAE J2847 2 BPT mode type: string enum: - V2H - V2G default: V2G request_zero_power_in_idle: description: >- "true: In Idle mode (no car connected), request 0A from energy management. In installations with many charging stations this should be set" "to allow the power to be distributed to the chargers that are connected to a car." "false: Request the normal current even if no car is connected. This speeds up the start of charging on AC BASIC charging as" "EvseManager does not need to wait for energy from the energy manager after plug in." type: boolean default: false external_ready_to_start_charging: description: Enable the external ready to start charging signal that delays charging ready until it has been received type: boolean default: false uk_smartcharging_random_delay_enable: description: >- "true: enable random_delays on start up, false: disable random delays on startup." "They can also be enabled/disabled during runtime on the random_delay implementation." type: boolean default: false uk_smartcharging_random_delay_max_duration: description: >- "Start up value for the maximum duration of a random delay." "Can be modified during runtime on the random_delay implementation." type: integer default: 600 uk_smartcharging_random_delay_at_any_change: description: >- "True: use random delays on any current change during charging. False: Only use if current is reduced to zero or increased from zero." type: boolean default: true initial_meter_value_timeout_ms: description: >- This timeout in ms defines for how long the EvseManager waits for an initial meter value from a powermeter before it becomes ready to start charging. If configured to 0, the EvseManager will not wait for an initial meter value before it becomes ready to start charging. type: integer default: 5000 switch_3ph1ph_delay_s: description: >- Wait for n seconds when switching between 3ph/1ph mode. type: integer default: 10 switch_3ph1ph_cp_state: description: >- CP state to use for switching. WARNING: Some EVs may be permanently destroyed when switching from 1ph to 3ph. It is the responsibiltiy of the evse_board_support implementation to ensure the EV is capable of performing the switch. If it is not, the capabilities must set the supports_changing_phases_during_charging to false. Phase switching is only possible in basic charging mode. type: string enum: - X1 - F default: X1 soft_over_current_timeout_ms: description: >- Allow for over current to be present for N ms in soft over current checking during AC charging. type: integer minimum: 6000 default: 7000 lock_connector_in_state_b: description: >- Indicates if the connector lock should be locked in state B. If set to false, connector will remain unlocked in CP state B and this violates IEC61851-1:2019 D.6.5 Table D.9 line 4 and should not be used in public environments! type: boolean default: true state_F_after_fault_ms: description: >- Set state F after any fault that stops charging for the specified time in ms while in Charging mode (CX->F(300ms)->C1/B1). When a fault occurs in state B2, no state F is added (B2->B1 on fault). Some (especially older hybrid vehicles) may go into a permanent fault mode once they detect state F, in this case EVerest cannot recover the charging session if the fault is cleared. In this case you can set this parameter to 0, which will avoid to use state F in case of a fault and only disables PWM (C2->C1) while switching off power. This will violate IEC 61851-1:2017 however. The default is 300ms as the minimum suggested by IEC 61851-1:2017 Table A.5 (description) to be compliant. This setting is only active in BASIC charging mode. type: integer default: 300 fail_on_powermeter_errors: description: >- Set the EVSE Manager to an inoperative state if the powermeter requirement is configured and has reported errors type: boolean default: true raise_mrec9: description: >- Allows to configure if an MREC9 authorization timeout error shall be raised by this module in case an authorization timeout occurs. It is recommended to disable it if OCPP1.6 is used. type: boolean default: false sleep_before_enabling_pwm_hlc_mode_ms: description: >- Sleep before the PWM signal is updated in HLC mode. Teslas are really fast with sending the first slac packet after enabling PWM, so the sleep allows SLAC to be ready for it. Some EV testers have issues with a value >= 1000ms, although ISO15118 or IEC61851 does not specify a timeout. type: integer default: 500 central_contract_validation_allowed: description: >- Used for ISO15118 plug and charge: If false, contract shall not be present in PaymentOptionList. If true, contract may be present in PaymentOptionList if TLS is used. type: boolean default: false contract_certificate_installation_enabled: description: >- Used for ISO15118 plug and charge: Indicates if the charger supports contract CertificateInstall and CertificateUpdate type: boolean default: true inoperative_error_use_vendor_id: description: >- When raising evse_manager/Inoperative use the vendor ID from the original cause type: boolean default: false voltage_plausibility_max_spread_threshold_V: description: >- Maximum allowed spread (max-min) in volts between voltage measurements from different sources (power supply, powermeter, isolation monitor, over voltage monitor) before a voltage plausibility fault is triggered. During DC charging, if the spread exceeds this threshold for the configured duration, a fault is raised. type: number default: 50.0 voltage_plausibility_fault_duration_ms: description: >- Duration in milliseconds for which the spread must exceed the threshold before a voltage plausibility fault is raised. A duration of 0 ms means that a fault will be raised immediately when the threshold is exceeded. type: integer default: 30000 session_id_type: description: >- Type to use for generation of session ids. UUID: 36 characters UUIDs UUID_BASE64: 22 characters base64 encoded uuids SHORT_BASE64: 16 characters base64 encoded ids type: string enum: - UUID - UUID_BASE64 - SHORT_BASE64 default: UUID zero_power_ignore_pause: description: >- If no energy is available the charger can signal a pause to the car before cable check. With this option the charger ignores that and continues as if energy were available. This is not standard compliant! As of today most EVs do not handle the pause signal correctly causing the session to be terminated and not allowing to start charging again when energy is available. The default of this value is true, allowing the session to proceed until the charge loop. Terminating the session in the charge loop when no energy is available is handled more gracefully by most EVs and allows to start charging again when energy is available without the need of unplugging and plugging again. type: boolean default: true zero_power_allow_ev_to_ignore_pause: description: >- If no energy is available the charger can signal a pause to the car before cable check. With this option, the charger ignores that the ev goes to the energy phase instead of pausing the session. This is not standard compliant! type: boolean default: false bpt_channel: description: Type of installed/uninstalled power transfer channel type: string enum: - None - Unified - Separated default: None bpt_generator_mode: description: Power converter behavior type: string enum: - None - GridFollowing - GridForming default: None bpt_grid_code_island_method: description: Active/inactive islanding detection method. Only for AC. type: string enum: - None - Active - Passive default: None hlc_charge_loop_without_energy_timeout_s: description: >- Timeout (s) to allow HLC charge loop to continue without available energy; when exceeded, the HLC session is stopped and PWM is disabled until energy returns. If set too long, some EVs stop the session on their own. Then it cannot be resumed when energy is available again. type: integer default: 5 dc_ramp_ampere_per_second: description: >- Maximum ampere per second limit for up/down ramping of current in charging loop. type: integer default: 25 provides: evse: interface: evse_manager description: This is the main evsemanager interface energy_grid: description: This is the tree leaf interface to build the energy supply tree interface: energy token_provider: description: Provides authtokens for autocharge or plug and charge interface: auth_token_provider random_delay: description: Provides control over UK smart charging regulation random delay feature interface: uk_random_delay dc_external_derate: description: Provides DC external derating capabilities interface: dc_external_derate requires: bsp: interface: evse_board_support ac_rcd: interface: ac_rcd min_connections: 0 max_connections: 1 connector_lock: interface: connector_lock min_connections: 0 max_connections: 1 powermeter_grid_side: interface: powermeter min_connections: 0 max_connections: 1 powermeter_car_side: interface: powermeter min_connections: 0 max_connections: 1 slac: interface: slac min_connections: 0 max_connections: 1 hlc: interface: ISO15118_charger min_connections: 0 max_connections: 1 imd: interface: isolation_monitor min_connections: 0 max_connections: 1 over_voltage_monitor: interface: over_voltage_monitor min_connections: 0 max_connections: 1 powersupply_DC: interface: power_supply_DC min_connections: 0 max_connections: 1 store: interface: kvs min_connections: 0 max_connections: 1 enable_external_mqtt: true enable_telemetry: true metadata: license: https://opensource.org/licenses/Apache-2.0 authors: - Cornelius Claussen - Anton Woellert