Chapter 10c

MQTT Events

MQTT is a third Event channel into the same control pipeline as USB and LAN HTTP. The broker carries the same EventSet JSON your sign already accepts on POST /api/event — not a parallel command language.

Flow: workstation b0rd publishes EventSet JSON to an MQTT broker; the B0rd sign subscribes and applies the same Events as LAN HTTP and USB.
Fig. 5 — MQTT Event path: A workstation publish, B broker topics, C sign subscribe into the same Event pipeline as HTTP/USB.

Topics

Configure a topic prefix on the sign (default b0rd/v1). The device SoftAP id (for example B0rd-A1B2) is the unicast address:

KindTopic
Broadcast{prefix}/event — e.g. b0rd/v1/event
Unicast{prefix}/{device_id}/event — e.g. b0rd/v1/B0rd-A1B2/event

Publishes use QoS 1 and retain off. The payload is bare Event JSON — no MQTT envelope.

Payload

Identical to the HTTP Event Action. Examples:

{"name":"effect.ring.pulse"}
{"name":"notify.show","title":"Hello","message":"World","duration_ms":5000}
{"name":"notify.clear"}

Invalid names and fields are rejected the same way as on USB or HTTP (unknown_event, and the notify field rules). SeeNotifications for overlay behavior.

Sign settings

MQTT is off by default. Turn it on from SoftAP Settings (or the generic settings API) when the sign is on home Wi‑Fi and you have a broker the sign can reach:

SettingDefaultNotes
mqtt.enabledfalseMaster enable
mqtt.host(empty)Broker hostname or IP
mqtt.port1883TCP port
mqtt.tlsfalseWhen true, device opens a verified TLS MQTT session (pinned public roots; brokers usually need port8883). When false, cleartext TCP. MQTT TLS may briefly disconnect during Launch Library / OTA HTTPS.
mqtt.username / mqtt.password(empty)Password is a secret (redacted on read)
mqtt.client_id(empty)Empty → SoftAP id at connect
mqtt.topic_prefixb0rd/v1Prefix for broadcast and unicast topics

Live status (not SoftAP form fields): proc.mqtt.connected andproc.mqtt.last_error.

Host CLI

Publish with the workstation tool. Discovery (list) stays on the HTTP channel:

b0rd --channel mqtt --mqtt-host 192.168.1.10 -d B0rd-FEF8 event effect.ring.pulse
b0rd --channel mqtt --mqtt-host broker.local --mqtt-broadcast notify "Hello" "World"
b0rd --channel mqtt --mqtt-host broker.local list
# → MQTT list unsupported; use --channel http

Full flags and selection rules:Host CLI (b0rd).

Related: Host CLI ·Networking modes ·Notifications ·USB control plane ·Glossary