Reference · English
WB-M1W2 v.3 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 | ||||
| Input operating modes | ||||||||
| 275 | 0x0113 | Holding | RW | u16 | Input 1 | Input mode | 0 — 1-wire, 1 — digital input: counting and press detection |
≥ 4.0.0 |
| 276 | 0x0114 | Input 2 | ||||||
| 1-Wire sensors | ||||||||
| 24 | 0x0018 | Coil | RW | bool | Input 1 | Save newly detected sensors | 1 — save new sensors | ≥ 4.35.0 |
| 25 | 0x0019 | Input 2 | ||||||
| 32 | 0x0020 | Coil | RW | bool | Save newly detected sensors on all inputs | 1 — save new sensors | ≥ 4.35.0 | |
| 16 | 0x0010 | Discrete input | RO | bool | Input 1 | Sensor polling status on the input. The sensor is polled without assignment by ID; this register is valid only with one sensor on the input |
0 — sensor missing or polling errors, 1 — sensor connected and polled successfully |
≥ 4.6.0 |
| 17 | 0x0011 | Input 2 | ||||||
| 128 - 147 | 0x0080 - 0x0093 | Discrete input | RO | bool | Input 1 | Polling status of sensor 1–20. The sensor whose ID is stored in the corresponding assignment slot is polled (see Sensor ID 1–20 registers) |
0 — empty slot, sensor not found on bus, or polling errors, 1 — sensor connected and polled successfully |
≥ 4.35.0 |
| 168 - 187 | 0x00A8 - 0x00BB | Input 2 | ||||||
| 7 | 0x0007 | Input | RO | s16 | Input 1 | DS18B20 sensor temperature. Valid only with one sensor on the input. Includes the correction assigned to the first slot |
x0.0625, °C Error: 0x7FFF |
|
| 8 | 0x0008 | Input 2 | ||||||
| 20 | 0x0014 | Input | RO | s16 | Input 1 | Last valid DS18B20 temperature reading. Valid only with one sensor on the input. Includes the correction assigned to the first slot |
x0.0625, °C | ≥ 4.6.0 |
| 21 | 0x0015 | Input 2 | ||||||
| 99 | 0x0063 | Holding | RW | u16 | DS18B20 erroneous-value filter. A reading of 85 °C is rejected if it differs from the previous reading by more than the filter threshold. |
x0.0625, °C 0 — filter disabled, 1…19200 (32) |
≥ 3.10.0 | |
| 101 | 0x0065 | Holding | RW | u16 | Temperature sensor polling interval. When changing this parameter, also change the coefficient in register 99. | s, 1 - 60 (2) |
≥ 4.33.1 | |
| 376 | 0x0178 | Input | RO | u8 | Input 1 | 1-Wire sensor present | 0 or 1 | ≥ 4.24.0 |
| 377 | 0x0179 | Input 2 | ||||||
| 448 | 0x01C0 | Input | RO | u8 | Input 1 | DS18B20 power status. May work incorrectly with some clone sensors |
1 — all sensors externally powered, 0 — at least one sensor uses parasitic power |
≥ 4.32.0 |
| 449 | 0x01C1 | Input 2 | ||||||
| 456 | 0x01C8 | Input | RO | u16 | Input 1 | Line-busy error counter | ≥ 4.32.3 | |
| 457 | 0x01C9 | Input 2 | ||||||
| 1536 - 1555 | 0x0600 - 0x0613 | Input | RO | s16 | Input 1 | Sensor 1–20 temperature including correction | x0.0625, °C Error: 0x7FFF |
≥ 4.35.0 |
| 1576 - 1595 | 0x0628 - 0x063B | Input 2 | ||||||
| 1616 - 1635 | 0x0650 - 0x0663 | Holding | RW | s16 | Input 1 | Sensor 1–20 temperature correction. Added to the sensor reading. Assigned to the slot, not the sensor ID: replacing the sensor in a slot retains the correction |
x0.0625, °C −160 to 160 (0), equivalent to ±10 °C |
≥ 4.36.0 |
| 1656 - 1675 | 0x0678 - 0x068B | Input 2 | ||||||
| 1696 - 1715 | 0x06A0 - 0x06B3 | Input | RO | s16 | Input 1 | Sensor 1–20 temperature without correction | x0.0625, °C Error: 0x7FFF |
≥ 4.36.0 |
| 1736 - 1755 | 0x06C8 - 0x06DB | Input 2 | ||||||
| 3328 | 0x0D00 | Input | RO | u8 | Input 1 | Number of newly detected sensors | ≥ 4.35.0 | |
| 3329 | 0x0D01 | Input 2 | ||||||
| 3336 | 0x0D08 | Input | RO | u8 | Input 1 | Number of newly saved sensors | ≥ 4.35.0 | |
| 3337 | 0x0D09 | Input 2 | ||||||
| 3344 | 0x0D10 | Input | RO | u8 | Input 1 | Number of detected sensors | ≥ 4.35.0 | |
| 3345 | 0x0D11 | Input 2 | ||||||
| 3584 - 3603 | 0x0E00 - 0x0E13 | Input | RO | s16 | Input 1 | Last valid temperature of sensor 1–20 including correction | x0.0625, °C | ≥ 4.35.0 |
| 3624 - 3643 | 0x0E28 - 0x0E3B | Input 2 | ||||||
| 3680 - 3759 | 0x0E60 - 0x0EAF | Input | RO | u64 | Input 1 | ID of newly detected sensor 1–20 (4 registers per sensor) | byte 0 — family code, bytes 1–6 — serial number, byte 7 — reserved (0) 0 — sensor absent |
≥ 4.35.0 |
| 3840 - 3919 | 0x0F00 - 0x0F4F | Input 2 | ||||||
| 4352 - 4431 | 0x1100 - 0x114F | Input | RO | u64 | Input 1 | ID of detected sensor 1–20 (4 registers per sensor) | byte 0 — family code, bytes 1–6 — serial number, byte 7 — reserved (0) 0 — sensor absent |
≥ 4.35.0 |
| 4512 - 4591 | 0x11A0 - 0x11EF | Input 2 | ||||||
| 5632 - 5711 | 0x1600 - 0x164F | Holding | RW | u64 | Input 1 | Sensor ID 1–20 — input assignment slot (4 registers per sensor) | byte 0 — family code, bytes 1–6 — serial number, byte 7 — reserved (0) 0 — sensor unused |
≥ 4.35.0 |
| 5792 - 5871 | 0x16A0 - 0x16EF | Input 2 | ||||||
| Counting and press detection | ||||||||
| 0 | 0x0000 | Discrete input ⚡ | RO | bool | Input 1 | Input state | 0 — open or 1-Wire mode selected, 1 — closed |
≥ 4.0.0 |
| 1 | 0x0001 | Input 2 | ||||||
| 100 | 0x0064 | Holding | RW | u16 | Reset input activation counters | 1 — reset counters | ≥ 4.33.0 | |
| 277 | 0x0115 | Input ⚡ | RO | u16 | Input 1 | Input activation counter | ≥ 4.0.0 | |
| 278 | 0x0116 | Input 2 | ||||||
| 340 | 0x0154 | Holding | RW | u16 | Input 1 | Input debounce time | ms, 0…100 (50) |
≥ 4.32.0 |
| 341 | 0x0155 | Input 2 | ||||||
| 464 | 0x01D0 | Input ⚡ | RO | u16 | Input 1 | Short-press counter | ||
| 465 | 0x01D1 | Input 2 | ||||||
| 480 | 0x01E0 | Input ⚡ | RO | u16 | Input 1 | Long-press counter | ||
| 481 | 0x01E1 | Input 2 | ||||||
| 496 | 0x01F0 | Input ⚡ | RO | u16 | Input 1 | Double-press counter | ||
| 497 | 0x01F1 | Input 2 | ||||||
| 512 | 0x0200 | Input ⚡ | RO | u16 | Input 1 | Short-then-long-press counter | ||
| 513 | 0x0201 | Input 2 | ||||||
| 1100 | 0x044C | Holding | RW | u16 | Input 1 | Long press time | ms, 500…5000 (1000) | |
| 1101 | 0x044D | Input 2 | ||||||
| 1140 | 0x0474 | Holding | RW | u16 | Input 1 | Second press waiting time | ms, 0…2000 (300) | |
| 1141 | 0x0475 | Input 2 | ||||||
| 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) | ||
| 200-219 | 0x00C8 - 0x00DB | Input | RO | string | Device model | ||
| 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 | |
| 321 | 0x0141 | MINOR | |||||
| 322 | 0x0142 | PATCH | |||||
| 323 | 0x0143 | s16 | SUFFIX | ||||
| 324-325 | 0x0144 - 0x0145 | Input | RO | u32 | Firmware version in numeric format | ||
| 326-327 | 0x0146 - 0x0147 | Input | RO | u32 | Firmware version in big-endian format | ||
| 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. |
||
| 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 | |
| 64256-64383 | 0xFB00-0xFB7F | Input | RO | u16 | FlashFS: free space per page | bytes | |
| 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 | ||
| 65504 | 0xFFE0 | Input | RO | u16 | Maximum stack usage | bytes 0 — stack corrupted |
|
| 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 |
|
| 65509 | 0xFFE5 | Input | RO | u32 | Firmware update counter | ||