MQTT Reference
Base Topic
/devices/{client-name}/
Where {client-name} is the Client name field from MQTT settings (Network → MQTT), lowercased. For example, with device name Scalior-SLC-BAA5 the base topic is /devices/scalior-slc-baa5/.
The controller uses the Wirenboard convention: the base control topic is a read-only state, the /on suffix is the command topic.
/devices/{client-name}/controls/<Control><X> → state, published by the controller
/devices/{client-name}/controls/<Control><X>/on → command, the controller is subscribed to it
<X> is the flight: M (Master) or 1–4.
Which topics get published
Determined by the Expose topics setting (Network → MQTT): checked flights (and/or "M") get their topics, the rest don't.
<Control> | Direction | Values | Has a Master (M) topic |
|---|---|---|---|
Switch | pub / sub | 0 / 1 | yes |
Standby | pub / sub | 0 / 1 | yes |
Sensors | pub / sub | 0 / 1 | yes |
Brightness | pub / sub | 0–100 | yes |
UpperSens | pub / sub | 0 / 1 | only with a single flight |
BottomSens | pub / sub | 0 / 1 | only with a single flight |
With more than one flight, there is no separate
UpperSensM/BottomSensMtopic. The "M" checkbox in Expose topics then means "publish sensors for every flight" rather than a shared topic — sensor state always comes from a specific flight (UpperSens1,UpperSens2, ...).
In addition to the per-flight topics, the following are always published regardless of the Expose topics setting:
| Topic | Values | Description |
|---|---|---|
controls/Version | string | Current firmware version (from the OTA manifest) |
controls/Uptime | number, seconds | Uptime, updated every 60 seconds |
controls/Illuminance | 0–255 | Light sensor reading (if enabled) |
controls/LightSensorState | 0 / 1 / 2 | 0=disabled, 1=bright, 2=dark |
Command Examples
Turn on flight 1
Topic: /devices/scalior-slc-baa5/controls/Switch1/on
Payload: 1
Set Master brightness to 75%
(available only on single-flight setups, where everything uses M)
Topic: /devices/scalior-slc-baa5/controls/BrightnessM/on
Payload: 75
Enable standby mode for flight 2
Topic: /devices/scalior-slc-baa5/controls/Standby2/on
Payload: 1
Disable motion sensors for flight 1
Topic: /devices/scalior-slc-baa5/controls/Sensors1/on
Payload: 0
Commands must be published to the
/ontopic — the base topic (without/on) is read-only, the controller does not process writes to it.
Metadata (Wirenboard convention, retained)
/devices/{client-name}/meta → device description
/devices/{client-name}/meta/name → "Scalior SLC"
/devices/{client-name}/meta/driver → "scalior"
/devices/{client-name}/controls/<Control><X>/meta → description of a specific control
These topics are used, among others, by hubs like ioBroker — see Smart Home Integrations.
Home Assistant MQTT Discovery
With the Home Assistant Discovery toggle enabled, the controller publishes entity configuration to homeassistant/<type>/<uid>/config on every broker connection — nothing needs to be added to configuration.yaml manually. Step-by-step guide: Smart Home Integrations.
Quality of Service (QoS) and retain
| QoS | Retain | |
|---|---|---|
| All topics except Uptime | 1 | yes |
controls/Uptime | 0 | yes |
Subscriptions to command (/on) topics also use QoS 1.