Unipi Technology UniPi 1.1 Modbus register map
Unipi 1.1 controller: 12 digital inputs, 8 relay outputs, 1 analog output, 2 analog inputs
- Official
- 58 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 8E1 · 9600 baud, 8 data bits, even parity, 1 stop bit defaults
- Byte / word order
- ABCD · bytes big-endian, words high first
- Addresses
- 0-based
Connection values are defaults: the device may be configured differently.
Map
- Registers
- 50 holding registers, 8 coils
- Groups
- 6
- Revision
- 3 · 2026-11-10
- Added
- ()
- File
- maps/unipi/unipi-1-1.mbmap.json · 10 KB · history
- SHA-256
- 86ad40e12c10c42dcc003469690b9022254cdd0fe9cb531d1f6863a34e0fb95b
- Manufacturer
- www.unipi.technology
Sources and notes
- Unipi 1.1 Modbus map (unipi-11-modbus-map.xlsx) Sheets Registers, Coils and Description; listed on https://kb.unipi.technology/en:hw:04-extensions:downloads
Source: unipi-11-modbus-map.xlsx, Unipi knowledge base page https://kb.unipi.technology/en:hw:04-extensions:downloads
- Configuration is not permanently saved: the Description sheet states it is set on each power-on. Defaults: counters 0, debounce 0 ms, outputs OFF.
- Multi-register values (counters, floats) are taken as big-endian (most significant register first), as in the other Unipi maps; the spreadsheet only says bit 0 is the LSB and bit 15 the MSB.
- The spreadsheet does not state the transport or default unit id, so the format defaults (tcp+rtu, unit 1) are kept.
- Coils repeat the relay outputs that also appear as bits of holding register 1.
- Analog Output 1 is documented as 'int16, 0..4000 ~ 0..10V': mapped as int16 with 0.0025 V per count and a 0-10 V write range. The unit of the analog input floats is not stated in the spreadsheet, so none is set.
- The counter of Digital Input 12 is a uint16 (one register) in the spreadsheet; the other counters are uint32.
| Area | Address | Name | Type | Access | Unit | Scale | Description |
|---|---|---|---|---|---|---|---|
| HR | 0 | bool bit 0 | R | ||||
| HR | 0 | bool bit 1 | R | ||||
| HR | 0 | bool bit 2 | R | ||||
| HR | 0 | bool bit 3 | R | ||||
| HR | 0 | bool bit 4 | R | ||||
| HR | 0 | bool bit 5 | R | ||||
| HR | 0 | bool bit 6 | R | ||||
| HR | 0 | bool bit 7 | R | ||||
| HR | 0 | bool bit 8 | R | ||||
| HR | 0 | bool bit 9 | R | ||||
| HR | 0 | bool bit 10 | R | ||||
| HR | 0 | bool bit 11 | R | ||||
| HR | 1 | bool bit 0 | RW | ||||
| HR | 1 | bool bit 1 | RW | ||||
| HR | 1 | bool bit 2 | RW | ||||
| HR | 1 | bool bit 3 | RW | ||||
| HR | 1 | bool bit 4 | RW | ||||
| HR | 1 | bool bit 5 | RW | ||||
| HR | 1 | bool bit 6 | RW | ||||
| HR | 1 | bool bit 7 | RW | ||||
| HR | 2 | int16 | RW | V | ×0.0025 | Raw 0..4000 corresponds to 0..10 V | |
| HR | 3 | float32 ABCD | R | ||||
| HR | 5 | float32 ABCD | R | ||||
| HR | 7 | uint32 ABCD | RW | ||||
| HR | 9 | uint32 ABCD | RW | ||||
| HR | 11 | uint32 ABCD | RW | ||||
| HR | 13 | uint32 ABCD | RW | ||||
| HR | 15 | uint32 ABCD | RW | ||||
| HR | 17 | uint32 ABCD | RW | ||||
| HR | 19 | uint32 ABCD | RW | ||||
| HR | 21 | uint32 ABCD | RW | ||||
| HR | 23 | uint32 ABCD | RW | ||||
| HR | 25 | uint32 ABCD | RW | ||||
| HR | 27 | uint32 ABCD | RW | ||||
| HR | 29 | uint16 | RW | ||||
| HR | 1010 | uint16 | RW | µs | ×100 | ||
| HR | 1011 | uint16 | RW | µs | ×100 | ||
| HR | 1012 | uint16 | RW | µs | ×100 | ||
| HR | 1013 | uint16 | RW | µs | ×100 | ||
| HR | 1014 | uint16 | RW | µs | ×100 | ||
| HR | 1015 | uint16 | RW | µs | ×100 | ||
| HR | 1016 | uint16 | RW | µs | ×100 | ||
| HR | 1017 | uint16 | RW | µs | ×100 | ||
| HR | 1018 | uint16 | RW | µs | ×100 | ||
| HR | 1019 | uint16 | RW | µs | ×100 | ||
| HR | 1020 | uint16 | RW | µs | ×100 | ||
| HR | 1021 | uint16 | RW | µs | ×100 | ||
| HR | 1022 | uint16 | RW | ||||
| HR | 1023 | uint16 | RW | Resolution in bits; default 18 | |||
| HR | 1024 | uint16 | RW | Resolution in bits; default 18 | |||
| CO | 0 | bool | RW | ||||
| CO | 1 | bool | RW | ||||
| CO | 2 | bool | RW | ||||
| CO | 3 | bool | RW | ||||
| CO | 4 | bool | RW | ||||
| CO | 5 | bool | RW | ||||
| CO | 6 | bool | RW | ||||
| CO | 7 | bool | RW |
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).