The ERT protocol consists of several different message structures but we are only concerned with two of them. The Standard Consumption Message (SCM) and the Interval Data Message (IDM).

Standard Consumption Message (SCM)

A 12 byte message containing only an ID, commodity type, tamper flags and the current consumption value.
Field Length (Bits) Description
Preamble/Sync Word210x1F2A60
Meter ID MSB2Two most significant bits of the ID.
Physical Tamper Flags2
Commodity Type 4 Indicates the commodity type of the meter. See list of meters:
Encoder Tamper Flags2
Consumption24The current consumption value.
Meter ID LSB2424 least significant bits of the ID.
Checksum16A BCH code with generator polynomial: $p(x) = x^{16} + x^{14} + x^{13} + x^{11} + x^{10} + x^9 + x^8 + x^6 + x^5 + x + 1$

Interval Data Message (IDM)

A 92 byte message containing differential consumption intervals.
Field Length (Bytes) Value Description
Sync Word20x16A3
Packet Type10x1C
Packet Length10x5C
Hamming Code10xC6Hamming code of first byte.
Application Version1
Commodity Type1Least significant nibble is equivalent to SCM's commodity type field.
Meter ID4Equivalent to SCM's Meter ID field.
Consumption Interval Count1
Module Programming State1
Tamper Count6
Async Count2
Power Outage Flags6
Last Consumption4Equivalent to SCM's consumption field.
Differential Consumption5347 intervals of 9-bit integers.
Transmit Time Offset2
Meter ID Checksum2CRC-16-CCITT of Meter ID.
Packet Checksum2CRC-16-CCITT of packet starting at Packet Type.

R900 Consumption Message

A 116 bit message containing ID, consumption, backflow and leak details.
Field Length (Bits) Value Description
NoUse6Day bins of no use. See issue #29 for more details.
BackFlow6Backflow in past 35 days, high/low.
Leak4Day bins of leak. See issue #29 for more details.
LeakNow2Leak in past 24 hours, high/low.