MQTT API¶
Developer documentation
This section is intended for developers only.
Overview¶
The MQTT API is compatible with the Home Assistant MQTT auto-discovery protocol.
In addition, extra MQTT topics are available for monitoring, service, and direct control.
For integrations with other MQTT clients, we strongly recommend following the
Home Assistant MQTT protocol conventions.
Topics¶
homeassistant/*¶
Home Assistant MQTT auto-discovery protocol.
- Documentation: https://www.home-assistant.io/integrations/mqtt/
- Enable auto-discovery using the advanced module option
MHAE=1(see LumaConfig manual) - More Home Assistant API information below Click here
lumaconnect/*¶
MQTT protocol used for connecting to LumaConnect.
lumacontrol/status¶
Comma-separated module status information.
All modules publish to this topic once per minute.
Example payload¶
ADDR=9,STAT=Normal,MOD=AutoMATE A1,SN=0.00.00.000,SW=0.9.3 (automate),
MAC=1c:9d:c2:f7:58:84,IP=192.168.178.38,UID=8612ffbb,
LL_ERR=0,TEMP=26°C,DT=Mon Dec 22 14:15:58 2025,UP=99d1238m,RAM=50196
Fields¶
| Field | Description |
|---|---|
ADDR |
LumaLink bus address |
MOD |
Module hardware |
SN |
Serial number |
SW |
Software version |
MAC |
Ethernet MAC address |
IP |
IPv4 address |
LL_ERR |
LumaLink bus error counter |
TEMP |
Module temperature (°C) |
DT |
Date and time |
UP |
Uptime (days and minutes) |
RAM |
Free memory |
lumacontrol/cmd¶
Send commands directly to one module or to all modules (broadcast).
General command format¶
command,module-address,channel,arg1,arg2
- Use
module-address = 0andchannel = 0for broadcast commands
action — Output control¶
Toggle channel 1 on module 4:
action,4,1,3
Action arguments (arg1)
| arg1 | Action |
|---|---|
1 |
Turn on (arg2 = optional value 0..100) |
2 |
Turn off |
3 |
Toggle (arg2 = optional value 0..100) |
4 |
Turn on with auto-off delay (seconds) |
6 |
Set value (0..100) |
scene — Scene control¶
Activate the “all off” scene:
scene,0,0,255
group_on / group_off — Group control¶
Activate group living:
group_on,0,0,living
Deactivate group living:
group_off,0,0,living
reboot — Restart modules¶
Restart all modules:
reboot,0,0,543210
543210= service keymodule-address = 0→ broadcast reboot
Restart single module:
reboot,5,0,543210
543210= service keymodule-address = 5→ restart module with LumaLink address 05
Home Assistant MQTT auto-discovery protocol¶
Mapping of channel function to HomeAssistant entity type
| Channel Function | HA entity type |
|---|---|
In-Bin-Generic |
binary sensor |
In-Bin-Switch |
N/A (*1) |
In-Pulse-Count |
sensor |
In-Utility-Elec-Energy |
sensor |
In-0-10V |
sensor |
Out-Bin-Generic |
switch |
Out-Bin-Light |
light |
Out-0-10V |
N/A |
Out-Dimmer |
light |
Out-Dimmer 0-10V |
light |
Out-Dimmer CT |
light |
Out-Dimmer RGB |
light |
Out-Dimmer RGBW |
light |
Out-Blinds |
cover |
Out-Blinds H-bridge |
cover |
Out-Bin-Virtual |
switch |
Out-Bin-Logic AND |
switch |
Out-Bin-Logic OR |
switch |
Out-Bin-Logic XOR |
switch |
(*1) A virtual output can be used to tie a pushbutton event to a virtual output action (so it can be used in Home Assistant).
light entity¶
- Module MAC = ac1518983ee4
- Channel = CH27
- Module LumaLink address = 11
Config topic¶
homeassistant/light/ac1518983ee4/ch-27/config
Config payload¶
{
"~": "homeassistant/light/ac1518983ee4/ch-27",
"name": "RGB ledstrip",
"uniq_id": "ac1518983ee4-ch-27",
"cmd_t": "~/set",
"stat_t": "~/state",
"schema": "json",
"brightness": true,
"color_mode": true,
"sup_clrm": [
"hs"
],
"device": {
"ids": [
"ac1518983ee4"
],
"name": "Luma-11",
"mf": "LumaControls",
"mdl": "LUMA ONE (FW v0.1.5)",
"cu": "http://192.168.178.23/"
}
}
color_mode and sup_clrm may be absent for unicolor lights. brightness may be absent for non-dimmable lights.
State get topic¶
homeassistant/light/ac1518983ee4/ch-27/state
State get payload¶
{
"state": "OFF",
"brightness": 255,
"color": {
"h": 216,
"s": 40
}
}
Possible states:
ON or OFF color may be absent for unicolor lights. h hsv hue value between 0 and 360. s hsv saturation value between 0 and 100.brightness value between 0 and 255, may be absent for non-dimmable lights.
State set topic¶
homeassistant/light/ac1518983ee4/ch-27/set
State set payload¶
{
"state": "ON",
"color": {
"h": 9.123,
"s": 67.059
}
}
Possible states:
ON or OFF color may be absent for unicolor lights. h hsv hue value between 0 and 360. s hsv saturation value between 0 and 100.
binary_sensor entity¶
- Module MAC = ac1518983ee4
- Channel = CH6
- Module LumaLink address = 11
Config topic¶
homeassistant/binary_sensor/ac1518983ee4/ch-6/config
Config payload¶
{
"~": "homeassistant/binary_sensor/ac1518983ee4/ch-6",
"name": "Twilight",
"uniq_id": "ac1518983ee4-ch-6",
"stat_t": "~/state",
"schema": "json",
"device": {
"ids": [
"ac1518983ee4"
],
"name": "Luma-11",
"mf": "LumaControls",
"mdl": "LUMA ONE (FW v0.1.5)",
"cu": "http://192.168.178.23/"
}
}
State get topic¶
homeassistant/binary_sensor/ac1518983ee4/ch-6/state
State get payload¶
OFF
Possible states:
ON or OFF
cover entity¶
- Module MAC = ac1518983ee4
- Channel = CH1
- Module LumaLink address = 11
Config topic¶
homeassistant/cover/ac1518983ee4/ch-1/config
Config payload¶
{
"~": "homeassistant/cover/ac1518983ee4/ch-1",
"name": "Living cover",
"uniq_id": "ac1518983ee4-ch-1",
"cmd_t": "~/set",
"pos_t": "~/state",
"set_pos_t": "~/setpos",
"schema": "json",
"device": {
"ids": [
"ac1518983ee4"
],
"name": "Luma-11",
"mf": "LumaControls",
"mdl": "LUMA ONE (FW v0.1.5)",
"cu": "http://192.168.178.23/"
}
}
State get topic¶
homeassistant/cover/ac1518983ee4/ch-1/state
State get payload¶
50
State set topic¶
homeassistant/cover/ac1518983ee4/ch-1/setpos
State set payload¶
50
State set action topic¶
homeassistant/cover/ac1518983ee4/ch-1/set
State set action payload¶
OPEN
OPEN, CLOSE or STOP.
sensor entity¶
- Module MAC = ac1518983ee4
- Channel = CH114 (sensor on pushbutton interface)
- Module LumaLink address = 11
Config topic¶
homeassistant/sensor/ac1518983ee4/ch-114/config
Config payload¶
{
"~": "homeassistant/sensor/ac1518983ee4/ch-114",
"name": "CH114-LMS Temp-2.7",
"uniq_id": "ac1518983ee4-ch-114",
"stat_t": "~/state",
"unit_of_meas": "°C",
"schema": "json",
"device": {
"ids": [
"ac1518983ee4"
],
"name": "Luma-11",
"mf": "LumaControls",
"mdl": "LUMA ONE (FW v0.1.5)",
"cu": "http://192.168.178.23/"
}
}
unit_of_meas can be °C (temperature sensors) or % (0-10V inputs). may be absent may be absent for other sensor types, state value = raw int32 LumaLink value.
State get topic¶
homeassistant/sensor/ac1518983ee4/ch-114/state
State get payload¶
21.7
unit_of_meas set in config.
switch entity¶
- Module MAC = ac1518983ee4
- Channel = CH1
- Module LumaLink address = 11
Config topic¶
homeassistant/switch/ac1518983ee4/ch-1/config
Config payload¶
{
"~": "homeassistant/switch/ac1518983ee4/ch-1",
"name": "Socket relay",
"uniq_id": "ac1518983ee4-ch-1",
"cmd_t": "~/set",
"stat_t": "~/state",
"schema": "json",
"device": {
"ids": [
"ac1518983ee4"
],
"name": "Luma-11",
"mf": "LumaControls",
"mdl": "LUMA ONE (FW v0.1.5)",
"cu": "http://192.168.178.23/"
}
}
State get topic¶
homeassistant/switch/ac1518983ee4/ch-1/state
State get payload¶
OFF
Possible states:
ON or OFF
State set topic¶
homeassistant/switch/ac1518983ee4/ch-1/set
State set payload¶
ON
Possible states:
ON or OFF