MeterValues is the OCPP message a charging station uses to report energy delivery data to the CSMS during a session. It is one of the most important messages in the protocol for billing accuracy, yet it is often the most poorly simulated. Static dummy values or absent MeterValues are a common shortcut that hides real bugs in CSMS energy handling.
What MeterValues contains
A MeterValues message carries one or more sampled values, each with a measurand, unit, and reading. The most important measurands are:
- Energy.Active.Import.Register — cumulative energy delivered in watt-hours, read from the meter register. This is what gets billed.
- Power.Active.Import — instantaneous power draw in watts
- Current.Import — instantaneous current in amps
- Voltage — line voltage
- SoC — battery state of charge of the connected EV, as a percentage
- Temperature — connector or cable temperature
The CSMS configures which measurands are reported via the MeterValuesSampledData configuration key. The sampling interval is controlled by MeterValueSampleInterval.
Why realistic metering matters
A simulator that sends the same static energy value in every MeterValues message will not catch a wide class of CSMS bugs:
- Energy delta calculation — does your CSMS correctly compute session energy from the register difference between session start and stop?
- SOC-based session termination — does your CSMS correctly stop charging or notify the driver when the EV reaches 100%?
- Smart charging enforcement — does reported power actually decrease when a SetChargingProfile limit is applied?
- Meter gaps on reconnect — what does your CSMS do when a MeterValues message is missing because the station reconnected mid-session?
These bugs are invisible if the simulator sends the same number on every tick.
How a realistic simulator generates meter values
A proper metering simulation tracks the connected EV battery — its capacity, current state of charge, and the power being delivered. Each sampling interval, the simulator calculates how much energy has been delivered since the last sample, increments the cumulative register, and reports the updated value. As the EV approaches full charge, SOC increases and power tapers off naturally.
SimIt's meter engine works exactly this way. It models the EV battery, derives current from power and voltage, and generates realistic increasing register readings throughout the session. When SOC reaches 100%, the simulator fires an automatic session stop — matching real charger behaviour. This means your CSMS billing calculations, SOC display, and smart charging enforcement are all tested against data that behaves like the real world.
Test with realistic meter values — create a free SimIt account.