Module Architecture
EVerest modules are the building blocks of the charging system. Each module:- Provides interfaces that expose functionality to other modules
- Requires interfaces from other modules to perform its tasks
- Declares configuration through manifest.yaml files
- Implements specific functionality for charging operations
All modules are located in the
modules/ directory of the EVerest Core repository and are defined by their manifest.yaml configuration files.Module Categories
EVSE Manager
Core charging logic and state management
OCPP
Communication with Central Systems (OCPP 1.6 & 2.0.1)
ISO 15118
High-level communication and Plug & Charge
Energy Management
Smart charging and load balancing
Hardware Drivers
Board support packages and device drivers
Authentication
Authorization and access control
Core Module Types
EVSE Side Modules
Modules located inmodules/EVSE/ handle charging station operations:
- EvseManager - Main charging state machine and coordination
- OCPP / OCPP201 - Backend communication protocols
- Auth - Authentication and reservation management
- EvseV2G - ISO 15118-2 and DIN 70121 implementation
- EvseSlac - SLAC protocol for PLC communication
- EvseSecurity - Certificate and security management
Energy Management Modules
Modules inmodules/EnergyManagement/ handle power distribution:
- EnergyManager - Global energy management coordinator
- EnergyNode - Tree node for hierarchical energy distribution
Hardware Driver Modules
Modules inmodules/HardwareDrivers/ interface with physical hardware:
- EVSE drivers - Board support packages (BSP) for charging hardware
- PowerMeters - Energy measurement devices
- PowerSupplies - DC power supply control
- IsolationMonitors - Insulation monitoring devices
- NfcReaders - RFID/NFC authentication readers
API Modules
Modules inmodules/API/ provide interfaces for external integration:
- API abstraction layers
- Consumer interfaces
- External communication endpoints
Module Manifest Structure
Each module is defined by amanifest.yaml file with the following structure:
Module Communication
Modules communicate through interfaces defined in theinterfaces/ directory:
Configuration Example
Modules are wired together in configuration files. Here’s a simplified example:Module Discovery
To explore available modules in the EVerest Core repository:Next Steps
EvseManager Deep Dive
Learn about the core charging module
OCPP Integration
Connect to backend systems
Configuration Guide
Wire modules together
Interface Reference
Understand module interfaces