Reference · English
MWAC v.2 Modbus register map
Description
| RO / RW | Read only / Read/Write |
| Shown in bold | Default register value |
| xN | Multiply the register value by this factor to obtain the value in the stated units.
If omitted, assume 1 |
| ⚡ | This register supports data transmission using events in Fast Modbus. |
| FW | Firmware version that introduced the register. Blank means it has always been available. |
| Error: | Value on error |
| Grey cell | Service register: purpose, format and contents may change in later firmware |
| Address | Register parameters | Channel | Description | Values | FW | |||
|---|---|---|---|---|---|---|---|---|
| Dec | Hex | Type | Access | Format | ||||
| 0 | 0x0000 | Coil ⚡ | RW | bool | Relay K1 | Output state | 0 — off, C and NC closed, 1 — on, C and NO closed | |
| 1 | 0x0001 | Coil ⚡ | RW | bool | Relay K2 | |||
| 2 | 0x0002 | Coil ⚡ | RW | bool | Leak mode | Leak mode state | 0 — normal state, 1 — mode enabled Note: since firmware 1.21.7, only 0 can be written to this register (see ERRMWAC2008); separate coil register 4 enables the buzzer. | |
| 3 | 0x0003 | Coil ⚡ | RW | bool | Wet cleaning mode | Wet cleaning mode state | 0 — mode disabled, 1 — mode enabled | |
| 4 | 0x0004 | Coil ⚡ | RW | bool | Buzzer | Buzzer state | 0 — off, 1 — enabled | |
| 10 | 0x000A | Coil | RW | bool | P1 | Reset channel counter | Writing 1 resets the counter (0) | |
| 11 | 0x000B | P2 | ||||||
| 0 | 0x0000 | Discrete input ⚡ | RO | bool | F1 | Input state | 0 — off, 1 — on | |
| 1 | 0x0001 | F2 | ||||||
| 2 | 0x0002 | F3 | ||||||
| 3 | 0x0003 | F4 | ||||||
| 4 | 0x0004 | F5 | ||||||
| 5 | 0x0005 | S6 | ||||||
| 6 | 0x0006 | K1 button | ||||||
| 7 | 0x0007 | K2 button | ||||||
| 10 | 0x000A | Discrete input | RO | bool | P1 | Pulse-counter input state | 0 — off, 1 — on | |
| 11 | 0x000B | P2 | ||||||
| 15 | 0x000F | Discrete Input ⚡ | RO | bool | iVout output state | 0 — normal, 1 — overloaded | ||
| 20 | 0x0014 | Discrete Input ⚡ | RO | bool | F1 | Larnitech leak-sensor health (valid only for these sensors) | ||
| 21 | 0x0015 | F2 | ||||||
| 22 | 0x0016 | F3 | ||||||
| 23 | 0x0017 | F4 | ||||||
| 24 | 0x0018 | F5 | ||||||
| 25 | 0x0019 | S6 | ||||||
| 6 | 0x0006 | Holding | RW | u16 | Relay states at power-on | 0 — set output to safe state, 1 — restore last state | ||
| 8 | 0x0008 | Holding | RW | u16 | Fail-safe timeout. To disable fail-safe behavior, configure the Output action on entering Safety Mode and Input control in Safety Mode registers | s 1 — 65534 (10) | ||
| 9 | 0x0009 | Holding | RW | u16 | F1 | Digital input mode |
3: interaction disabled, | |
| 10 | 0x000A | F2 | ||||||
| 11 | 0x000B | F3 | ||||||
| 12 | 0x000C | F4 | ||||||
| 13 | 0x000D | F5 | ||||||
| 14 | 0x000E | S6 | ||||||
| 20 | 0x0014 | Holding | RW | u16 | F1 | Input debounce time. Adds response delay and applies to every digital input mode. | ms 0 — 2000 (50) | |
| 21 | 0x0015 | F2 | ||||||
| 22 | 0x0016 | F3 | ||||||
| 23 | 0x0017 | F4 | ||||||
| 24 | 0x0018 | F5 | ||||||
| 25 | 0x0019 | S6 | ||||||
| 32 | 0x0020 | Input ⚡ | RO | u16 | F1 | Input activation counter | ||
| 33 | 0x0021 | F2 | ||||||
| 34 | 0x0022 | F3 | ||||||
| 35 | 0x0023 | F4 | ||||||
| 36 | 0x0024 | F5 | ||||||
| 37 | 0x0025 | S6 | ||||||
| 38 | 0x0026 | K1 button | ||||||
| 39 | 0x0027 | K2 button | ||||||
| 452 - 455 | 0x01C4 - 0x01C7 | Holding | RW | u64 | Unix time | Seconds since midnight (00:00:00) on 1 January 1970, adjusted for the controller time zone | ||
| 464 | 0x01D0 | Input ⚡ | RO | u16 | F1 | Short-press counter | ||
| 465 | 0x01D1 | F2 | ||||||
| 466 | 0x01D2 | F3 | ||||||
| 467 | 0x01D3 | F4 | ||||||
| 468 | 0x01D4 | F5 | ||||||
| 469 | 0x01D5 | S6 | ||||||
| 470 | 0x01D6 | K1 button | ||||||
| 471 | 0x01D7 | K2 button | ||||||
| 480 | 0x01E0 | Input ⚡ | RO | u16 | F1 | Long-press counter | ||
| 481 | 0x01E1 | F2 | ||||||
| 482 | 0x01E2 | F3 | ||||||
| 483 | 0x01E3 | F4 | ||||||
| 484 | 0x01E4 | F5 | ||||||
| 485 | 0x01E5 | S6 | ||||||
| 486 | 0x01E6 | K1 button | ||||||
| 487 | 0x01E7 | K2 button | ||||||
| 496 | 0x01F0 | Input ⚡ | RO | u16 | F1 | Double-press counter | ||
| 497 | 0x01F1 | F2 | ||||||
| 498 | 0x01F2 | F3 | ||||||
| 499 | 0x01F3 | F4 | ||||||
| 500 | 0x01F4 | F5 | ||||||
| 501 | 0x01F5 | S6 | ||||||
| 502 | 0x01F6 | K1 button | ||||||
| 503 | 0x01F7 | K2 button | ||||||
| 512 | 0x0200 | Input ⚡ | RO | u16 | F1 | Short-then-long-press counter | ||
| 513 | 0x0201 | F2 | ||||||
| 514 | 0x0202 | F3 | ||||||
| 515 | 0x0203 | F4 | ||||||
| 516 | 0x0204 | F5 | ||||||
| 517 | 0x0205 | S6 | ||||||
| 518 | 0x0206 | K1 button | ||||||
| 519 | 0x0207 | K2 button | ||||||
| 522 | 0x020A | Holding | RW | u8 | F1 | Leak-sensor type. Used only for mode 5 set in registers 9–14 | 0 — normally open (NO), 1 — normally closed (NC) |
1.22.0 |
| 523 | 0x020B | F2 | ||||||
| 524 | 0x020C | F3 | ||||||
| 525 | 0x020D | F4 | ||||||
| 526 | 0x020E | F5 | ||||||
| 527 | 0x020F | S6 | ||||||
| 544 - 607 | 0x0220 - 0x025F | Holding | RW | u16 | Registers of the mapping matrix for short presses. Used only in Digital input or button mode set in registers 9–14 | |||
| 608 - 671 | 0x0260 - 0x029F | Holding | RW | u16 | Registers of the mapping matrix for long presses. Used only in Digital input or button mode set in registers 9–14 | |||
| 672 - 735 | 0x02A0 - 0x02DF | Holding | RW | u16 | Registers of the mapping matrix for double presses. Used only in Digital input or button mode set in registers 9–14 | |||
| 736 - 799 | 0x02E0 - 0x031F | Holding | RW | u16 | Registers of the mapping matrix for short-then-long presses. Used only in Digital input or button mode set in registers 9–14 | |||
| 800 - 863 | 0x0320 - 0x035F | Holding | RW | u16 | Registers of the mapping matrix for rising edges. Used only in Edge control mode set in registers 9–14 | |||
| 864 - 927 | 0x0360 - 0x039F | Holding | RW | u16 | Registers of the mapping matrix for falling edges. Used only in Edge control mode set in registers 9–14 | |||
| 930 | 0x03A2 | Holding | RW | u16 | Relay K1 | Safe-state configuration | 0 — off, 1 — enabled | |
| 931 | 0x03A3 | Relay K2 | ||||||
| 932 | 0x03A4 | Leak mode | ||||||
| 938 | 0x03AA | Holding | RW | u16 | Relay K1 | Action on entering Safety Mode | 0 — do nothing, 1 — set output to safe state | |
| 939 | 0x03AB | Relay K2 | ||||||
| 940 | 0x03AC | Leak mode | ||||||
| 946 | 0x03A2 | Holding | RW | u16 | Relay K1 | Input control in Safety Mode | 0 — do not block, 1 — block in Safety Mode, 2 — allow only in Safety Mode |
1.22.0 |
| 947 | 0x03A3 | Relay K2 | ||||||
| 948 | 0x03A4 | Leak mode | ||||||
| 950 | 0x03B6 | Buzzer | ||||||
| 952 | 0x03B8 | Holding | RW | u8 | Buzzer behavior when a leak sensor triggers | 0 — leave unchanged, 1 — enabled |
1.22.0 | |
| 954 | 0x03BA | Holding | RW | u8 | Audible leak-alarm duration (s) | 0...60 (0), 0 — no timeout |
1.25.0 | |
| 953 | 0x03B9 | Holding | RW | u8 | Safe-mode effect on anti-seizing | 0 — allow operation in Safety Mode, 1 — postpone until the next day |
1.24.0 | |
| 955 | 0x03BB | Holding | RW | u8 | Anti-seize protection interval | days 1 - 60 (30) |
1.24.0 | |
| 956 | 0x03BC | Holding | RW | u8 | Hour of day for anti-seize protection | 0 - 23 (0) | 1.24.0 | |
| 957 | 0x03BD | Holding | RW | u8 | Anti-seize cycle duration | s 10 - 120 (60) |
1.24.0 | |
| 958 | 0x03BE | Holding | RW | u8 | Relay K1 | Action at start of anti-seize protection | 0 — do nothing (function disabled), 1 — turn off/on, 2 — turn on/off |
1.24.0 |
| 959 | 0x03BF | Holding | RW | u8 | Relay K2 | |||
| 960 | 0x03C0 | Input | RO | u8 | Relay K1 | Last anti-seize protection status | 0 — completed successfully, 1 — in progress: closing, 2 — in progress: opening, 3 — interrupted, 4 — never run, 5 — postponed: Safety Mode, 6 — postponed: leak, 7 — postponed: water flow |
1.24.0 |
| 961 | 0x03C1 | Input | RO | u8 | Relay K2 | |||
| 962 | 0x03C2 | Input | RO | u16 | Relay K1 | Days until next anti-seize cycle | 0 — scheduled today 0xFFFF — not set |
1.24.0 |
| 963 | 0x03C3 | Input | RO | u16 | Relay K2 | |||
| 977 | 0x03D1 | Holding | RW | u8 | Relay K1 | Effect of water flow on anti-seize scheduling. Uses the same channel's counter: K1 — P1 input; K2 — P2 input |
0 — allow operation while water is flowing, 1 — postpone until the next day |
1.27.0 |
| 978 | 0x03D2 | Holding | RW | u8 | Relay K2 | |||
| 964 | 0x03C4 | Holding | RW | u16 | Service register to disable the buzzer. Value does not persist after restart. | 1 — disabled, 0 — enabled |
≥ 1.21.1 | |
| 965 | 0x03C5 | Holding | RW | u16 | Service register to output a system clock on the RS-485 connector. Writing this register interrupts communication for the duration specified in register 966. | 1 — RTC crystal frequency, 2 — 8 MHz / 128 frequency | ||
| 966 | 0x03C6 | Holding | RW | u16 | Service register specifying system-clock output duration on RS-485. | 1 — 20 s | ||
| 968 | 0x03C8 | Holding | RW | u16 | Service register to start measuring voltage drop across the BAS70-06 diode in series with the battery. Used in production to estimate battery consumption without external power. Measurement procedure: 1. Write 1 to this register; the device restarts 2. Wait 0.1 s for entry into the bootloader 3. Disconnect power 4. Wait 2.2 s for measurement completion 5. Restore power 6. Wait 2.8 s for startup and initialization 7. Read register 969 |
|||
| 969 | 0x03C9 | Input | RO | u16 | Service register containing the voltage drop across the BAS70-06 diode in series with the battery. Follow the preceding register's procedure to obtain a reading. | mV; below 300 mV is considered normal | ||
| 970 | 0x03CA | Input | RO | u16 | Battery-voltage service register. Measured once at startup. Without a battery, reads approximately 0.6 V due to circuit limitations | mV | ||
| 971 | 0x03CB | Input | RO | u16 | Battery condition | 2 — excellent, 1 — normal, 0 — depleted | ||
| 974 | 0x03CE | Holding | RW | u16 | Restore valve state after the leak is resolved | 0 — disabled, 1 — enabled | ||
| 975 | 0x03CF | Holding | RW | u16 | Wet-cleaning mode timer | min 1 — 360 (20) | ||
| 976 | 0x03D0 | Input | RO | u16 | Remaining wet-cleaning time | min | 1.24.0 | |
| 1062 - 1063 | 0x0426 - 0x0427 | Input | RO | u32 | P1 | Channel pulse counter | ||
| 1064 - 1065 | 0x0428 - 0x0429 | P2 | ||||||
| 1066 | 0x042A | Holding | RW | u16 | P1 | Channel pulse weight. Common meters produce one pulse per 1, 10, 50 or 100 litres. Check your meter's technical documentation. | L/pulse 1 — 10000 (1) | |
| 1067 | 0x042B | P2 | ||||||
| 1068 - 1071 | 0x042C - 0x042F | Input | RO | u64 | P1 | Channel volume counter | ×0.001, m3 | |
| 1072 - 1075 | 0x0430 - 0x0433 | P2 | ||||||
| 1076 - 1079 | 0x0434 - 0x0437 | Holding | RW | u64 | P1 | Initial channel counter value | L (0) | |
| 1080 - 1083 | 0x0438 - 0x043B | P2 | ||||||
| 1100 | 0x044C | Holding | RW | u16 | F1 | Long press time | ms 500 — 5000 (1000) | |
| 1101 | 0x044D | F2 | ||||||
| 1102 | 0x044E | F3 | ||||||
| 1103 | 0x044F | F4 | ||||||
| 1104 | 0x0450 | F5 | ||||||
| 1105 | 0x0451 | S6 | ||||||
| 1140 | 0x0474 | Holding | RW | u16 | F1 | Second press waiting time | ms 0 — 2000 (300) | |
| 1141 | 0x0475 | F2 | ||||||
| 1142 | 0x0476 | F3 | ||||||
| 1143 | 0x0477 | F4 | ||||||
| 1144 | 0x0478 | F5 | ||||||
| 1145 | 0x0479 | S6 | ||||||
| 8260 - 8323 | 0x2044 - 0x2083 | Holding | RW | u16 | Registers of the mapping matrix for the rising edge of a leak-sensor signal. Used only in Leak sensor mode set in registers 9–14 | |||
| 65402 | 0xFF7A | Holding | RW | u16 | Service register for configuration reset. The device restarts after reset. | 1 — perform reset | ≥ 1.21.1 | |
| Address | Register parameters | Description | Values | Note | |||
|---|---|---|---|---|---|---|---|
| Dec | Hex | Type | Access | Format | |||
| Connection settings | |||||||
| 110 | 0x006E | Holding | RW | u16 | RS-485 baud rate. RS-485 connection parameter settings |
×100, baud 12 — 1200 bit/s, 24 — 2400 bit/s, 48 — 4800 bit/s, 96 — 9600 bit/s, 192 — 19200 bit/s, 384 — 38400 bit/s, 576 — 57600 bit/s, 1152 — 115200 bit/s |
|
| 111 | 0x006F | Holding | RW | u16 | RS-485 parity setting | 0 — no parity (none), 1 — odd, 2 — even |
|
| 112 | 0x0070 | Holding | RW | u16 | RS-485 stop bits See: stop-bit tolerance |
1, 2 | |
| 128 | 0x0080 | Holding | RW | u16 | Device Modbus address (details) | ||
| Device model and firmware version | |||||||
| 200-205 | 0x00C8 - 0x00CD | Input | RO | string | Device model | ||
| 206-219 | 0x00CE - 0x00DB | Input | RO | string | Device model extension. | Read 20 registers (200–219) to obtain the device model | Only in firmware supporting Fast Modbus |
| 220-244 | 0x00DC - 0x00F4 | Input | RO | string | Firmware build commit hash and branch name (2 characters per register) | ||
| 250-265 | 0x00FA - 0x0109 | Input | RO | string | Firmware version | ||
| 266-269 | 0x010A - 0x010D | Input | RO | u64 | Serial number extension | ||
| 270-271 | 0x010E - 0x010F | Input | RO | u32 | Serial number | ||
| 290-301 | 0x0122 - 0x012D | Input | RO | string | Firmware signature | ||
| 320 | 0x0140 | Input | RO | u16 | Firmware version in numeric format (details) | MAJOR | Only in firmware supporting Fast Modbus |
| 321 | 0x0141 | MINOR | |||||
| 322 | 0x0142 | PATCH | |||||
| 323 | 0x0143 | s16 | SUFFIX | ||||
| 324-325 | 0x0144 - 0x0145 | Input | RO | u32 | Firmware version in numeric format | Only in firmware supporting Fast Modbus | |
| 326-327 | 0x0146 - 0x0147 | Input | RO | u32 | Firmware version in big-endian format | Only in firmware supporting Fast Modbus | |
| Other information | |||||||
| 104-105 | 0x0068 - 0x0069 | Input | RO | u32 | Uptime since boot | seconds | |
| 120 | 0x0078 | Holding | RW | u16 | Reboot device without saving state | Any non-zero value reboots the device | |
| 129 | 0x0081 | Holding | RW | u16 | Enter firmware update mode for 2 minutes | Any non-zero value enters firmware update mode | |
| 330-337 | 0x014A - 0x0151 | Input | RO | string | Bootloader version | ||
| 130 | 0x0082 | Holding | RW | u16 | Disable Status LED | 0 — enabled 1 — disabled |
|
| 131 | 0x0083 | Holding | RW | u16 | Enter firmware update mode using the current communication settings. To check whether the firmware and bootloader support this feature, read this register. If reading succeeds and returns 0, the feature is supported.
|
Writing 1 enters firmware update mode | |
| 113 | 0x0071 | Holding | RW | u16 | Delay before replying to a Modbus request | ms 0…254 (0) |
Only in firmware supporting Fast Modbus |
| 114 | 0x0072 | Holding | RW | u16 | Continuous reading across register gaps | 0 — disabled 1 — enabled 2 — enabled persistently across reboots |
Only in firmware supporting Fast Modbus |
| 121 | 0x0079 | Input | RO | u16 | Current supply voltage | mV | |
| 122 | 0x007A | Input | RO | u16 | Minimum supply voltage since boot, without averaging | mV | |
| 125 | 0x007D | Input | RO | u16 | Current supply voltage, without averaging | mV | |
| 119 | 0x0077 | Input | RO | u16 | Minimum microcontroller supply voltage since boot, before averaging | mV | |
| 123 | 0x007B | Input | RO | u16 | Microcontroller supply voltage | mV | |
| 124 | 0x007C | Input | RO | s16 | Internal microcontroller temperature | x0.1, °C | |
| 304-319 | 0x0130-0x013F | Input | RO | string | Device batch number.
Available only on devices manufactured from 21 January 2026. |
From firmware 1.23.0 | |
| 64256-64383 | 0xFB00-0xFB7F | Input | RO | u16 | FlashFS: free space per page | bytes | From firmware 1.23.0 |
| 64384-64511 | 0xFB80-0xFBFF | Input | RO | u16 | FlashFS: total size of current files per page | bytes | |
| 64512-64639 | 0xFC00-0xFC7F | Input | RO | u16 | FlashFS: page fragmentation | 0…100 % 0 — all data is current, 100 — no current data | |
| 64640-64767 | 0xFC80-0xFCFF | Input | RO | u16 | FlashFS: page erase counter | ||
| 65402 | 0xFF7A | Holding | RW | u16 | Reset device settings to defaults. Communication settings are retained. The device reboots after the reset. |
Writing 1 resets the settings | From firmware 1.22.0 |
| 65500 | 0xFFDC | Coil | RW | bool | Service register for visually testing indicator LEDs | Writing 1 switches on all indicator LEDs | Since firmware 1.26.0 |
| 65504 | 0xFFE0 | Input | RO | u16 | Maximum stack usage | bytes 0 — stack corrupted |
From firmware 1.23.0 |
| 65505 | 0xFFE1 | Input | RO | u16 | Free RAM | bytes | |
| 65506 | 0xFFE2 | Input | RO | u16 | Used RAM | bytes | |
| 65507 | 0xFFE3 | Input | RO | u16 | Stack size | bytes | |
| 65508 | 0xFFE4 | Input | RO | u16 | Cause of last MCU reset | 1 — LPWR, 2 — WWDG, 3 — IWDG, 4 — SFT, 5 — POR, 6 — PIN, 7 — OBL, 8 — V18PWR |
From firmware 1.23.0 |
| 65509 | 0xFFE5 | Input | RO | u32 | Firmware update counter | From firmware 1.23.0 | |