Stiebel Eltron ISG web / ISG plus Modbus register map
Internet Service Gateway ISG web and ISG plus with the Modbus TCP/IP software extension: heat pump manager WPM 3 and WPM 3i system values, parameters, status and energy data
- Official
- 118 registers
- Modbus TCP
- Revision 1 · 2026-11-10
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
- Unit ID
- 1
- TCP port
- 502
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 1-based · wire address = address − 1
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 21 holding registers, 97 input registers
- Groups
- 5
- Translation tables
- 6
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/stiebel-eltron/isg.mbmap.json · 29 KB · history
- SHA-256
- b560147f50b275d0be84aa04df812d52778e703c4c6406aae6a4a50ae379a1ca
- Manufacturer
- stiebel-eltron.com
Sources and notes
- Software documentation Modbus TCP/IP: Software extension for Internet Service Gateway · 2026-06 linked in issue #200; chapter 7 (WPM 3 and WPM 3i), chapter 10 (SG Ready); no version is printed, the PDF was generated in June 2026
Source: Stiebel Eltron, Software documentation Modbus TCP/IP (Software extension for Internet Service Gateway), WPM 3 / WPM 3i chapter and chapter 10
- Addresses are the numbers of the manufacturer's tables (for example 501 for 30501). The document says the ISG is one-based and that an offset of 1 may be needed depending on the client, so address_base is 1: the address on the wire is the number minus 1. If a read returns the neighbouring value, try address_base 0.
- The register tables differ per controller: the manufacturer publishes separate tables for WPMsystem, WPM 3 / WPM 3i, LWZ (05.1, 07.1) Plus (ISG Connect only), integral ventilation units and WPM G (WPE-I). This map follows only the WPM 3 / WPM 3i tables plus the SG Ready registers; the numbers in other tables can mean something else.
- Not every object exists on every device. An object that is not available reads 32768 (0x8000), shown here as a sentinel.
- Temperatures and most setpoints are integers with a 0.1 scale; the values with data type 7 (pressures, heating curve slope, volume flow) use 0.01. Energy totals are split: total energy = MWh register × 1000 + kWh register (0-999).
- The per-heat-pump values (addresses 542-583, 3523 onward), the cooling-circuit setpoints of WPMsystem, the fixed-value mode (1508), the reset registers (1520, 1521) and the power-limitation registers (4250 onward) are not in this map.
- Default connection: IP 192.168.0.126 when connected directly, TCP port 502, slave ID 1 (cannot be changed). Modbus TCP/IP needs the Basic service package and cannot be combined with other ISG software interfaces, apart from read access next to the EMI extension.
- Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 501 | int16 | R | °C | ×0.1 | ||
| IR | 502 | int16 | R | °C | ×0.1 | ||
| IR | 503 | int16 | R | °C | ×0.1 | ||
| IR | 504 | int16 | R | °C | ×0.1 | ||
| IR | 505 | int16 | R | % | ×0.1 | ||
| IR | 506 | int16 | R | °C | ×0.1 | ||
| IR | 507 | int16 | R | °C | ×0.1 | ||
| IR | 508 | int16 | R | °C | ×0.1 | ||
| IR | 509 | int16 | R | °C | ×0.1 | Only WPM 3i; WPM 3 uses address 510 | |
| IR | 510 | int16 | R | °C | ×0.1 | Only WPM 3; WPM 3i uses address 509 | |
| IR | 511 | int16 | R | °C | ×0.1 | ||
| IR | 512 | int16 | R | °C | ×0.1 | ||
| IR | 513 | int16 | R | °C | ×0.1 | Only with a flow/return module (MFG) | |
| IR | 514 | int16 | R | °C | ×0.1 | Only with a flow/return module (MFG) | |
| IR | 516 | int16 | R | °C | ×0.1 | ||
| IR | 517 | int16 | R | °C | ×0.1 | ||
| IR | 518 | int16 | R | °C | ×0.1 | ||
| IR | 519 | int16 | R | °C | ×0.1 | ||
| IR | 520 | int16 | R | bar | ×0.01 | Only with a flow/return module (MFG) | |
| IR | 521 | int16 | R | l/min | ×0.01 | Only with a flow/return module (MFG). The older document revisions list this with one decimal (scale 0.1); the current one lists two decimals | |
| IR | 522 | int16 | R | °C | ×0.1 | ||
| IR | 523 | int16 | R | °C | ×0.1 | ||
| IR | 524 | int16 | R | °C | ×0.1 | Cooling | |
| IR | 525 | int16 | R | °C | ×0.1 | Cooling | |
| IR | 526 | int16 | R | °C | ×0.1 | Cooling | |
| IR | 527 | int16 | R | °C | ×0.1 | Cooling | |
| IR | 528 | int16 | R | °C | ×0.1 | WPM 3 only | |
| IR | 529 | int16 | R | °C | ×0.1 | WPM 3 only | |
| IR | 530 | uint16 | R | h | WPM 3 only | ||
| IR | 531 | int16 | R | °C | ×0.1 | WPM 3 only | |
| IR | 532 | int16 | R | K | ×0.1 | WPM 3 only | |
| IR | 533 | int16 | R | °C | ×0.1 | Lower outside-temperature limit for heating | |
| IR | 534 | int16 | R | °C | ×0.1 | Lower outside-temperature limit for hot water | |
| IR | 535 | uint16 | R | h | WPM 3 only | ||
| IR | 536 | int16 | R | °C | ×0.1 | ||
| IR | 537 | int16 | R | °C | ×0.1 | ||
| IR | 538 | int16 | R | bar | ×0.01 | ||
| IR | 539 | int16 | R | °C | ×0.1 | WPM 3i only | |
| IR | 540 | int16 | R | bar | ×0.1 | WPM 3i only | |
| IR | 541 | int16 | R | bar | ×0.1 | WPM 3i only | |
| HR | 1501 | uint16 | RW | ||||
| HR | 1502 | int16 | RW | °C | ×0.1 | Room setpoint for heating | |
| HR | 1503 | int16 | RW | °C | ×0.1 | Room setpoint for heating | |
| HR | 1504 | int16 | RW | ×0.01 | |||
| HR | 1505 | int16 | RW | °C | ×0.1 | Room setpoint for heating | |
| HR | 1506 | int16 | RW | °C | ×0.1 | Room setpoint for heating | |
| HR | 1507 | int16 | RW | ×0.01 | |||
| HR | 1509 | int16 | RW | °C | ×0.1 | Mind the operating limits of the heat pump | |
| HR | 1510 | int16 | RW | °C | ×0.1 | ||
| HR | 1511 | int16 | RW | °C | ×0.1 | ||
| HR | 1512 | uint16 | RW | Mind the number of connected heat pumps | |||
| HR | 1513 | int16 | RW | °C | ×0.1 | ||
| HR | 1514 | int16 | RW | °C | ×0.1 | ||
| HR | 1515 | int16 | RW | K | ×0.1 | Cooling | |
| HR | 1516 | int16 | RW | °C | ×0.1 | ||
| HR | 1517 | int16 | RW | °C | ×0.1 | ||
| HR | 1518 | int16 | RW | K | ×0.1 | ||
| HR | 1519 | int16 | RW | °C | ×0.1 | ||
| IR | 2501 | bool bit 0 | R | ||||
| IR | 2501 | bool bit 1 | R | ||||
| IR | 2501 | bool bit 2 | R | ||||
| IR | 2501 | bool bit 3 | R | ||||
| IR | 2501 | bool bit 4 | R | ||||
| IR | 2501 | bool bit 5 | R | ||||
| IR | 2501 | bool bit 6 | R | ||||
| IR | 2501 | bool bit 7 | R | ||||
| IR | 2501 | bool bit 8 | R | ||||
| IR | 2501 | bool bit 9 | R | ||||
| IR | 2501 | bool bit 10 | R | Status word; WPM 3i has no silent mode | |||
| IR | 2501 | bool bit 11 | R | Status word; WPM 3i has no silent mode | |||
| IR | 2502 | bool bit 0 | R | ||||
| IR | 2503 | bool bit 0 | R | WPM 3 only | |||
| IR | 2503 | bool bit 1 | R | WPM 3 only | |||
| IR | 2503 | bool bit 2 | R | WPM 3 only | |||
| IR | 2503 | bool bit 3 | R | WPM 3 only | |||
| IR | 2503 | bool bit 4 | R | WPM 3 only | |||
| IR | 2503 | bool bit 5 | R | WPM 3 only | |||
| IR | 2503 | bool bit 6 | R | WPM 3 only | |||
| IR | 2503 | bool bit 7 | R | WPM 3 only | |||
| IR | 2503 | bool bit 8 | R | WPM 3 only | |||
| IR | 2503 | bool bit 9 | R | WPM 3 only | |||
| IR | 2503 | bool bit 10 | R | WPM 3 only | |||
| IR | 2503 | bool bit 11 | R | WPM 3 only | |||
| IR | 2503 | bool bit 12 | R | WPM 3 only | |||
| IR | 2503 | bool bit 13 | R | WPM 3 only | |||
| IR | 2504 | uint16 | R | System fault flag; acknowledge faults only on the ISG service interface | |||
| IR | 2505 | int16 | R | Zero or negative; the document lists it as unsigned but gives negative values | |||
| IR | 2506 | uint16 | R | WPM 3 only | |||
| IR | 2570 | uint16 | R | ||||
| IR | 2571 | uint16 | R | ||||
| IR | 2572 | uint16 | R | ||||
| IR | 2573 | uint16 | R | ||||
| IR | 3501 | uint16 | R | kWh | Daily value | ||
| IR | 3502 | uint16 | R | kWh | Total = MWh part × 1000 + kWh part (kWh part 0-999) | ||
| IR | 3503 | uint16 | R | MWh | Total = MWh part × 1000 + kWh part | ||
| IR | 3504 | uint16 | R | kWh | Daily value | ||
| IR | 3505 | uint16 | R | kWh | Total = MWh part × 1000 + kWh part (kWh part 0-999) | ||
| IR | 3506 | uint16 | R | MWh | Total = MWh part × 1000 + kWh part | ||
| IR | 3507 | uint16 | R | kWh | All heat pumps; total = MWh part × 1000 + kWh part | ||
| IR | 3508 | uint16 | R | MWh | All heat pumps |
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).