Appearance
Button / control panel (function 0)
A physical control panel: up to eight buttons and eight indicator LEDs. It publishes which buttons are pressed and what colour each LED is showing. Its command topic is unusual — it does not send a command to the panel, it emits a button frame as if the panel had been pressed, which is how a touchscreen stands in for a physical switch.
- LED state enum (
ledN):off,green-blink,green,red-blink,red.
Published
device/0/<i>/life
metadata adds counter; expireAfterSec: 30. Button pressed states.
data field | Type | Description |
|---|---|---|
bp0..bp7 | bool | Button 0-7 pressed |
json
{
"data": {
"bp0": false,
"bp1": true,
"bp2": false,
"bp3": false,
"bp4": false,
"bp5": false,
"bp6": false,
"bp7": false
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30,
"counter": 1
}
}device/0/<i>/state
expireAfterSec: 30. LED states.
data field | Type | Description |
|---|---|---|
led0..led7 | string | LED 0-7 state (enum) |
led0Code..led7Code | int | Raw LED state 0-4 |
json
{
"data": {
"led0": "green",
"led0Code": 2,
"led1": "off",
"led1Code": 0,
"led2": "red-blink",
"led2Code": 3,
"led3": "off",
"led3Code": 0,
"led4": "off",
"led4Code": 0,
"led5": "off",
"led5Code": 0,
"led6": "off",
"led6Code": 0,
"led7": "off",
"led7Code": 0
},
"metadata": {
"rxdate": "2026-06-17T14:30:45.123Z",
"rxTimestamp": 1781793045,
"expireAfterSec": 30
}
}bash
mosquitto_sub -h 127.0.0.1 -t 'device/0/+/#' -vCommand — device/0/<i>/command
Regex ^device/0/([[:digit:]]+)/command$. Simulates a button press by emitting a button life frame. If release is true (default), a second all-released frame is sent ~200 ms later.
| Field | Type | Description |
|---|---|---|
in0..in7 | bool | Press button 0-7 (default false) |
release | bool | Auto-release after press (default true) |
bash
mosquitto_pub -h 127.0.0.1 -t 'device/0/0/command' -m '{"in0":true}'
mosquitto_pub -h 127.0.0.1 -t 'device/0/0/command' -m '{"in3":true,"release":false}'