Skip to content
Documentation Menu

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:

  1. The id of the Connector from which samples were taken. If the connectorId is 0, it is associated with the entire Charge Point. If the connectorId is 0 and the Measurand is energy related, the sample SHOULD be taken from the main energy meter.
  2. 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.
  3. 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 measurand field specifies the type of value being measured/reported.
  • The optional context field specifies the reason/event triggering the reading.
  • The optional location field specifies where the measurement is taken (e.g. Inlet, Outlet).
  • The optional phase field 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 phase field is not applicable to all Measurands.

NOTE: Two measurands (Current.Offered and Power.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 NameField TypeCard.Description
connectorIdinteger (>= 0)1..1Required. This contains a number designating a connector of the Charge Point. 0 (zero) is used to designate the main power meter.
transactionIdinteger0..1Optional. The transaction to which these meter samples are related.
meterValueMeterValue1..*Required. The sampled meter values with timestamps.

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"
        }
      ]
    }
  ]
}
  • MeterValuesAlignedData, MeterValuesAlignedDataMaxLength
  • MeterValuesSampledData, MeterValuesSampledDataMaxLength
  • MeterValueSampleInterval
  • ClockAlignedDataInterval
  • ConnectorPhaseRotation, ConnectorPhaseRotationMaxLength

Schema

Source: schemas/MeterValues.json, schemas/MeterValuesResponse.json (OCPP 1.6, JSON Schema draft-04)

Request schema (JSON Schema)
Response schema (JSON Schema)