Integrating IAMMETER Energy Meters with Victron Venus OS
Integrating IAMMETER Energy Meters with Victron Venus OS
Victron Energy's Venus OS is the central operating system for energy monitoring and management in Victron systems. It runs on GX devices like the Cerbo GX and can also be installed on a Raspberry Pi via its open-source version. Venus OS connects inverters, batteries, charge controllers, and other components into one smart system. It enables real-time monitoring, automated energy control, and remote access via the Victron Remote Management (VRM) portal. With support for MQTT and Modbus-TCP, it easily integrates with third-party platforms like Home Assistant, making it ideal for advanced solar and off-grid setups.
About the Contributor
The integration of IAMMETER with Victron Energy's Venus OS was developed by MiWyf.
Special thanks to MiWyf for contributing the code.
The following content is mainly sourced from the README of the integration project (https://github.com/lewei50/dbus-iammeter).
dbus-iammeter
Project page: https://github.com/lewei50/dbus-iammeter
Integrate IAMMETER WEM3080/WEM3080T/WEM3050T/WEM3046T smart meters into Victron Energy's Venus OS.
Purpose
The scripts in this repo provide an easy way to install, uninstall, and manage a service that connects IAMMETER smart meters (WEM3080/WEM3080T/WEM3050T/WEM3046T) to Venus OS and GX devices from Victron. The idea is based on the work of @fabian-lauer & @vikt0rm.
Inspiration
This is my first project on GitHub and with the Victron Venus OS. I drew inspiration from these great projects:
- https://github.com/RalfZim/venus.dbus-fronius-smartmeter
- https://github.com/victronenergy/dbus-smappee
- https://github.com/Louisvdw/dbus-serialbattery
- https://github.com/victronenergy/venus/wiki/dbus#grid-and-genset-meter
- IAMMETER Local API
How it Works
My Setup
- IAMMETER WEM3080/WEM3080T/WEM3050T/WEM3046T
- 1-Phase/3-Phase installation
- Connected to Wi-Fi network "A"
- IP: 192.168.1.6
- Venus OS on Raspberry Pi 4 (4GB, version 1.1, Firmware v2.84)
- No other Victron devices connected
- Connected to Wi-Fi network "A"
- IP: 192.168.1.10
Details / Process
As mentioned above, the script is inspired by @RalfZim's Fronius smart meter implementation. Here's what the script does:
- Runs as a service
- Connects to DBus on Venus OS at
com.victronenergy.grid.http_40
orcom.victronenergy.pvinverter.http_40
- Uses REST-API to call
/status
on the IAMMETER device and retrieves JSON data - Serial/MAC is extracted from the response and used as the device serial
- DBus paths are initialized with default values (0) and some settings like name
- A loop starts, polling data from the IAMMETER every 3000ms and updating the DBus accordingly



Installation & Configuration
Get the Code
Download the main branch and copy it to /data/dbus-iammeter
. Then run the install.sh
script:
wget https://github.com/lewei50/dbus-iammeter/archive/refs/heads/main.zip
unzip main.zip "dbus-iammeter-main/*" -d /data
mv /data/dbus-iammeter-main /data/dbus-iammeter
chmod a+x /data/dbus-iammeter/install.sh
/data/dbus-iammeter/install.sh
rm main.zip
⚠️ After installation, check the configuration. The service starts immediately, and incorrect connection data (host, username, password) will flood the log file.
Edit config.ini
The config file is located at /data/dbus-iammeter/config.ini
. Modify the values as needed, especially host
, username
, and password
in the "ONPREMISE" section.
Section | Config Value | Explanation |
---|---|---|
DEFAULT | AccessType | Fixed value: 'OnPremise' |
DEFAULT | SignOfLifeLog | Interval (minutes) for logging service status with log level INFO |
DEFAULT | CustomName | Device name (useful for multiple script instances) |
DEFAULT | DeviceInstance | Device instance number, e.g., 40 |
DEFAULT | Role | 'grid' or 'pvinverter' to define IAMMETER's role |
DEFAULT | Position | 0 = AC input 1; 1 = AC output; 2 = AC input 2 |
DEFAULT | LogLevel | Logging level (see: https://docs.python.org/3/library/logging.html#levels) |
ONPREMISE | Host | IP or hostname of IAMMETER's local web interface |
ONPREMISE | Username | Username for HTTP access (leave blank if not required) |
ONPREMISE | Password | Password for HTTP access (leave blank if not required) |
ONPREMISE | L1Position | IAMMETER input phase used for L1 (see remapping section) |
Remapping L1
In a 3-phase grid with a single Multi, Venus OS expects L1 to supply the Multi. This is not always the case. For example, if your Multi is supplied by L3 (Input C
on the IAMMETER), the GX device will show AC Loads on both L1 and L3.
By setting L1Position
, you can remap phases to ensure the GX shows correct data:
- If your Multi is connected to Input
A
, no changes are needed L1Position = 2
swapsB
andA
L1Position = 3
swapsC
andA
Documentation References
- https://github.com/victronenergy/venus/wiki/dbus#grid
- https://github.com/victronenergy/venus/wiki/dbus#pv-inverters
- https://github.com/victronenergy/venus/wiki/dbus-api
- https://www.victronenergy.com/live/ccgx:root_access
- IAMMETER Local API
About IAMMETER
IAMMETER is a company focused on energy management products and services, offering smart energy meters, management apps, and cloud platforms.
Our goal is to help customers manage, utilize, and save energy effectively, reducing electricity bills through smart monitoring and analysis.
Solutions
Products
- IAMMETER Energy Meters Overview
- WEM3080T – Three-Phase/Split-Phase Wi-Fi Energy Meter
- WEM3080 – Single-Phase Wi-Fi Energy Meter
- WEM3050T – Three-Phase Energy Meter
- WEM3046T – Three-Phase Wi-Fi Energy Meter with 5A Standard CT Input