Belimo · Energy meter
Thermal Energy Meter TEM DN 15...50 (version 4, 22PE..-1U.. / 22PF-..) Modbus register map
Default configuration
- Protocol
- Modbus TCP
- Port
- 502
- Unit ID
- 1
- Addressing
- 0-based
- Byte order
- Big endian
- Word order
- Low word first
Register map
| Address | Count | Name | Type | Unit | Scale | Access |
|---|---|---|---|---|---|---|
| 3 | 1 | Device type 0 = device not connected, 1 = air / water, 2 = VAV / EPIV, 3 = fire, 4 = energy valve / energy meter, 5 = 6-way EPIV. | UInt16 | - | 1 | R |
| 6 | 1 | Relative volumetric flow Relative to the nominal volumetric flow qp in register 110/111/112. Range 0...15000. | UInt16 | % | 0.01 | R |
| 7 | 1 | Absolute volumetric flow Range 0...1576; the sensor reads up to 2.5 x qp. | UInt16 | l/s | 0.01 | R |
| 8 | 1 | Absolute volumetric flow Range 0...2498; the sensor reads up to 2.5 x qp. | UInt16 | gpm | 0.1 | R |
| 9 | 2 | Absolute volumetric flow in the selected unit Unit chosen by register 147, low word first. | UInt32 | UnitSel | 0.001 | R |
| 12 | 1 | Sensor 1 value Additional sensor input; millivolts, a resistance or a 0/1 state depending on sensor type 1 (register 120). | UInt16 | mV | 1 | R |
| 13 | 1 | Sensor 1 temperature Range -2000...15000 counts (x0.01 degrees). | Int16 | °C | 0.01 | R |
| 14 | 1 | Sensor 1 temperature Range -400...30200 counts (x0.01 degrees). | Int16 | °F | 0.01 | R |
| 19 | 1 | Temperature 1 (remote) Range -2000...15000 counts (x0.01 degrees). | Int16 | °C | 0.01 | R |
| 20 | 1 | Temperature 1 (remote) Range -400...30200 counts (x0.01 degrees). | Int16 | °F | 0.01 | R |
| 21 | 1 | Temperature 2 (flow body) Range -2000...15000 counts (x0.01 degrees). | Int16 | °C | 0.01 | R |
| 22 | 1 | Temperature 2 (flow body) Range -400...30200 counts (x0.01 degrees). | Int16 | °F | 0.01 | R |
| 23 | 1 | Delta temperature | Int16 | K | 0.01 | R |
| 24 | 1 | Delta temperature | Int16 | °F | 0.01 | R |
| 25 | 1 | Glycol concentration Range 0...6000 (x0.01 percent); the effective range depends on the device type. | UInt16 | % | 0.01 | R |
| 27 | 2 | Absolute power cooling Low word first. Range 0...3990000 (x0.001 kW). | UInt32 | kW | 0.001 | R |
| 29 | 2 | Absolute power cooling Low word first. Range 0...136140 (x0.001 kBTU/h). | UInt32 | kBTU/h | 0.001 | R |
| 31 | 2 | Absolute power cooling in the selected unit Unit chosen by register 148, low word first. | UInt32 | UnitSel | 0.1 | R |
| 33 | 2 | Absolute power heating Low word first. Range 0...3990000 (x0.001 kW). | UInt32 | kW | 0.001 | R |
| 35 | 2 | Absolute power heating Low word first. Range 0...13614000 (x0.001 kBTU/h). | UInt32 | kBTU/h | 0.001 | R |
| 37 | 2 | Absolute power heating in the selected unit Unit chosen by register 148, low word first. | UInt32 | UnitSel | 0.1 | R |
| 59 | 2 | Accumulated volume Cannot be reset. Low word first. Range 0...2147483600 (x0.01 m3). | UInt32 | m3 | 0.01 | R |
| 61 | 2 | Accumulated volume Cannot be reset. Low word first. Range 0...2147483647 gal. | UInt32 | gal | 1 | R |
| 63 | 2 | Accumulated volume in the selected unit Unit chosen by register 149, low word first. | UInt32 | UnitSel | 1 | R |
| 65 | 2 | Absolute energy cooling Low word first. Range 0...2147483647 kWh. | UInt32 | kWh | 1 | R |
| 67 | 2 | Absolute energy cooling Low word first. | UInt32 | kBTU | 1 | R |
| 69 | 2 | Absolute energy cooling in the selected unit Unit chosen by register 150, low word first. | UInt32 | UnitSel | 1 | R |
| 71 | 2 | Absolute energy heating Low word first. | UInt32 | kWh | 1 | R |
| 73 | 2 | Absolute energy heating Low word first. | UInt32 | kBTU | 1 | R |
| 75 | 2 | Absolute energy heating in the selected unit Unit chosen by register 150, low word first. | UInt32 | UnitSel | 1 | R |
| 99 | 1 | Bus termination 0 = disabled (default), 1 = enabled: the 120 ohm bus termination is active. | UInt16 | - | 1 | R |
| 100 | 1 | Series number, 1st part Parts 1, 2 and 4 of the four-part series number are readable; the example 00839-31324-064-008 is read as 00839 / 31324 / 008. | UInt16 | - | 1 | R |
| 101 | 1 | Series number, 2nd part | UInt16 | - | 1 | R |
| 102 | 1 | Series number, 4th part | UInt16 | - | 1 | R |
| 103 | 1 | Firmware version Communication module firmware, e.g. 402 for version 4.02. | UInt16 | - | 1 | R |
| 104 | 1 | Malfunction and service information | Binary | - | 1 | R |
| 110 | 1 | Nominal volumetric flow (qp) Range 0...10000 (x0.01 l/s). | UInt16 | l/s | 0.01 | R |
| 111 | 1 | Nominal volumetric flow (qp) Range 0...15850 (x0.1 gpm). | UInt16 | gpm | 0.1 | R |
| 112 | 2 | Nominal volumetric flow (qp) in the selected unit Unit chosen by register 147, low word first. | UInt32 | UnitSel | 0.001 | R |
| 120 | 1 | Sensor 1 type 0 = none (default), 1 = active, 3 = passive, 4 = switch, 5 = switch (other state). | UInt16 | - | 1 | RW |
| 121 | 1 | Sensor 1 passive type 0 = resistance measurement (default), further passive types follow register 120. | UInt16 | - | 1 | RW |
| 147 | 1 | Unit selection flow 0 = m3/s, 1 = m3/h, 2 = l/s, 3 = l/min, 4 = l/h (default), 5 = gpm, 6 = cfm. Applies to the 32-bit flow registers 9 and 112. | UInt16 | - | 1 | RW |
| 148 | 1 | Unit selection power 0 = W, 1 = kW (default), 2 = MW, 3 = BTU/h, 4 = kBTU/h, 5 = ton. Applies to the 32-bit power registers 31, 37 and 163. | UInt16 | - | 1 | RW |
| 149 | 1 | Unit selection volume 0 = m3 (default), 1 = litre, 2 = gallon, 3 = cf. Applies to register 63. | UInt16 | - | 1 | RW |
| 150 | 1 | Unit selection energy 0 = J, 1 = kJ, 2 = MJ, 3 = GJ, 4 = Wh, 5 = kWh (default), 6 = MWh, 7 = BTU, 8 = kBTU, 9 = ton. Applies to registers 69 and 75. | UInt16 | - | 1 | RW |
| 159 | 2 | Nominal power P'nom, low word first. Range 0...1330000 (x0.001 kW). | UInt32 | kW | 0.001 | R |
| 161 | 2 | Nominal power P'nom, low word first. Range 0...4538000 (x0.001 kBTU/h). | UInt32 | kBTU/h | 0.001 | R |
| 163 | 2 | Nominal power in the selected unit P'nom in the unit chosen by register 148, low word first. | UInt32 | UnitSel | 0.1 | R |
Read this device live with Modbus Connect, free for Windows, macOS and Linux
Related guides
Notes
Source: Belimo 'Modbus Interface Description - Thermal Energy Meter (TEM) DN 15...50 (Version 4)', edition 2025-11 / V4.2.0, manufacturer date 25.04.2024 (belimo_Modbus-Register_TEM_V4_2_en-gb.pdf), sections Flow, Power, Energy, Temperature and conversion of sensor signals. www.belimo.com refuses automated downloads (HTTP 403), so the document was read from Belimo's own regional mirror https://www.belimo.ro/mam/general-documents/system_integration/Modbus/belimo_Modbus-Register_TEM_V4_2_en-gb.pdf (same MAM document and edition); the URL above is the canonical vendor location. Model numbers in the header are 22PE..-1U.. (e.g. 22PEM-1UC) and 22PF-x1(X)Ux2(x3(x4))-(SG). The meter has both transports: Modbus RTU over RS-485 (38400 Bd default, 1-8-N-2 default, address 1, 9600/19200/76800/115200 Bd and 1-8-N-1 / 1-8-E-1 / 1-8-O-1 selectable) and Modbus TCP over Ethernet. This seed declares the TCP path, so no serial block is needed. Addressing: 'addressed by 1..n (Register No.) or 0..n-1 (Address)' with both columns on every row; the stored values are the Address column (Register No. minus 1) - zero_based. Values above 65535 are split over two registers with the LowWord first, so the two-register rows are entered as UInt32 with word order LowFirst (the document's example: high word at Register No. x+1, low word at x). This is not the Energy Valve map: the TEM has no setpoint, override, command, control-mode or limit registers at all - it only measures flow, temperatures, power, accumulated volume and energy, and sets its units through 147-150. Left out: the energy-meter serial and production order numbers (registers 200-203), register 105's bit list (carried as a bit-coded status word only), and the ranges of registers 110/111 which the table prints with the selected-unit alternatives. Unsupported readings are returned as 65535 and the meter applies its own DN-dependent size limitation inside the printed ranges.