Sorry, your browser does not support JavaScript!
Sign In

Modbus TCP Energy Meter Integration: Registers and Testing

Modbus TCP Energy Meter Integration for Local Monitoring

Modbus TCP lets a local application read electrical measurements directly from an IAMMETER Wi-Fi energy meter.

It is suitable for:

  • PLC and SCADA systems;
  • Home Assistant and Node-RED;
  • local Energy Management Systems (EMS);
  • Building Management Systems (BMS);
  • one-second monitoring and automation;
  • applications that must operate without IAMMETER-Cloud.
IAMMETER energy meter
        │
        │ Wi-Fi / LAN
        │ Modbus TCP
        ▼
Home Assistant, Node-RED, PLC, SCADA or custom EMS

The client initiates each request. The meter returns register values for voltage, current, active power, imported energy, exported energy, power factor, frequency and other supported measurements.

Modbus TCP is a local polling interface. If the meter should publish data to a broker, use MQTT. If it should upload data to a customer server, see Receive IAMMETER Data on Your Own Server.

1. Why Use Modbus TCP?

Compared with cloud polling or periodic meter uploads, Modbus TCP provides:

  • direct access over the local network;
  • no dependency on IAMMETER-Cloud for the data path;
  • a standard register-based interface;
  • one-second polling for supported applications;
  • signed active-power values for bidirectional energy monitoring;
  • compatibility with common automation and industrial tools.

Typical uses include:

  • controlling a load from real-time grid power;
  • reading solar production, grid exchange or circuit load locally;
  • adding an energy meter to Home Assistant;
  • collecting measurements in Node-RED;
  • integrating electricity data into a PLC, SCADA, EMS or BMS.

2. Supported IAMMETER Meters

Current IAMMETER energy meter models support the available Home Assistant and open-integration modes, including Modbus TCP. The discontinued WEM3162 is not considered in this guide.

The main difference between models is the number and purpose of measurement channels:

  • single-channel meters expose the Phase A register block;
  • dual-channel or split-phase meters use the applicable channel blocks;
  • three-phase meters expose Phase A, B and C blocks;
  • supported meters may also expose totals and optional reactive measurements.

Always validate the register response against the exact model and firmware used in the project.

WEM3046T and WEM3046TE

WEM3046T and WEM3046TE measure the 5 A secondary output of an external current transformer.

The primary-side current, power and energy values must therefore use the applicable external CT ratio. This scaling requirement is caused by the 5 A CT input design of the meter; it is not a Modbus TCP or platform-specific behavior.

Keep CT-ratio processing documented and tested wherever these models are integrated.

3. Connection Parameters

The official IAMMETER Modbus Poll example uses:

Parameter Example value
Connection Modbus TCP/IP
Host Local IP address of the meter
TCP port 502
Device / Unit ID 1
Function code 03 — Read Holding Registers
Response timeout 1000 ms in the example

Modbus TCP connection settings in Modbus Poll

Use the meter's LAN IP address as the host. Reserving the address in the router can prevent an integration from breaking after a DHCP address change.

The values above are the parameters shown in the official example. Confirm the actual firmware and site configuration before hard-coding them in production software.

4. Quick Test with Modbus Poll

To confirm connectivity before configuring a complete platform:

  1. connect the computer and IAMMETER meter to the same LAN;
  2. find the meter's local IP address;
  3. create a Modbus TCP/IP connection to port 502;
  4. set Device ID to 1;
  5. select Function Code 03;
  6. request holding registers beginning at address 0;
  7. compare the returned raw values with the scaling rules below.

IAMMETER Modbus holding registers displayed in Modbus Poll

The screenshot uses a 500 ms display scan rate for testing. For normal use, IAMMETER documentation recommends one-second polling rather than treating the fastest client setting as the supported production interval.

If the connection fails, check:

  • that the meter and client are on the same reachable network;
  • the meter IP address;
  • TCP port 502 and firewall rules;
  • Device ID and function code;
  • whether another application is already controlling the intended polling workflow;
  • the meter firmware version.

5. Register Data Types and Scaling

IAMMETER uses 16-bit holding registers.

16-bit values

Voltage, current, power factor and frequency use one register:

Measurement Raw type Conversion
Voltage Unsigned 16-bit V = raw / 100
Current Unsigned 16-bit A = raw / 100
Power factor Unsigned 16-bit PF = raw / 1000
Frequency Unsigned 16-bit Hz = raw / 100

32-bit values

Active power, cumulative energy and reactive values use two consecutive registers.

The official Modbus Poll example displays the high-order 16-bit word first. Combine the words as:

raw32 = (register[n] << 16) | register[n + 1]

Interpret active and reactive power as signed 32-bit values. Interpret cumulative energy pulse counters as unsigned 32-bit values.

Measurement Raw type Conversion
Active power Signed 32-bit W = raw32
Import/forward energy Unsigned 32-bit kWh = raw32 / 800
Export/reverse energy Unsigned 32-bit kWh = raw32 / 800
Reactive power Signed 32-bit var = raw32
Inductive/capacitive reactive energy Unsigned 32-bit kvarh = raw32 / 1000

Signed active power allows an integration to distinguish opposite power directions. Confirm the sign convention against the CT orientation and application wiring during commissioning.

6. Core Modbus Register Map

Register addresses below are decimal offsets. The client should use Function Code 03.

Phase A

Address Length Measurement Conversion
0 1 Voltage Unsigned, /100 V
1 1 Current Unsigned, /100 A
2 2 Active power Signed, W
4 2 Import/forward energy Unsigned, /800 kWh
6 2 Export/reverse energy Unsigned, /800 kWh
8 1 Power factor Unsigned, /1000
9 1 Model identifier in the legacy map Do not use as the sole current model catalog

Phase B

Address Length Measurement Conversion
10 1 Voltage Unsigned, /100 V
11 1 Current Unsigned, /100 A
12 2 Active power Signed, W
14 2 Import/forward energy Unsigned, /800 kWh
16 2 Export/reverse energy Unsigned, /800 kWh
18 1 Power factor Unsigned, /1000
19 1 Reserved Not used

Phase C

Address Length Measurement Conversion
20 1 Voltage Unsigned, /100 V
21 1 Current Unsigned, /100 A
22 2 Active power Signed, W
24 2 Import/forward energy Unsigned, /800 kWh
26 2 Export/reverse energy Unsigned, /800 kWh
28 1 Power factor Unsigned, /1000
29 1 Reserved Not used

Frequency and totals

Address Length Measurement Conversion
30 1 Frequency Unsigned, /100 Hz
31 1 Reserved Not used
32 2 Total active power Signed, W
34 2 Total import/forward energy Unsigned, /800 kWh
36 2 Total export/reverse energy Unsigned, /800 kWh

The total registers are most relevant to multi-channel meters. For a single-channel integration, use the applicable Phase A values and validate any returned totals.

7. Optional Reactive Registers

Reactive registers are available only when reactive measurement is supported and enabled by the applicable meter and firmware.

Address Length Measurement Conversion
38 2 Phase A reactive power Signed, var
40 2 Phase A inductive reactive energy Unsigned, /1000 kvarh
42 2 Phase A capacitive reactive energy Unsigned, /1000 kvarh
44 2 Phase B reactive power Signed, var
46 2 Phase B inductive reactive energy Unsigned, /1000 kvarh
48 2 Phase B capacitive reactive energy Unsigned, /1000 kvarh
50 2 Phase C reactive power Signed, var
52 2 Phase C inductive reactive energy Unsigned, /1000 kvarh
54 2 Phase C capacitive reactive energy Unsigned, /1000 kvarh

Do not assume these values are active on every installation. Confirm the model, firmware and reactive-measurement setting.

8. Device Information Registers

Address Length Description
56 8 Device serial number
64 1 Runtime in seconds

Treat serial numbers and other device identifiers as operational data. Avoid publishing unsanitized values in screenshots, logs or public examples.

9. Integration Examples

Home Assistant

Modbus TCP is the IAMMETER Home Assistant option for users who need fast local readings and automation.

Use the IAMMETER Home Assistant integration guide as the main HA entry. It separates meter-side configuration from Home Assistant configuration and links to the current Modbus implementation methods.

Video:

Node-RED

Node-RED can poll the holding registers, normalize the raw values and route the measurements to automation flows, databases or dashboards.

PLC, SCADA, EMS and BMS

For an industrial or commercial integration:

  • document the register map version used;
  • apply the correct signed/unsigned conversion;
  • validate byte and word order;
  • confirm CT orientation and CT ratio;
  • define timeout and retry behavior;
  • monitor the last successful poll;
  • avoid unsupported polling rates;
  • test network interruption and recovery.

Custom software

A custom Modbus TCP client should separate:

  1. connection and retry logic;
  2. register reads;
  3. 16-bit and 32-bit decoding;
  4. meter-model and channel mapping;
  5. CT-ratio normalization where required;
  6. storage and application logic.

10. Modbus TCP or Another IAMMETER Interface?

Requirement Recommended interface
One-second local polling Modbus TCP
Simple JSON retrieval over the LAN Local HTTP API
Publish data to multiple consumers MQTT
Meter uploads to a customer web service HTTP/HTTPS
Meter uploads to a custom socket server TCP/TLS
Ready platform comparison Open-source integration guide

Related guides:

11. Firmware

Modbus TCP is no longer an experimental upgrade described only by the original 2022 release process. For a current installation, use the latest firmware available for the meter model:

Record the firmware version used to validate the register map and polling behavior.

12. Legacy Release Information

This article was originally published when Modbus TCP support was introduced through a firmware upgrade.

The older instructions referred to firmware 75.68 as an upgrade prerequisite and asked users to request an upgrade through the feedback system. That process is retained here only as historical context and should not be used for a new installation.

Original release resource:

Last updated: July 16, 2026

Top