SmartCharging
Charge more vehicles with the power you have, and never exceed it
ChargeAngels SmartCharging shares the power available on a site between all the plugged-in electric vehicles, so that each one is charged on time and the installation is never overloaded. It relies on an algorithm from research published in 2019 (IEEE) whose integration code is open source, and works with OCPP 1.6J chargers that support Smart Charging profiles.
See SmartCharging in action
Pick a scenario, press play, then switch SmartCharging off to see what happens without it.
SmartCharging in 10 key points
- Foundation
Backed by research
The algorithm comes from research published in 2019 (IEEE). ChargeAngels integrates it as open-source code, so the way power is shared is transparent.
- Goal
Everyone charged by the end of the day
The main goal is that every electric vehicle is charged when it needs to be, while respecting the constraints of the installation.
- Safety
The power limit is never exceeded
Each zone (a distribution board or a subscription) has a maximum power. A charging plan is calculated for every connector, in 15-minute slots, and refreshed every 5 minutes and at each connection or disconnection.
- Fairness
Fair sharing of energy
Not a simple “maximum power divided by the number of vehicles”: the energy is shared over time. The vehicle that arrived last gets priority until it has caught up with the energy received by the others.
- Efficiency
Peak shaving
Charging peaks are flattened, which protects the subscription and the breakers. Fair sharing and peak shaving are the two strategies available today; the cost and phase-balance strategies of the research are not implemented yet.
- Flexibility
Priority by departure time
Optionally, the driver enters the departure time and the battery levels (current and desired). Vehicles that stay all day charge gently, those leaving soon get the maximum power.
- Efficiency
Adaptive limit
At the end of a charge, vehicles reduce their own demand. The setpoint follows the real consumption (with a margin: 15 % recommended for AC, 10 % for DC, and a 2-minute delay), so the unused power goes to the other chargers.
- Safety
Protected zone
Before a transaction starts, a low default charging profile is applied to the chargers. Several vehicles plugged in at the same moment cannot overload the installation while the plans are being calculated.
- Energy
SmartGrid-ready
Building consumption, solar production and stationary batteries can be taken into account through an IoT gateway, so the power available for charging varies dynamically.
- Setup
Simple to set up, with a fallback
Describe the zones and their limits, connect OCPP 1.6J chargers and declare the vehicles. For chargers that do not support smart charging, a static limit can be used instead.
How it works
Describe the site
Create the zones (distribution board or subscription) with their maximum power, and choose which chargers take part.
Declare the vehicles
Define at least one default vehicle per user: type of charge (AC or DC), maximum power and number of phases.
The algorithm plans
Every 5 minutes, and at each connection or disconnection, it calculates a charging plan for every connector.
The chargers obey
The plans are sent to the chargers as OCPP charging profiles. You can follow the result on the charging curve of each session.
Going further with SmartGrid
ChargeAngels can also take into account other consumers (building meter), producers (solar inverter) and stationary batteries. The power allocated to charging then goes up and down with the rest of the site. The data does not travel through OCPP: it comes from an additional gateway (not supplied) and a dedicated web service.
- IoThink and Witt gateways are connected natively; other IoT gateways can be integrated on quotation.
- For each resource you set a static power, a fluctuation margin and a trigger threshold that decides when the charging plans are recalculated.
- The building measurement sent by the gateway must exclude the consumption of the chargers.
- Measurements are synchronised every minute; always add margins, test, then refine the values.

Before you start
- At least two chargers connected to the backend, using OCPP 1.6J with Smart Charging profiles (the charging profile commands are the ones used).
- SmartCharging is not active by default: ask an administrator to enable it for your account, then check it with the connection test of the settings.
- Chargers must be set to UTC time: the local time is then calculated from the address and GPS position of the charger.
- Always test your configuration on local chargers before going to production: ChargeAngels cannot guarantee how automatically generated plans behave on every brand, firmware version and charger model.
- If a charger is not compatible, use a static limit instead: a fixed value, or a value that changes at set times of the day (default charging profiles).
Questions about your site or your chargers? Contact us or read the FAQ.
