Meter Values
Source: OCPP 1.6 Specification — Section 4.7 (Operation), Sections 6.31 / 6.32 (Messages)
Overview
A Charge Point MAY sample the energy meter or other sensor/transducer hardware to provide extra information about its meter values. It is up to the Charge Point to decide when it will send meter values. This can be configured using the ChangeConfiguration.req message to set data acquisition intervals and specify data to be acquired & reported.
The Charge Point SHALL send a MeterValues.req PDU for offloading meter values. The request PDU SHALL contain for each sample:
- The id of the Connector from which samples were taken. If the
connectorIdis0, it is associated with the entire Charge Point. If theconnectorIdis0and the Measurand is energy related, the sample SHOULD be taken from the main energy meter. - The transactionId of the transaction to which these values are related, if applicable. If there is no transaction in progress or if the values are taken from the main meter, then transaction id may be omitted.
- One or more meterValue elements, of type
MeterValue, each representing a set of one or more data values taken at a particular point in time.
Each MeterValue element contains a timestamp and a set of one or more individual sampledValue elements, all captured at the same point in time. Each sampledValue element contains a single value datum. The nature of each sampledValue is determined by the optional measurand, context, location, unit, phase, and format fields.
- The optional
measurandfield specifies the type of value being measured/reported. - The optional
contextfield specifies the reason/event triggering the reading. - The optional
locationfield specifies where the measurement is taken (e.g. Inlet, Outlet). - The optional
phasefield specifies to which phase or phases of the electric installation the value applies. The Charging Point SHALL report all phase number dependant values from the power meter (or grid connection when absent) point of view.
NOTE: The
phasefield is not applicable to all Measurands.
NOTE: Two measurands (
Current.OfferedandPower.Offered) are available that are strictly speaking no measured values. They indicate the maximum amount of current/power that is being offered to the EV and are intended for use in smart charging applications.
For individual connector phase rotation information, the Central System MAY query the ConnectorPhaseRotation configuration key on the Charging Point via GetConfiguration. The Charge Point SHALL report the phase rotation in respect to the grid connection. Possible values per connector are: NotApplicable, Unknown, RST, RTS, SRT, STR, TRS and TSR.
The EXPERIMENTAL optional format field specifies whether the data is represented in the normal (default) form as a simple numeric value (Raw), or as SignedData, an opaque digitally signed binary data block, represented as hex data. This experimental field may be deprecated and subsequently removed in later versions, when a more mature solution alternative is provided.
To retain backward compatibility, the default values of all of the optional fields on a sampledValue element are such that a value without any additional fields will be interpreted as a register reading of active import energy in Wh (Watt-hour) units.
Upon receipt of a MeterValues.req PDU, the Central System SHALL respond with a MeterValues.conf.
It is likely that the Central System applies sanity checks to the data contained in a MeterValues.req it received. The outcome of such sanity checks SHOULD NOT ever cause the Central System to not respond with a MeterValues.conf. Failing to respond with a MeterValues.conf will only cause the Charge Point to try the same message again as specified in Error responses to transaction-related messages.
Sequence Diagram
Figure 18. Sequence Diagram: Meter Values
Charge Point ──── MeterValues.req ────▶ Central System
(connectorId, transactionId?, meterValue[])
Charge Point ◀─── MeterValues.conf ──── Central System
Initiator
Charge Point → Central System
Fields
| Field Name | Field Type | Card. | Description |
|---|---|---|---|
| connectorId | integer (>= 0) | 1..1 | Required. This contains a number designating a connector of the Charge Point. 0 (zero) is used to designate the main power meter. |
| transactionId | integer | 0..1 | Optional. The transaction to which these meter samples are related. |
| meterValue | MeterValue | 1..* | Required. The sampled meter values with timestamps. |
No fields are defined.
Examples
{
"connectorId": 1,
"transactionId": 1234,
"meterValue": [
{
"timestamp": "2026-04-27T12:34:56Z",
"sampledValue": [
{
"value": "12500",
"context": "Sample.Periodic",
"measurand": "Energy.Active.Import.Register",
"unit": "Wh"
},
{
"value": "32.0",
"context": "Sample.Periodic",
"measurand": "Current.Import",
"phase": "L1",
"unit": "A"
}
]
}
]
}{}Related Configuration Keys
MeterValuesAlignedData,MeterValuesAlignedDataMaxLengthMeterValuesSampledData,MeterValuesSampledDataMaxLengthMeterValueSampleIntervalClockAlignedDataIntervalConnectorPhaseRotation,ConnectorPhaseRotationMaxLength
Schema
Source:
schemas/MeterValues.json,schemas/MeterValuesResponse.json(OCPP 1.6, JSON Schema draft-04)