Connecting a Janitza UMG Power Analyzer
How to read power quality and energy measurements from a Janitza UMG power analyzer over Modbus/TCP and map them into an ISA-95 style MQTT topic hierarchy.
This guide shows you how to read power quality and energy measurements from a Janitza UMG power analyzer with the Connectware Modbus/TCP connector and map them into an ISA-95 style MQTT topic hierarchy. The measurements collected here (voltage, current, power, power factor, frequency, and energy counters) are the typical input for energy monitoring dashboards and ISO 50001 energy management reporting. In more detail, the following topics are covered:
Preparing the Ethernet interface of the UMG device
Identifying the Modbus addresses of the measured values and energy counters
Decoding the Float values with the correct
dataTypeCreating the service commissioning file
Mapping the measurements into an ISA-95 style MQTT topic hierarchy
Verifying data in the Data Explorer
The register addresses in this guide are verified against the UMG 96RM-E Modbus address list (document 1.040.085.8, June 2024). Other Ethernet-capable UMG models, such as the UMG 604-PRO, use different address maps: download the Modbus address list for your model from the Janitza Modbus address list page and swap the addresses accordingly. The structure of the service commissioning file stays the same. If you operate Siemens meters as well, the guide Connecting a Siemens SENTRON PAC3200 Power Meter follows the same pattern for those devices.
This guide focuses on the Janitza UMG specifics. For a general introduction to the Modbus/TCP connector, including function codes and write operations, see Connecting & Integrating a Modbus/TCP Server.
A complete example file is available at the end of this guide.
Prerequisites
To follow this guide, you will need the following:
A running instance of Cybus Connectware.
A Janitza UMG power analyzer with an Ethernet interface (for example, a UMG 96RM-E) that is reachable over the network from Connectware.
The Modbus address list for your UMG model, available on the Janitza Modbus address list page.
Access to the Admin UI with sufficient user permissions.
Basic knowledge of MQTT and the Connectware services concept (for example, service commissioning files, connections, and endpoints).
Preparing the Device
Ethernet-capable UMG devices accept Modbus/TCP connections on the standard port 502 without further protocol configuration. You only need a working network setup:
Assign the device an IP address that is reachable from Connectware. On the UMG 96RM-E, you set the address mode (fixed IP, BOOTP, or DHCP) and the address directly on the device; see the user manual of your model for the exact menu steps.
Verify that port 502 is not blocked by a firewall between the device and Connectware.
Check the current and voltage transformer ratios configured on the device. The Float values that this guide reads already include these ratios, so wrong transformer settings produce wrong measurements on every downstream dashboard.
Connectware addresses the analyzer by its IP address; the default unit ID 1 of the Connectware Modbus connection works for a UMG that is connected directly over its Ethernet port. If you reach a meter through a Modbus gateway instead (some UMG devices can act as a gateway for serial Modbus devices), set the unitId connection property to the address of the meter behind the gateway.
Identifying the Modbus Addresses
Janitza documents all measured values of a UMG device in its Modbus address list. The UMG 96RM-E provides the most common measurements as a compact block of 32-bit Float values starting at address 19000, listed in the chapter "Frequently required readings". The device answers read requests with function code 3 (0x03) or 4 (0x04). The following addresses are used in this guide:
19000
2
Voltage L1-N
Float
V
19012
2
Current L1
Float
A
19026
2
Real power, sum L1..L3
Float
W
19034
2
Apparent power, sum L1..L3
Float
VA
19042
2
Reactive power, sum L1..L3
Float
var
19044
2
Power factor CosPhi L1
Float
-
19050
2
Measured frequency
Float
Hz
19068
2
Real energy L1..L3, consumed
Float
Wh
19076
2
Real energy L1..L3, delivered
Float
Wh
The remaining phases follow the same pattern in steps of two registers: voltages L2-N and L3-N are at addresses 19002 and 19004, currents L2 and L3 at 19014 and 19016, the per-phase real power values at 19020 to 19024, and CosPhi L2 and L3 at 19046 and 19048. The block also contains apparent energy (19084), reactive energy (19092), and total harmonic distortion values for voltage and current (19110 to 19120). For everything beyond this block, such as mean, minimum, and maximum values, consult the address list of your model.
Start every read at the exact documented address with length: 2. A read that is shifted by one register combines the halves of two neighboring Float values and produces implausible numbers instead of an error.
Decoding Float Values
Modbus registers are 16 bits long, so each Float value spans two registers. The Janitza address list states that the documented addresses supply data in big-endian format, which matches the Modbus standard and maps directly to the Connectware Modbus data types: set length: 2 and dataType: floatBE.
With the dataType property set, Connectware decodes the registers and publishes a plain JSON number. Without it, you receive a raw buffer that you would have to parse yourself. For all available data types, see Modbus/TCP Endpoint Properties.
Janitza additionally mirrors every value in little-endian format at the documented address plus 32768. You do not need these mirrored addresses with Connectware, because floatBE decodes the standard addresses directly.
Writing the Service Commissioning File
The service commissioning file contains all connection and mapping details. Do not worry about copying the snippets together into one file, the complete example file is available at the end of this guide.
Description and Metadata
These sections contain general information about the service commissioning file. Only the metadata name is required.
Parameters and Definitions
We define the network address of the analyzer as parameters, so you can set them when you install the service. The default Modbus/TCP port is 502.
The MQTT topics in this guide follow an ISA-95 style equipment hierarchy with an energy branch (<enterprise>/<site>/<area>/<line>/energy). We define the prefix once in the definitions section and reuse it in every mapping with !sub.
Cybus::Connection
The connection resource establishes the Modbus/TCP connection to the analyzer. The connectionStrategy object controls how Connectware retries failed connection attempts with increasing delays. For all connection properties, including unitId, see Modbus/TCP Connection Properties.
Cybus::Endpoint
Each endpoint polls one measured value. The address values come directly from the address list, and every Float value has length: 2. The UMG 96RM-E refreshes its Modbus registers every 200 milliseconds, so a poll interval of two seconds captures the instantaneous measurements comfortably.
The energy counters change slowly. A longer poll interval of ten seconds is sufficient for energy monitoring and reduces the load on the device.
If you poll many endpoints, enable batch read processing on the connection. Connectware then combines reads of neighboring registers, such as the power values at addresses 19026 to 19050, into a single request.
Cybus::Mapping
The mapping publishes each endpoint on a topic of the ISA-95 hierarchy.
With this mapping, the total active power of the line is published on the topic enterprise/hamburg/assembly/line-1/energy/power/active, and every other measurement follows the same pattern.
Installing the Service Commissioning File
Install the service commissioning file. See Installing Services.
Enable the service. See Enabling Services.
Result: The service is enabled. Connectware establishes the Modbus/TCP connection to the UMG device and polls the configured addresses.
Verifying the Data
Open the Data Explorer and subscribe to enterprise/hamburg/assembly/line-1/energy/#. Each topic carries a JSON object with the keys timestamp and value, where the value is the decoded measurement:
A few plausibility checks for the first readings:
The voltage on
voltage/l1-nmatches your grid, for example around 230 V in Europe.The frequency is between 45 and 65 Hz, typically 50 or 60 Hz.
The power factor on
power-factor/l1is between -1 and 1.The consumed energy counter matches the counter reading on the device display or in GridVis and only increases over time.
If the connection does not reach the Connected state, verify that the device is reachable from Connectware and that port 502 is not blocked. If values arrive but look implausible (for example, extremely large or near-zero numbers), the register decoding does not match: check that each address is exactly one documented Float address of your UMG model, that length is 2, and that dataType is floatBE. If the values are plausible but off by a constant factor, check the current and voltage transformer ratios configured on the device.
Service Commissioning File Example
Last updated
Was this helpful?

