Configuration Structure
EVerest configurations consist of:- active_modules: Defines which modules to load and their settings
- config_module: Module-level configuration parameters
- config_implementation: Implementation-specific settings
- connections: Defines how modules communicate
- x-module-layout: Visual layout metadata (optional)
All examples in this guide are taken from the EVerest Core repository’s
config/ directory and represent tested, working configurations.AC Charging Configuration
Basic AC Charger with ISO 15118
This configuration represents a single-connector AC charging station with ISO 15118-20 support.active_modules:
iso15118_charger:
module: Evse15118D20
config_module:
device: auto
connections:
security:
- module_id: evse_security
implementation_id: main
evse_manager:
module: EvseManager
config_module:
ac_enforce_hlc: false
ac_hlc_enabled: true
ac_hlc_use_5percent: false
ac_nominal_voltage: 230
supported_iso_ac_bpt: true # Bidirectional power transfer
charge_mode: AC
connector_id: 1
evse_id: DE*PNX*E12345*1
has_ventilation: true
payment_enable_contract: false
payment_enable_eim: true # External identification means
session_logging: true
session_logging_path: /tmp/everest-logs
bpt_channel: Unified
bpt_generator_mode: GridFollowing
connections:
bsp:
- module_id: connector_1_powerpath
implementation_id: board_support
hlc:
- module_id: iso15118_charger
implementation_id: charger
slac:
- module_id: slac
implementation_id: evse
ac_rcd:
- implementation_id: rcd
module_id: connector_1_powerpath
connector_lock:
- implementation_id: connector_lock
module_id: connector_1_powerpath
connector_1_powerpath:
config_module:
connector_id: 1
module: YetiSimulator
telemetry:
id: 1
slac:
module: SlacSimulator
auth:
module: Auth
config_module:
connection_timeout: 10
selection_algorithm: FindFirst
connections:
token_provider:
- module_id: token_provider
implementation_id: main
token_validator:
- module_id: token_validator
implementation_id: main
evse_manager:
- module_id: evse_manager
implementation_id: evse
token_provider:
module: DummyTokenProvider
config_implementation:
main:
timeout: 10
token: DEADBEEF
connections:
evse:
- module_id: evse_manager
implementation_id: evse
token_validator:
module: DummyTokenValidator
config_implementation:
main:
validation_result: Accepted
validation_reason: Token seems valid
sleep: 0.25
evse_security:
module: EvseSecurity
config_module:
private_key_password: "123456"
energy_manager:
module: EnergyManager
config_module:
schedule_total_duration: 1
schedule_interval_duration: 60
debug: false
connections:
energy_trunk:
- module_id: grid_connection_point
implementation_id: energy_grid
grid_connection_point:
module: EnergyNode
config_module:
fuse_limit_A: 40.0
phase_count: 3
connections:
energy_consumer:
- module_id: api_sink
implementation_id: energy_grid
powermeter:
- module_id: connector_1_powerpath
implementation_id: powermeter
api_sink:
module: EnergyNode
mapping:
module:
evse: 1
config_module:
fuse_limit_A: 32.0
phase_count: 3
connections:
energy_consumer:
- module_id: evse_manager
implementation_id: energy_grid
api:
module: API
connections:
evse_manager:
- module_id: evse_manager
implementation_id: evse
error_history:
- module_id: error_history
implementation_id: error_history
evse_energy_sink:
- module_id: api_sink
implementation_id: external_limits
error_history:
module: ErrorHistory
config_implementation:
error_history:
database_path: /tmp/error_history.db
Key Configuration Points:
ac_hlc_enabled: trueenables high-level communication (ISO 15118)supported_iso_ac_bpt: trueenables bidirectional AC charging (V2G/V2H)fuse_limit_Adefines the grid connection capacitypayment_enable_eim: trueallows Plug & Charge without pre-authorization
Hardware-Based AC Charger
Production configuration for Pionix ChargeBridge hardware:connector_1:
module: EvseManager
config_module:
connector_id: 1
evse_id: DE*PNX*E12345*1
charge_mode: AC
ac_nominal_voltage: 230
ac_hlc_enabled: true
ac_enforce_hlc: true
session_logging: true
session_logging_path: /tmp/everest-logs
connections:
bsp:
- implementation_id: main
module_id: cb_bsp
hlc:
- implementation_id: charger
module_id: iso15118_charger
slac:
- implementation_id: main
module_id: slac
ac_rcd:
- implementation_id: rcd
module_id: cb_bsp
connector_lock:
- implementation_id: connector_lock
module_id: cb_bsp
cb_bsp:
module: evse_board_support_API # Hardware-specific BSP
connections: {}
iso15118_charger:
module: EvseV2G
config_module:
device: cb_plc # ChargeBridge PLC device
tls_security: prohibit
supported_DIN70121: false
connections:
security:
- module_id: evse_security
implementation_id: main
slac:
module: EvseSlac
config_implementation:
main:
device: cb_plc
Replace
YetiSimulator with your actual hardware module (e.g., evse_board_support_API) for production deployment.DC Charging Configuration
ISO 15118-20 DC Charger
Complete DC fast charging configuration:iso15118_charger:
module: Evse15118D20
config_module:
device: auto
connections:
security:
- module_id: evse_security
implementation_id: main
evse_manager:
module: EvseManager
config_module:
connector_id: 1
evse_id: DE*PNX*E12345*1
evse_id_din: 49A80737A45678
session_logging: true
session_logging_path: /tmp/everest-logs
charge_mode: DC
payment_enable_contract: false
bpt_channel: Unified
bpt_generator_mode: GridFollowing
connections:
bsp:
- module_id: yeti_driver
implementation_id: board_support
powermeter_car_side:
- module_id: powersupply_dc
implementation_id: powermeter
slac:
- module_id: slac
implementation_id: evse
hlc:
- module_id: iso15118_charger
implementation_id: charger
powersupply_DC:
- module_id: powersupply_dc
implementation_id: main
imd:
- module_id: imd
implementation_id: main
powersupply_dc:
module: DCSupplySimulator
imd:
module: IMDSimulator
config_implementation:
main:
selftest_success: true
yeti_driver:
module: YetiSimulator
config_module:
connector_id: 1
slac:
module: SlacSimulator
DC Charging Safety: Ensure proper configuration of:
- Isolation monitoring (
imd) - Emergency stop circuits
- Pre-charge and contactor sequencing
- Maximum voltage and current limits
OCPP Integration
OCPP 2.0.1 Configuration
Full OCPP 2.0.1 setup with two connectors:ocpp:
module: OCPP201
connections:
evse_manager:
- module_id: evse_manager_1
implementation_id: evse
- module_id: evse_manager_2
implementation_id: evse
auth:
- module_id: auth
implementation_id: main
system:
- module_id: system
implementation_id: main
security:
- module_id: evse_security
implementation_id: main
evse_energy_sink:
- module_id: grid_connection_point
implementation_id: external_limits
- module_id: evse_manager_1_ocpp_sink
implementation_id: external_limits
- module_id: evse_manager_2_ocpp_sink
implementation_id: external_limits
reservation:
- module_id: auth
implementation_id: reservation
access:
config:
allow_global_read: true
allow_global_write: false
allow_set_read_only: false
modules:
auth:
allow_read: true
allow_write: true
allow_set_read_only: true
evse_security:
module: EvseSecurity
config_module:
private_key_password: "123456"
persistent_store:
module: PersistentStore
auth:
module: Auth
config_module:
connection_timeout: 60
selection_algorithm: FindFirst
connections:
token_provider:
- module_id: token_provider_1
implementation_id: main
- module_id: ocpp
implementation_id: auth_provider
token_validator:
- module_id: ocpp
implementation_id: auth_validator
evse_manager:
- module_id: evse_manager_1
implementation_id: evse
- module_id: evse_manager_2
implementation_id: evse
kvs:
- module_id: persistent_store
implementation_id: main
system:
module: System
OCPP 1.6 Configuration File
OCPP 1.6 uses JSON for protocol configuration:{
"Internal": {
"ChargePointId": "cp001",
"CentralSystemURI": "ws://csms.example.com:8180/ocpp/CP001",
"ChargeBoxSerialNumber": "cp001",
"ChargePointModel": "Yeti",
"ChargePointVendor": "Pionix",
"FirmwareVersion": "2024.3.0"
},
"Core": {
"AuthorizeRemoteTxRequests": false,
"HeartbeatInterval": 86400,
"ConnectionTimeOut": 10,
"NumberOfConnectors": 1,
"MeterValueSampleInterval": 60,
"MeterValuesAlignedData": "Energy.Active.Import.Register",
"MeterValuesSampledData": "Energy.Active.Import.Register,Power.Active.Import,Current.Import,Voltage",
"StopTransactionOnEVSideDisconnect": true,
"UnlockConnectorOnEVSideDisconnect": true
},
"Security": {
"SecurityProfile": 2
},
"PnC": {
"ISO15118CertificateManagementEnabled": true,
"ISO15118PnCEnabled": true,
"ContractValidationOffline": true
},
"SmartCharging": {
"ChargeProfileMaxStackLevel": 10,
"ChargingScheduleMaxPeriods": 24,
"MaxChargingProfilesInstalled": 20
}
}
OCPP Security Profiles:
- Profile 0: Unsecured WebSocket
- Profile 1: Basic authentication over TLS
- Profile 2: Client-side certificate authentication
- Profile 3: TLS with mutual authentication (most secure)
Multi-Connector Configurations
Dual Connector Station
Configuration for a station with two independent charging points:evse_manager_1:
module: EvseManager
mapping:
module:
evse: 1
config_module:
connector_id: 1
evse_id: "1"
connector_type: "cType2"
connections:
bsp:
- module_id: yeti_driver_1
implementation_id: board_support
powermeter_grid_side:
- module_id: yeti_driver_1
implementation_id: powermeter
evse_manager_2:
module: EvseManager
mapping:
module:
evse: 2
config_module:
connector_id: 2
evse_id: "2"
connector_type: "cType2"
connections:
bsp:
- module_id: yeti_driver_2
implementation_id: board_support
powermeter_grid_side:
- module_id: yeti_driver_2
implementation_id: powermeter
# Separate energy nodes for load balancing
evse_manager_1_api_sink:
module: EnergyNode
config_module:
fuse_limit_A: 32.0
phase_count: 3
evse_manager_2_api_sink:
module: EnergyNode
config_module:
fuse_limit_A: 32.0
phase_count: 3
grid_connection_point:
module: EnergyNode
config_module:
fuse_limit_A: 40.0 # Total grid capacity
phase_count: 3
connections:
energy_consumer:
- module_id: evse_manager_1_api_sink
implementation_id: energy_grid
- module_id: evse_manager_2_api_sink
implementation_id: energy_grid
Energy Management
Dynamic Load Balancing
energy_manager:
module: EnergyManager
config_module:
switch_3ph1ph_while_charging_mode: Both
switch_3ph1ph_max_nr_of_switches_per_session: 5
switch_3ph1ph_time_hysteresis_s: 20
switch_3ph1ph_power_hysteresis_W: 1000
schedule_interval_duration: 60
schedule_total_duration: 10
debug: false
connections:
energy_trunk:
- implementation_id: energy_grid
module_id: grid_connection_point
grid_connection_point:
module: EnergyNode
config_module:
fuse_limit_A: 63.0 # Grid connection limit
phase_count: 3
Energy Management Features:
- Automatic 3-phase to 1-phase switching based on load
- Hysteresis to prevent rapid switching
- Session-based switching limits
- Time-based scheduling
Testing and Development
Simulation Configuration
For development without hardware:active_modules:
# All simulators for complete testing
yeti_driver:
module: YetiSimulator
powersupply_dc:
module: DCSupplySimulator
slac:
module: SlacSimulator
imd:
module: IMDSimulator
token_provider:
module: DummyTokenProvider
token_validator:
module: DummyTokenValidator
Configuration Validation
Validate your configuration before deployment:# Check configuration syntax
/usr/bin/manager --check /path/to/config.yaml
# Run in dry-run mode
/usr/bin/manager --config /path/to/config.yaml --dryrun
# Enable debug logging
/usr/bin/manager --config /path/to/config.yaml --log-level debug
Next Steps
Module Reference
Detailed module configuration options
Security Setup
Configure certificates and TPM
OCPP Guide
Connect to CSMS backends
Hardware Setup
Configure hardware peripherals