Janitza UMG 96-EL Modbus register map
Energy analyzer
- Official
- 3,283 registers
- Revision 3 · 2026-11-10
- Identity: serial number
Official: Written from the manufacturer's documentation, but not tested on a device yet. Check the map against the manufacturer's documentation before you write to a live device. Tested it? Report a test.
Communication
- Protocol
- Modbus TCP and RTUdefault
- Unit ID
- 1default
- TCP port
- 502default
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 3283 holding registers
- Groups
- 20
- Revision
- 3 · 2026-11-10
- Firmware
- 1.1.0
- Added
- ()
- File
- maps/janitza/umg-96-el.mbmap.json · 685 KB · history
- SHA-256
- 7a73804ad53ab7f12a743a8561f5308f3a81e63c55311821d76e97f54f186b85
- Manufacturer
- janitza.com
Device identity
What a tool can read to check that this map fits the connected device (SPEC.md section 4.7). Registers with a role are read like any other register.
| Role | Register | Address | Type | Values |
|---|---|---|---|---|
| Serial number | Serial number | holding 754 | uint32 ABCD |
Sources and notes
- UMG 96-EL Modbus address list and Formulary (PDF and table) · version From firmware 1.1.0, 07/2026, Doc. no. 2.067.007.2.b zip with the Formulary (PDF) and the address table (xlsx)
Source: Janitza electronics, "UMG 96-EL Modbus address list and Formulary", from firmware 1.1.0, 07/2026, Doc. no. 2.067.007.2.b
- Addresses are the protocol addresses of the address list; values are big-endian. The device also serves them little-endian at the address + 32768.
- Readings of type short are multiplied by 10, 100 or 1000 in the device (see scale); they do not include the transformer ratios, unlike the float readings.
- The text registers 25000 and 25128 are given a length of 128 registers (the gap between them); the address list does not state the length.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 10 | float32 ABCD | RW | A | Range 0 .. 1000000 | ||
| HR | 12 | float32 ABCD | RW | A | Range 1 .. 5 | ||
| HR | 14 | float32 ABCD | RW | V | Range 0 .. 1000000 | ||
| HR | 16 | float32 ABCD | RW | V | Range 100 .. 400 | ||
| HR | 18 | float32 ABCD | RW | A | Range 0 .. 1000000 | ||
| HR | 20 | float32 ABCD | RW | A | Range 1 .. 5 | ||
| HR | 22 | float32 ABCD | RW | V | Range 0 .. 1000000 | ||
| HR | 24 | float32 ABCD | RW | V | Range 100 .. 400 | ||
| HR | 26 | float32 ABCD | RW | A | Range 0 .. 1000000 | ||
| HR | 28 | float32 ABCD | RW | A | Range 1 .. 5 | ||
| HR | 30 | float32 ABCD | RW | V | Range 0 .. 1000000 | ||
| HR | 32 | float32 ABCD | RW | V | Range 100 .. 400 | ||
| HR | 34 | uint16 | RW | Hz | Range 0 .. 65 | ||
| HR | 35 | int16 | RW | Range 0 .. 9 | |||
| HR | 36 | int16 | RW | Range 0 .. 9 | |||
| HR | 37 | int16 | RW | Range 0 .. 1 | |||
| HR | 38 | int16 | RW | Range 0 .. 2 | |||
| HR | 39 | int16 | RW | s | Range 0 .. 60 | ||
| HR | 40 | int16 | RW | Range 0 .. 8 | |||
| HR | 41 | int16 | RW | Range 0 .. 8 | |||
| HR | 42 | int16 | RW | Range 0 .. 8 | |||
| HR | 43 | float32 ABCD | RW | A | Range 0 .. 1000000 | ||
| HR | 45 | uint16 | RW | mA | Range 0 .. 200 | ||
| HR | 50 | int16 | RW | Range 0 .. 999 | |||
| HR | 107 | int16 | RW | Range 0 .. 1 | |||
| HR | 108 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 110 | int16 | RW | Range 0 .. 32000 | |||
| HR | 111 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 112 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 113 | int16 | RW | Range 0 .. 1 | |||
| HR | 114 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 116 | int16 | RW | Range 0 .. 32000 | |||
| HR | 117 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 118 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 119 | int16 | RW | Range 0 .. 1 | |||
| HR | 120 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 122 | int16 | RW | Range 0 .. 32000 | |||
| HR | 123 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 124 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 125 | int16 | RW | Range 0 .. 1 | |||
| HR | 126 | int16 | RW | Range 0 .. 1 | |||
| HR | 127 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 129 | int16 | RW | Range 0 .. 32000 | |||
| HR | 130 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 131 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 132 | int16 | RW | Range 0 .. 1 | |||
| HR | 133 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 135 | int16 | RW | Range 0 .. 32000 | |||
| HR | 136 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 137 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 138 | int16 | RW | Range 0 .. 1 | |||
| HR | 139 | float32 ABCD | RW | Range -1e12 .. 1e12 | |||
| HR | 141 | int16 | RW | Range 0 .. 32000 | |||
| HR | 142 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 143 | int16 | RW | s | Range 0 .. 32000 | ||
| HR | 144 | int16 | RW | Range 0 .. 1 | |||
| HR | 500 | int16 | RW | Range -3 .. 3 | |||
| HR | 501 | int16 | RW | Range -3 .. 3 | |||
| HR | 502 | int16 | RW | Range -3 .. 3 | |||
| HR | 503 | int16 | RW | Range 0 .. 3 | |||
| HR | 504 | int16 | RW | Range 0 .. 3 | |||
| HR | 505 | int16 | RW | Range 0 .. 3 | |||
| HR | 506 | int16 | RW | Range 0 .. 1 | |||
| HR | 507 | int16 | RW | Range 0 .. 1 | |||
| HR | 508 | int16 | RW | Range 0 .. 1 | |||
| HR | 509 | int16 | RW | Range 0 .. 8 | |||
| HR | 510 | int16 | RW | Range 0 .. 8 | |||
| HR | 511 | int16 | RW | Range 0 .. 1 | |||
| HR | 600 | uint32 ABCD | R | ||||
| HR | 610 | int16 | R | ||||
| HR | 611 | int16 | R | ||||
| HR | 612 | int16 | R | ||||
| HR | 613 | int16 | R | ||||
| HR | 614 | int16 | R | ||||
| HR | 615 | int16 | R | ||||
| HR | 616 | int16 | R | ||||
| HR | 617 | int16 | R | ||||
| HR | 618 | int16 | RW | Range 0 .. 127 | |||
| HR | 619 | int16 | RW | Range 0 .. 127 | |||
| HR | 620 | int16 | RW | Range 0 .. 127 | |||
| HR | 621 | int16 | RW | Range 0 .. 127 | |||
| HR | 622 | int16 | RW | Range 0 .. 127 | |||
| HR | 623 | int16 | RW | Range 0 .. 127 | |||
| HR | 624 | int16 | RW | Range 0 .. 127 | |||
| HR | 743 | uint16 | R | ||||
| HR | 744 | uint16 | R | ||||
| HR | 745 | uint16 | R | ||||
| HR | 746 | int16 | RW | s | ×0.1 | Range 60 .. 9999 | |
| HR | 747 | int16 | RW | Range 0 .. 9 | |||
| HR | 754 | uint32 ABCD | R | ||||
| HR | 756 | uint32 ABCD | R | ||||
| HR | 800 | float32 ABCD | R | Hz | |||
| HR | 802 | float32 ABCD | R | V | |||
| HR | 804 | float32 ABCD | R | V | |||
| HR | 806 | float32 ABCD | R | V | |||
| HR | 808 | float32 ABCD | R | V | |||
| HR | 810 | float32 ABCD | R | V | |||
| HR | 812 | float32 ABCD | R | V | |||
| HR | 814 | float32 ABCD | R | V | |||
| HR | 816 | float32 ABCD | R | V |
No registers match
Try part of the name, an address (decimal or 0x hex) or clear the filters.
Help improve this map
- I tested it on a deviceReport whether it worked, even if you did not write the map.
- Suggest a correctionEdit the file on GitHub; it opens a pull request.
- Report a problemA wrong address, type, scale or byte order.
- Read the formatWhat each key of the file means (SPEC.md).