Kohler Decision-Maker 3500 Modbus register map
- Official
- 86 registers
- Revision 3 · 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 and RTUdefault
- Unit ID
- 1default
- TCP port
- 502default
- Serial
- 9600 8N1 · 9600 baud, 8 data bits, none parity, 1 stop bit
- Byte / word order
- CDAB · bytes big-endian, words low first (word swap)
- Addresses
- 0-based
- Max read
- 50 registers per request
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 86 holding registers
- Translation tables
- 3
- Revision
- 3 · 2026-11-10
- Added
- ()
- File
- maps/kohler/decision-maker-3500.mbmap.json · 13 KB · history
- SHA-256
- 3d3f15dd0096d204fc0a91550263e80b361cab683a1bc757df089a62a8ec3d8a
- Manufacturer
- rehlko.com
Sources and notes
- Protocol Operation: Modbus Communications Protocol (TP-6113) · version 12/21, 2021-12 section 6; register tables also compared with edition 9/14
Source: Kohler, "Protocol Operation: Modbus Communications Protocol", TP-6113 12/21; https://techcomm.kohler.com/techcomm/pdf/tp6113.pdf
- Decision-Maker 3500 generator set controller.
- Addresses are zero-based: the manual register 40001 is address 0.
- The manual limits a read to 50 registers. Only the monitoring part of the register table is in this map.
- Data is available over Modbus RTU (8N1); Modbus TCP needs a Modbus/Ethernet converter.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | uint16 | R | % | ×0.01 | ||
| HR | 1 | uint16 | R | % | ×0.01 | ||
| HR | 2 | uint16 | R | % | ×0.01 | ||
| HR | 3 | uint16 | R | % | ×0.01 | ||
| HR | 4 | uint16 | R | % | ×0.01 | ||
| HR | 5 | uint16 | R | % | ×0.01 | ||
| HR | 6 | uint16 | R | % | ×0.01 | ||
| HR | 7 | uint16 | R | % | ×0.01 | ||
| HR | 8 | uint16 | R | % | ×0.01 | ||
| HR | 9 | uint16 | R | % | ×0.01 | ||
| HR | 10 | uint16 | R | % | ×0.01 | ||
| HR | 11 | uint16 | R | % | ×0.01 | ||
| HR | 12 | uint16 | R | Hz | ×0.01 | ||
| HR | 13 | int16 | R | % | ×0.01 | ||
| HR | 14 | int16 | R | % | ×0.01 | ||
| HR | 15 | int16 | R | % | ×0.01 | ||
| HR | 16 | int16 | R | % | ×0.01 | ||
| HR | 17 | int16 | R | % | ×0.01 | ||
| HR | 18 | int16 | R | % | ×0.01 | ||
| HR | 19 | int16 | R | % | ×0.01 | ||
| HR | 20 | int16 | R | % | ×0.01 | ||
| HR | 21 | uint16 | R | % | ×0.01 | ||
| HR | 22 | uint16 | R | % | ×0.01 | ||
| HR | 23 | uint16 | R | % | ×0.01 | ||
| HR | 24 | uint16 | R | % | ×0.01 | ||
| HR | 25 | int16 | R | ×0.01 | |||
| HR | 26 | int16 | R | ×0.01 | |||
| HR | 27 | int16 | R | ×0.01 | |||
| HR | 28 | int16 | R | ×0.01 | |||
| HR | 29 | int16 | R | ° | ×0.1 | ||
| HR | 30 | int16 | R | ° | ×0.1 | ||
| HR | 31 | int16 | R | ° | ×0.1 | ||
| HR | 32 | int16 | R | ° | ×0.1 | ||
| HR | 33 | int16 | R | ° | ×0.1 | ||
| HR | 34 | uint16 | R | ||||
| HR | 35 | uint16 | R | ||||
| HR | 36 | uint16 | R | ||||
| HR | 37 | uint16 | R | ||||
| HR | 38 | uint16 | R | ||||
| HR | 43 | uint16 | R | % | ×0.01 | ||
| HR | 44 | uint16 | R | % | ×0.01 | ||
| HR | 45 | uint16 | R | % | ×0.01 | ||
| HR | 46 | uint16 | R | % | ×0.01 | ||
| HR | 47 | int16 | R | % | ×0.01 | ||
| HR | 48 | int16 | R | % | ×0.01 | ||
| HR | 49 | uint16 | R | Hz | ×0.01 | ||
| HR | 50 | uint16 | R | ||||
| HR | 51 | int16 | R | ° | ×0.1 | ||
| HR | 52 | int16 | R | % | ×0.01 | ||
| HR | 53 | int16 | R | % | ×0.01 | ||
| HR | 58 | uint16 | R | kPa | ×0.1 | ||
| HR | 59 | int16 | R | °C | ×0.1 | ||
| HR | 60 | uint16 | R | rpm | |||
| HR | 61 | uint16 | R | V | ×0.1 | ||
| HR | 62 | int16 | R | °C | ×0.1 | ||
| HR | 64 | int16 | R | °C | ×0.1 | ||
| HR | 65 | uint16 | R | L/h | |||
| HR | 66 | uint16 | R | L | |||
| HR | 67 | uint16 | R | kPa | ×0.1 | ||
| HR | 68 | uint16 | R | % | ×0.01 | ||
| HR | 69 | int16 | R | °C | ×0.1 | ||
| HR | 70 | uint16 | R | % | ×0.01 | ||
| HR | 71 | uint16 | R | kPa | ×0.1 | ||
| HR | 72 | int16 | R | °C | ×0.1 | ||
| HR | 73 | uint16 | R | kPa | |||
| HR | 74 | int16 | R | °C | ×0.1 | ||
| HR | 75 | uint16 | R | V | ×0.1 | ||
| HR | 76 | uint16 | R | ||||
| HR | 77 | uint16 | R | ||||
| HR | 82 | uint32 CDAB | R | h | ×0.1 | ||
| HR | 84 | uint32 CDAB | R | h | ×0.1 | ||
| HR | 86 | uint32 CDAB | R | h | ×0.1 | ||
| HR | 88 | uint32 CDAB | R | kWh | |||
| HR | 104 | uint16 | RW | V | |||
| HR | 105 | uint16 | RW | Hz | |||
| HR | 106 | uint16 | RW | ||||
| HR | 107 | uint16 | R | A | |||
| HR | 108 | uint16 | R | kW | ×0.1 | ||
| HR | 109 | uint16 | RW | V | |||
| HR | 110 | uint16 | R | rpm | |||
| HR | 512 | uint16 | R | ||||
| HR | 513 | uint32 CDAB | R | h | ×0.1 | ||
| HR | 515 | uint32 CDAB | R | h | ×0.1 | ||
| HR | 517 | uint32 CDAB | R | kWh | |||
| HR | 519 | uint16 | R | Low byte is the day of month, high byte the month | |||
| HR | 520 | uint16 | R |
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).