Janitza UMG 96-PA Modbus register map
Also searched as: UMG 96-PA-MID+ · UMG 96-PAMID+ · UMG96PA
54 Modbus registers of the Janitza UMG 96-PA, with the address on the wire, the 30001-style reference, data type, byte order, unit and scale. Transcribed from UMG 96-PA, UMG 96-PAMID+ Modbus-address list and Formulary (from firmware 3.54) (12/2025).
Janitza UMG 96-PA panel power analyser (firmware 3.54 and later); 32-bit float readings from the common 19000 block.
- Device type
- Power analyser
- Registers
- 54
- Interfaces
- Modbus RTU
- Byte order (multi-register values)
- ABCD
- Serial settings
- 9600 to 115200 baud, 8 data bits; 1 stop bit with no, even or odd parity, or 2 stop bits with no parity
Hardware verification
Not yet verified on hardware. The map is transcribed from the vendor document and checked against it by script; check the first readings against the device display.
Connection notes
- Addresses are the list's register numbers, sent unchanged: Janitza's UMG address lists number from register 0 and give no example frame.
- Only the float block of frequently required readings (19000-19120) is transcribed; the list repeats many of these values at other addresses, as floats and as scaled shorts.
- Function 03 and 04 both read these registers; floats are big-endian (ABCD). The list says adding 32768 to an address returns the same value little-endian.
- Float and integer values include the configured current and voltage transformer ratios.
- Left out 19054-19058 and 19086-19092: the list labels them as duplicates of neighbouring registers (consumed energy, inductive reactive energy), so their meaning is unclear.
Registers
Grouped as in the vendor document.
Voltage 6 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Voltage L1-Nvoltage_l1_n | 419001 | 0x4A38 | float32 | ABCD | V | |
Voltage L2-Nvoltage_l2_n | 419003 | 0x4A3A | float32 | ABCD | V | |
Voltage L3-Nvoltage_l3_n | 419005 | 0x4A3C | float32 | ABCD | V | |
Voltage L1-L2voltage_l1_l2 | 419007 | 0x4A3E | float32 | ABCD | V | |
Voltage L2-L3voltage_l2_l3 | 419009 | 0x4A40 | float32 | ABCD | V | |
Voltage L3-L1voltage_l3_l1 | 419011 | 0x4A42 | float32 | ABCD | V |
Current 4 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Current, L1current_l1 | 419013 | 0x4A44 | float32 | ABCD | A | |
Current, L2current_l2 | 419015 | 0x4A46 | float32 | ABCD | A | |
Current, L3current_l3 | 419017 | 0x4A48 | float32 | ABCD | A | |
Vector sum, IN=I1+I2+I3current_vector_sum | 419019 | 0x4A4A | float32 | ABCD | A |
Power 12 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Real power L1active_power_l1 | 419021 | 0x4A4C | float32 | ABCD | W | |
Real power L2active_power_l2 | 419023 | 0x4A4E | float32 | ABCD | W | |
Real power L3active_power_l3 | 419025 | 0x4A50 | float32 | ABCD | W | |
Sum, Psum3=P1+P2+P3active_power_total | 419027 | 0x4A52 | float32 | ABCD | W | |
Apparent power L1apparent_power_l1 | 419029 | 0x4A54 | float32 | ABCD | VA | |
Apparent power L2apparent_power_l2 | 419031 | 0x4A56 | float32 | ABCD | VA | |
Apparent power L3apparent_power_l3 | 419033 | 0x4A58 | float32 | ABCD | VA | |
Sum, Ssum3=S1+S2+S3apparent_power_total | 419035 | 0x4A5A | float32 | ABCD | VA | |
Reactive power (mains frequ.) L1reactive_power_l1 | 419037 | 0x4A5C | float32 | ABCD | var | |
Reactive power (mains frequ.) L2reactive_power_l2 | 419039 | 0x4A5E | float32 | ABCD | var | |
Reactive power (mains frequ.) L3reactive_power_l3 | 419041 | 0x4A60 | float32 | ABCD | var | |
Sum, Qsum3=Q1+Q2+Q3reactive_power_total | 419043 | 0x4A62 | float32 | ABCD | var |
Frequency 1 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Measured frequencyfrequency | 419051 | 0x4A6A | float32 | ABCD | Hz |
Energy 21 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Real energy L1..L3active_energy_total | 419061 | 0x4A74 | float32 | ABCD | Wh | |
Real energy L1, consumedactive_energy_consumed_l1 | 419063 | 0x4A76 | float32 | ABCD | Wh | |
Real energy L2, consumedactive_energy_consumed_l2 | 419065 | 0x4A78 | float32 | ABCD | Wh | |
Real energy L3, consumedactive_energy_consumed_l3 | 419067 | 0x4A7A | float32 | ABCD | Wh | |
Real energy L1..L3, consumed, rate 1active_energy_consumed_total_rate_1 | 419069 | 0x4A7C | float32 | ABCD | Wh | |
Real energy L1, deliveredactive_energy_delivered_l1 | 419071 | 0x4A7E | float32 | ABCD | Wh | |
Real energy L2, deliveredactive_energy_delivered_l2 | 419073 | 0x4A80 | float32 | ABCD | Wh | |
Real energy L3, deliveredactive_energy_delivered_l3 | 419075 | 0x4A82 | float32 | ABCD | Wh | |
Real energy L1..L3, deliveredactive_energy_delivered_total | 419077 | 0x4A84 | float32 | ABCD | Wh | |
Apparent energy L1apparent_energy_l1 | 419079 | 0x4A86 | float32 | ABCD | VAh | |
Apparent energy L2apparent_energy_l2 | 419081 | 0x4A88 | float32 | ABCD | VAh | |
Apparent energy L3apparent_energy_l3 | 419083 | 0x4A8A | float32 | ABCD | VAh | |
Apparent energy L1..L3apparent_energy_total | 419085 | 0x4A8C | float32 | ABCD | VAh | |
Reactive energy, inductive, L1reactive_energy_inductive_l1 | 419095 | 0x4A96 | float32 | ABCD | varh | |
Reactive energy, inductive, L2reactive_energy_inductive_l2 | 419097 | 0x4A98 | float32 | ABCD | varh | |
Reactive energy, inductive, L3reactive_energy_inductive_l3 | 419099 | 0x4A9A | float32 | ABCD | varh | |
Reactive energy L1..L3, ind.reactive_energy_inductive_total | 419101 | 0x4A9C | float32 | ABCD | varh | |
Reactive energy, capacitive, L1reactive_energy_capacitive_l1 | 419103 | 0x4A9E | float32 | ABCD | varh | |
Reactive energy, capacitive, L2reactive_energy_capacitive_l2 | 419105 | 0x4AA0 | float32 | ABCD | varh | |
Reactive energy, capacitive, L3reactive_energy_capacitive_l3 | 419107 | 0x4AA2 | float32 | ABCD | varh | |
Reactive energy L1..L3, cap.reactive_energy_capacitive_total | 419109 | 0x4AA4 | float32 | ABCD | varh |
Status 1 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Rotation field, 1=right, 0=none, -1=leftrotation_field | 419053 | 0x4A6C | float32 | ABCD |
Power factor 3 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Power factor fundamental oscill., Cos(ϕ), UL1 IL1cos_phi_l1 | 419045 | 0x4A64 | float32 | ABCD | ||
Power factor fundamental oscill., Cos(ϕ),, UL2 IL2cos_phi_l2 | 419047 | 0x4A66 | float32 | ABCD | ||
Power factor fundamental oscill., Cos(ϕ),, UL3 IL3cos_phi_l3 | 419049 | 0x4A68 | float32 | ABCD |
Harmonics 6 registers
| Name and key | Reference | Address | Type | Byte order | Unit | Scale |
|---|---|---|---|---|---|---|
Harmonic, THD,U L1-Nthd_voltage_l1_n | 419111 | 0x4AA6 | float32 | ABCD | % | |
Harmonic, THD,U L2-Nthd_voltage_l2_n | 419113 | 0x4AA8 | float32 | ABCD | % | |
Harmonic, THD,U L3-Nthd_voltage_l3_n | 419115 | 0x4AAA | float32 | ABCD | % | |
Harmonic, THD,I L1thd_current_l1 | 419117 | 0x4AAC | float32 | ABCD | % | |
Harmonic, THD,I L2thd_current_l2 | 419119 | 0x4AAE | float32 | ABCD | % | |
Harmonic, THD,I L3thd_current_l3 | 419121 | 0x4AB0 | float32 | ABCD | % |
Source documents
- UMG 96-PA, UMG 96-PAMID+ Modbus-address list and Formulary (from firmware 3.54) , Janitza electronics GmbH, 2.061.029.3.e, 12/2025 (accessed 2026-11-09) SHA-256 is of the ZIP; transcribed from 20610293e-mal-umg96pa-fw3-en.pdf inside it, section "Frequently required measured values", pages 12-13.
Read it by name
Read the UMG 96-PA with an AI assistant
The Proxus Industrial MCP Server includes this map. Set it on the device, and Claude, Cursor or VS Code reads registers by key with the right type, byte order, scale and unit. It only reads.
This device speaks Modbus RTU: reach it through a Modbus TCP gateway and use the gateway’s address with the device’s unit ID.
proxus-mcp.json
{
"devices": {
"umg-1": {
"protocol": "modbus-tcp",
"host": "192.168.10.40",
"unit_id": 1,
"map": "janitza/umg-96-pa"
}
}
} Ask your assistant
Read voltage_l1_n, voltage_l2_n, voltage_l3_n from umg-1.
The tool call it makes
read_named(device: "umg-1", keys: ["voltage_l1_n", "voltage_l2_n", "voltage_l3_n"]) Have this device? Verify the map.
Ask your assistant to run verify_device_map. It reads every register once, read-only, checks that the values are plausible and asks you to compare two values with the display. You get a report and a prefilled GitHub issue to submit; your name goes on this map’s verified list.
Collecting from many devices?
Proxus reads Modbus TCP and RTU devices next to the machines, keeps the history and delivers the values to dashboards, databases and AI.