Electron do Brasil MoniTemp Modbus register map
Three-channel temperature monitor with alarm, shutdown and fan relays, analog output and Modbus RTU
- Official
- 53 registers
- Modbus RTU
- 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 RTU
- Unit ID
- 1
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- 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
- 53 holding registers
- Groups
- 6
- Translation tables
- 6
- Revision
- 1 · 2026-11-10
- Added
- ()
- File
- maps/electron/monitemp.mbmap.json · 13 KB · history
- SHA-256
- 5684cbbed26006edd309abb30126c666790a586a0222419f0dd3d3d6a16f18b7
- Manufacturer
- electron.com.br
Sources and notes
- Mapa de Registradores MODBUS RTU, MoniTemp · version 1.2 linked in issue #136
Source: Electron do Brasil, Mapa de Registradores MODBUS RTU, MoniTemp, v1.2
- All registers are holding registers. The document numbers them 1 to 38 and calls the type Holding Register (40.000), so the addresses are 1-based (address on the wire = number minus 1). The document does not say so explicitly: if a read fails, try address_base 0.
- The document allows 1200 to 57600 bps with automatic baud rate detection, 8 data bits, 1 stop bit and no, even or odd parity. It gives no default baud rate or slave address: 9600 N and 1 are placeholders; the slave address is in register 23.
- Temperatures are shown in the document with one decimal (for example -50.0 to 250.0) and a scale of -1000:10, which it does not explain. They are given as raw values: check against the display before applying a scale.
- Registers 17, 19, 32, 33, 34, 35 and 37 are bit fields, one entry per bit. The command bits are write-only. Registers 27, 28 and 36 are not in the document.
- Written from the manufacturer's document; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 1 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 2 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 3 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 4 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 5 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 6 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 7 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 8 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 9 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 10 | uint16 | RW | Range 0 to 100; the document gives no scale | |||
| HR | 11 | uint16 | RW | Range 0 to 300; the document gives no scale | |||
| HR | 12 | uint16 | RW | min | Range 0 to 20; the scale column says 1:10, which does not fit minutes, so the value is raw | ||
| HR | 13 | uint16 | RW | The document labels every value "when 0"; the value is the index of the range | |||
| HR | 14 | uint16 | RW | ||||
| HR | 15 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 16 | int16 | RW | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 17 | bool bit 0 | W | The document lists value 0 for both automatic and manual (ON); 1 is taken to be ON | |||
| HR | 17 | bool bit 1 | W | Write 1 | |||
| HR | 17 | bool bit 2 | W | Write 1 | |||
| HR | 18 | uint16 | RW | ||||
| HR | 19 | bool bit 0 | RW | ||||
| HR | 19 | bool bit 1 | RW | ||||
| HR | 19 | bool bit 2 | RW | ||||
| HR | 20 | uint16 | RW | The range is 0 to 2 in the document, but only 0 and 1 are described | |||
| HR | 21 | uint16 | RW | ||||
| HR | 22 | uint16 | RW | The range is 0 to 2 in the document, but only 0 and 1 are described | |||
| HR | 23 | uint16 | R | Range 1 to 254 | |||
| HR | 24 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 25 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 26 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 29 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 30 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 31 | int16 | R | Range -50.0 to 250.0; the document's scale column (-1000:10) is not explained, so the value is raw (check against the display) | |||
| HR | 32 | bool bit 0 | R | ||||
| HR | 32 | bool bit 1 | R | ||||
| HR | 32 | bool bit 2 | R | ||||
| HR | 32 | bool bit 3 | R | ||||
| HR | 33 | bool bit 0 | R | ||||
| HR | 33 | bool bit 1 | R | ||||
| HR | 33 | bool bit 2 | R | ||||
| HR | 34 | bool bit 0 | R | ||||
| HR | 34 | bool bit 1 | R | ||||
| HR | 34 | bool bit 2 | R | ||||
| HR | 34 | bool bit 3 | R | ||||
| HR | 35 | bool bit 0 | R | ||||
| HR | 35 | bool bit 1 | R | ||||
| HR | 35 | bool bit 2 | R | ||||
| HR | 35 | bool bit 3 | R | ||||
| HR | 37 | bool bit 0 | R | ||||
| HR | 37 | bool bit 1 | R | ||||
| HR | 37 | bool bit 2 | R | ||||
| HR | 37 | bool bit 3 | R | ||||
| HR | 38 | uint16 | R | Range 0 to 9999 |
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).