Modbus API¶
Developer documentation
This section is intended for developers only.
Modbus register map¶
All registers are 16-bit holding registers. Separate registers are used for reading and writing.
Example: - To read the status of a light on CH2, use holding register 1002 - To write/change the status, use holding register 2
Channel mapping¶
| Channel type | Direction | Modbus register | Value |
|---|---|---|---|
| Binary inputs | Read | CH# + 1000 |
0 = off, 1 = on |
| Inputs | Read | CH# + 1000 |
0 = off, 1 = minimum value, 100 = maximum value |
| Binary outputs | Write | CH# |
0 = off, 1 = on |
| Binary outputs | Read | CH# + 1000 |
0 = off, 1 = on |
| Dimmer outputs | Write | CH# |
0 = off, 1 = minimum value, 100 = maximum value |
| Dimmer outputs | Read | CH# + 1000 |
0 = off, 1 = minimum value, 100 = maximum value |
| Blind/shutter outputs | Write position | CH# |
0 = minimum value, 100 = maximum value |
| Blind/shutter outputs | Write action | CH# + 1 |
0 = open blind, 1 = close blind |
| Blind/shutter outputs | Read position | CH# + 1000 |
0 = minimum value, 100 = maximum value |
Notes¶
CH#refers to the numeric channel index (e.g.,CH2→2)- Reading always uses the
+ 1000register offset - Writing uses the base register number (
CH#), except blind/shutter actions which useCH# + 1