Sorry, your browser does not support JavaScript!
Sign In

IAMMETER Wi-Fi Energy Meter: Local APIs and Open Interfaces

IAMMETER Wi-Fi Energy Meter: Local APIs and Open Interfaces

IAMMETER Wi-Fi energy meters support IAMMETER-Cloud as well as local and third-party integrations.

The available interfaces include:

  • Local HTTP API over the LAN
  • MQTT and MQTTS publishing
  • Modbus TCP
  • TCP/TLS upload
  • HTTP/HTTPS upload
  • Stand-alone local operation

These interfaces allow IAMMETER meters to act as open data sources for:

  • Home Assistant and other smart-home platforms
  • Node-RED automation
  • Self-hosted dashboards
  • PLC and SCADA systems
  • Custom Energy Management Systems (EMS)
  • Custom Building Management Systems (BMS)
  • Third-party data servers

This guide describes the current firmware and WebUI first. Screenshots and configuration methods for older firmware are retained in the final Legacy section.

For a ready-to-use application built on these capabilities, see Home Energy Monitoring, Solar Energy Monitoring, or local monitoring without Internet access.

1) Update to the Latest Firmware

IAMMETER firmware is updated continuously. Before configuring an integration, check the current release and model compatibility:

The latest firmware WebUI exposes the commonly used configuration options directly. Manual configuration API calls retained later in this article are mainly useful when maintaining older installations.

2) Choose the Run Mode in the Current WebUI

Select a run mode according to where the meter should send data or how it should operate locally.

Mode Behavior Typical use
Cloud Upload to IAMMETER-Cloud Ready-to-use dashboards and reports
TCP Upload to a third-party endpoint with TCP, TLS, or the supported TCP-mode configuration Custom server ingestion
HTTP Post data to a third-party HTTP/HTTPS endpoint REST or web backend
MQTT Publish directly to an MQTT or MQTTS broker Home automation and secure IoT messaging
Stand-Alone Do not upload; answer local API or Modbus TCP requests LAN-only or self-hosted monitoring

Current IAMMETER firmware WebUI showing run modes

The run mode controls data upload behavior. Local API and Modbus TCP availability should still be checked for the meter model, firmware and selected integration.

3) Why the Open Interfaces Matter

Open interfaces let users decide where electricity data is processed and stored.

Typical reasons include:

  • Keeping measurements inside the local network
  • Sending telemetry to an existing server
  • Connecting energy data with Home Assistant or Node-RED
  • Building custom dashboards and alarms
  • Combining electricity data with tariffs, solar or load-control logic
  • Operating at a site with limited or unreliable Internet access

Cloud and local access are not necessarily mutually exclusive. The suitable architecture depends on whether the project needs IAMMETER-Cloud reports, a local platform, a third-party server, or a combination.

4) Push Data to a Third-party Server

4.1 TCP and TLS

IAMMETER can push meter data to a TCP or TLS endpoint.

In the current WebUI:

  1. Select the TCP run mode.
  2. Enter the destination address.
  3. Configure the upload interval.
  4. Save the settings and verify data at the receiving server.

For a TCP server, use:

{domain-or-ip}:{port}

Example:

abc.com:12345

Current WebUI TCP server configuration

For a TLS server, use:

tls://{domain-or-ip}:{port}

Example:

tls://abc.com:12345

Current WebUI TLS server configuration

The current firmware overview documents a minimum upload interval of 2 seconds. Confirm the current firmware and receiving-server capacity before selecting a short interval.

4.2 MQTT and MQTTS

IAMMETER can publish telemetry directly to a plain MQTT broker or use MQTTS for encrypted transport on supported firmware.

In the current WebUI:

  1. Select the MQTT run mode.
  2. Enter the broker IP address or domain and port using the appropriate MQTT or MQTTS format.
  3. Enter the broker username and password when authentication is required.
  4. Configure the upload interval.
  5. Save and verify that messages arrive at the broker.

For plain MQTT, enter the broker address and port without an mqtt:// prefix:

192.168.11.163:1883

Current WebUI MQTT broker configuration

For MQTTS, include the mqtts:// prefix:

mqtts://{mqtt-broker-address}:{port}

Example:

mqtts://broker.example.com:8883

Current firmware MQTTS configuration example

MQTTS support documented in the November 2025 firmware update has the following current limitations:

  • Supports TLS 1.2 and below.
  • Uploading a custom CA certificate is not supported.
  • Hostname verification is not supported.
  • Client-side certificates for mutual TLS authentication are not supported.

These limitations are important when selecting a broker and evaluating the security requirements of the deployment.

The current firmware overview documents a minimum upload interval of 2 seconds.

Home Assistant MQTT Discovery is an additional Home Assistant discovery function; it is not required for every MQTT integration. See:

Change uploadInterval Remotely through MQTT/MQTTS

With the firmware described in the November 2025 update, a meter running in MQTT mode automatically subscribes to:

device/{sn}/config

Publish the following JSON from another MQTT client to change the upload interval remotely:

{"uploadInterval": 10}

Replace 10 with the required interval in seconds and {sn} with the meter serial number in the topic.

Modify IAMMETER uploadInterval through MQTT or MQTTS

This remote MQTT configuration is different from the older local /api/uploadinterval method retained in the Legacy section.

4.3 HTTP and HTTPS

IAMMETER can post data to a custom HTTP/HTTPS server.

In the current WebUI:

  1. Select the HTTP run mode.
  2. Enter the server address and port.
  3. Configure the upload interval.
  4. Save and verify requests at the server.

Current firmware supports both the default HTTPS port and a custom HTTPS port.

Use one of these formats:

  • Plain HTTP with no explicit port: {address} — defaults to port 80.
  • Plain HTTP with a custom port: {address}:{port}.
  • HTTPS with no explicit port: https://{address} — defaults to port 443.
  • HTTPS with a custom port: https://{address}:{port} — uses the specified port.

The https:// prefix selects HTTPS. Port 443 is no longer the only port available for HTTPS.

Examples:

api.example.com
api.example.com:8080
https://api.example.com
https://api.example.com:8443

Current WebUI HTTP/HTTPS destination configuration

Current firmware HTTPS custom-port configuration

See New Firmware Adds MQTTS, Remote Config, and Custom HTTPS Port for the firmware release note.

For server-side payload handling, also see Integrate IAMMETER with a Third-party Server.

5) Read Data Locally over HTTP

Connect the meter to the LAN and request data from its local IP address. These requests do not require IAMMETER-Cloud.

Test the APIs interactively: Open the IAMMETER Local API Explorer, enter the meter's local IP address and select the WEM API test page. The Swagger-style explorer lists the available local APIs and lets you send test requests directly from the browser. Your browser and the IAMMETER meter must be on the same LAN.

5.1 GET /api/monitorjson

Returns real-time electrical measurements.

The standard data includes values such as:

  • Voltage
  • Current
  • Active power
  • Forward/import kWh
  • Reverse/export kWh
  • Frequency
  • Power factor

Example response:

{
  "method": "uploadsn",
  "mac": "B0F8933C4F94",
  "version": "i.75.97.9",
  "server": "em",
  "SN": "3E0BAF87",
  "Datas": [
    [220.0, 9.99, 2198, 11.337, 11.201, 49.99, 1.00],
    [222.5, 9.99, 1100, 11.039, 10.908, 49.99, 0.50],
    [263.5, 9.99, 1213, 10.975, 10.846, 49.99, 0.55]
  ]
}

The number of measurement arrays depends on the meter model and channel count.

If reactive power measurement is enabled on a supported model/firmware, the response format may contain additional fields. See Reactive Power Measurement Data Format.

5.2 GET /api/monitor

Returns an extended real-time response that also includes Wi-Fi information such as:

  • ssid — connected access-point name
  • sig — Wi-Fi signal strength

Use this endpoint when an integration needs both electrical measurements and basic Wi-Fi status.

5.3 GET /api/wifidata

Returns firmware, device and network configuration information.

Example:

{
  "version": "i.75.97.9",
  "SN": "3E0BAF87",
  "mac": "B0F8933C4F94",
  "type": "PM",
  "ssid": "example-wifi",
  "ip": "192.168.11.62",
  "netmask": "255.255.255.0",
  "gw": "192.168.11.1",
  "dns": "192.168.11.1",
  "dhcp": 1,
  "runMode": "tcp",
  "uploadinterval": 60
}

Do not publish responses containing device serial numbers, MAC addresses, internal addressing or Wi-Fi information unless the values have been sanitized.

6) JSON Format across Upload Modes

IAMMETER uses a consistent core JSON measurement structure across HTTP, TCP, MQTT and the local API. This reduces the work required when one receiving system supports multiple transport methods.

The transport method and envelope may still affect how a receiver connects, authenticates or frames a message. Implement the receiving system against the documented format for the selected mode.

7) Modbus TCP

IAMMETER meters support Modbus TCP for direct LAN integration with compatible clients.

Typical clients include:

  • Home Assistant
  • PLCs
  • SCADA systems
  • Industrial gateways
  • Custom Modbus applications

References:

Confirm the meter model, firmware, register definition, polling interval and client behavior before deployment.

8) Integration Scenarios

System Typical protocol Example use Reference
Home Assistant HTTP, Modbus TCP or MQTT Local dashboard and automation Home Assistant Guide
Node-RED HTTP, Modbus TCP or MQTT Automation flows Node-RED Guide
openHAB / ioBroker HTTP or supported adapter Local dashboard ioBroker Integration
Zabbix HTTP Monitoring dashboard Zabbix Example
ThingsBoard HTTP or MQTT IoT visualization ThingsBoard Example
Custom server HTTP, MQTT, TCP or TLS Local or enterprise ingestion Build Your Own System

9) Current-interface Summary and Resources

Requirement Current interface
Read real-time measurements over LAN /api/monitorjson or /api/monitor
Read network/device information /api/wifidata
Push to a broker MQTT or MQTTS configured in current WebUI
Push to a custom TCP/TLS server TCP/TLS configured in current WebUI
Push to a custom web endpoint HTTP/HTTPS configured in current WebUI
Poll from a standard industrial client Modbus TCP
Operate without continuous data upload Stand-Alone mode

Additional resources:

IAMMETER's local APIs and open protocols make it possible to begin with real-time monitoring and later add a custom EMS, self-hosted dashboard or automation workflow.

10) Legacy Firmware Pages and Configuration Methods

The following material is retained only for meters that still run older firmware or for users maintaining an existing integration. For a new installation, update to the latest firmware and use the current WebUI wherever the required option is available.

10.1 Legacy Run-mode Page

Older firmware used the following run-mode selection page:

Legacy IAMMETER firmware run-mode page

The layout and option names may not match the current WebUI shown earlier in this guide.

10.2 Legacy TCP/TLS Page

Older firmware integrations may refer to this TCP/TLS configuration page and related guide:

Legacy firmware TCP/TLS configuration

10.3 Legacy MQTT Page

Older MQTT documentation used this configuration interface:

Legacy firmware MQTT configuration

For the current workflow, use the current WebUI instructions earlier in this article and the updated MQTT Integration Guide.

10.4 Legacy HTTP/HTTPS Page

Older firmware used the following HTTP/HTTPS destination page:

Legacy firmware HTTP/HTTPS configuration

The legacy integration guide is retained at Upload via HTTP/HTTPS.

In this older workflow, HTTPS was associated with the default port 443 and did not require the https:// prefix. Current firmware instead uses the https:// prefix to select HTTPS and supports either the default port 443 or an explicitly specified custom port.

10.5 Legacy Configuration APIs

The following local API calls appeared in earlier configuration workflows. In current firmware, the corresponding settings should normally be configured through the WebUI when the option is available.

/api/uploadinterval?x=<seconds>

Legacy method for setting the non-Cloud upload interval.

/api/mqtt

Legacy method for configuring MQTT credentials.

/api/netmetring

Legacy method for enabling or disabling Net Energy Metering mode.

/api/ctcratio

Legacy method for applying the documented Phase-C multiplier in specific split-phase or balanced scenarios.

/api/reactive

Legacy method for enabling or disabling reactive power and reactive energy measurement on supported firmware/models.

/api/ratio — WEM3046T only

WEM3046T uses external CTs with 5 A secondary outputs. Older configuration instructions set the CT ratio with:

/api/ratio?x={ct_ratio}

Example:

/api/ratio?x=400

This endpoint is specific to WEM3046T and is invalid for other IAMMETER models. For current firmware, use the model's current WebUI configuration when available.

Legacy material retained for backward reference; current installations should follow the latest firmware WebUI.

Top