Electools EDM-TH100 Modbus register map
RS485 temperature and humidity monitor, Modbus RTU
- Official
- 13 registers
- Modbus RTU
- Revision 2 · 2026-11-04
- 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 RTU
- Unit ID
- 1
- Serial
- 9600 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit
- Byte / word order
- ABCD · bytes big-endian, words high first default
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 5 holding registers, 8 input registers
- Groups
- 3
- Translation tables
- 2
- Revision
- 2 · 2026-11-04
- Added
- ()
- File
- maps/electools/edm-th100.mbmap.json · 5 KB · history
- SHA-256
- 77d60c399260f6cd8d97b14837ef56de3e7c24540fc8b874ac44290c8f25fe66
- Manufacturer
- electools.com.br
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 | input 204 | uint16 |
Sources and notes
Source: EDM-TH100 wiki, 3.1 Especificações Técnicas and 3.2 Mapa Registradores Modbus (https://wiki.electools.com.br/books/edm-th100)
- Function codes 0x03, 0x04, 0x06 and 0x10. Measurements and device information are input registers (FC04); the settings are holding registers (FC03 read, FC06 or FC10 write).
- The addresses are the ones the wiki prints (001, 002, 200 to 205, 257 to 261). The wiki does not say whether they are sent as they are or minus one: test with the temperature at address 1.
- Serial settings are the factory defaults of the wiki's table: baud rate 0 (9600) and serial configuration 2 (8E1), so even parity with 1 stop bit.
- The wiki lists the corrections (260, 261) as unsigned 16-bit with a range of -100 to 100, while its specifications give -10 to +10. They are read here as signed 16-bit, in the unit of the specifications; the encoding (whole units or tenths) is not stated, so check before writing them.
- The wiki puts the humidity correction at 260 and the temperature correction at 261.
- The uptime (205) is a 32-bit value; its word order is not stated, the default (big) is used.
- The encoding of the product code, the hardware version and the firmware version is not stated, so none of them has an identity role.
- Written from the manufacturer's wiki; not tested on a device.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| IR | 1 | uint16 | R | °C | ×0.1 | Unsigned 16-bit value in tenths of a degree (range 0 to 60 °C) | |
| IR | 2 | uint16 | R | %RH | ×0.1 | Unsigned 16-bit value in tenths of a percent | |
| IR | 200 | uint16 | R | % | Communication quality index | ||
| IR | 201 | uint16 | R | ||||
| IR | 202 | uint16 | R | ||||
| IR | 203 | uint16 | R | ||||
| IR | 204 | uint16 | R | ||||
| IR | 205 | uint32 ABCD | R | s | Time since the device was powered on | ||
| HR | 257 | uint16 | RW | Modbus slave address, default 1 | |||
| HR | 258 | uint16 | RW | Default 0 (9600) | |||
| HR | 259 | uint16 | RW | Default 2 (8E1) | |||
| HR | 260 | int16 | RW | %RH | Range -10 to +10 %RH in the specifications; the wiki's table says -100 to 100, see the notes | ||
| HR | 261 | int16 | RW | °C | Range -10 to +10 °C in the specifications; the wiki's table says -100 to 100, see the notes |
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).