IIoT display terminal
An LED display that speaks MQTT.
The panel connects to your broker as an ordinary MQTT client. You publish a value; the number changes on the board. If the broker runs on the plant LAN, nothing leaves the building. MQTT does need a broker somewhere — this page is honest about what that means.
MQTT needs a broker. The question is whose.
No way around it: an MQTT display is a client, and every client needs something to publish to. We do not run a broker on your behalf and we are not in the data path. Here is how it usually works out.
| Your situation | What it takes |
|---|---|
| Already running a broker | Point the panel at host, port and credentials. Nothing else changes. |
| SCADA or MES platform in place | Most platforms in that class either include an MQTT broker or sit next to one. Check what you already own before installing anything new. |
| No broker yet | A free Mosquitto instance on any spare machine, NAS or single-board computer carries a shop floor comfortably. That is a one-off afternoon, not a subscription. |
| Rather not deal with it | We can ship the display with an edge box that already runs the broker — it becomes your hardware, not our service. See below. |
| No infrastructure and no appetite for it | Use Modbus TCP or Modbus RTU instead. No broker is involved and the panel talks straight to the PLC. |
Ask us and we will tell you which of these you are in. It is a two-minute conversation, and recommending Modbus when MQTT is the wrong answer costs us a sale we would rather not make.
Optional: display plus edge box
If you would rather not set up a broker yourself, the panel can ship with a small edge computer that already runs one.
| What it is | An ARM Linux box on the plant network, running the broker and pre-pointing the display at it. Reached over the same LAN as the panel. |
|---|---|
| Where the data goes | Panel to box. Nowhere else. No internet route required for the pair to work. |
| Who owns it | You do — root access, no licence key, no remote lock. It is hardware you keep, not a subscription you renew. |
| What it costs | One-off, quoted together with the display. Mention it in the enquiry form. |
Buy the display without the box and nothing breaks later: the panel always speaks standard MQTT, so it will connect to a broker you install yourself at any point.
What we do not do
The value here is what is missing, not what is added.
Any broker
Mosquitto, EMQX, HiveMQ, VerneMQ, AWS IoT Core — anything speaking MQTT 3.1.1. You configure host, port and credentials.
No account with us
The panel does not phone home, needs no login on our side, and carries no licence key tied to a service we operate.
No traffic through us
Your data goes from the panel to your broker. We are not in the path, so we cannot meter it, read it, or lose it.
Survives us
If you stop buying from us tomorrow, the display keeps talking to your broker. The protocol is the contract, not a service.
What it publishes and subscribes
You configure a topic prefix. The panel appends its own suffixes to it.
| Topic | Direction | Retained | Payload |
|---|---|---|---|
<prefix>/online | panel → broker | yes | Device identity and capability: online flag, device id, firmware, panel size, variable count |
<prefix>/state | panel → broker | no | Runtime counters on a configurable interval: uptime, current page, bytes in/out, connection state, command counters |
<prefix>/status | panel → broker | yes (LWT) | offline, published by the broker when the panel drops |
<prefix>/set | broker → panel | no | JSON object mapping register number to value, e.g. {"12":1240,"13":1500} |
Prefix only — do not include /set in the configured prefix, or the subscribe becomes <prefix>/set/set and commands never arrive. This is the single most common setup mistake.
Writing values
A command is one JSON object. Keys are register numbers, not variable names — name resolution belongs on your side, so the panel carries no name table.
| Payload | Effect |
|---|---|
{"12":1240} | Write the number 1240 into register 12 |
{"12":1240,"13":1500} | Two registers in one atomic command |
{"20":"RUNNING"} | Text into a string variable, starting at register 20. ASCII passes through unchanged; CJK text is sent as GB2312 bytes. |
The same registers are visible over Modbus — see the register map model. A command is all-or-nothing: if any pair in the object is invalid, no register is written. The panel counts rejected commands separately from accepted ones, so a wrong payload shows up in state rather than silently doing half the job.
Configuration and identity
| Broker | Host, port, keepalive, username, password |
|---|---|
| Topic prefix | One string; the panel appends /online, /state, /status, /set |
| Client ID | Derived from the panel's MAC address, so several displays on one broker never kick each other off |
| Publish interval | Configurable. Set to zero to stop the periodic state report entirely. |
Limits, stated up front
- One command is capped at 200 bytes and 16 register/value pairs.
- Payload values are not JSON-escaped — a backslash or control character inside a string rejects the whole command.
- Commands write to RAM. They persist across a power cycle only when a save command is issued; without it, the panel returns to its stored configuration on reboot.
- Retained
onlineandofflinemessages stay on the broker. A dashboard that subscribes later will immediately receive historical state — check the message timestamp, not just its value.
MQTT or Modbus?
| Modbus (RTU / TCP) | MQTT | |
|---|---|---|
| Best for | A direct link to one PLC | Many panels, dashboards, remote sites |
| Infrastructure | A cable, or a port on the plant network | A broker — often already there for other reasons |
| Who polls | The panel (master) or the PLC (slave) | Nobody. Values are pushed to the broker. |
| Same value in two places | Two consumers need two reads | Broker fans it out to the screen and the dashboard at once |
Plenty of installations use both: Modbus to the PLC on the line, MQTT upward to a dashboard. Confirm the combination with us for your specific model before you design around it.
Send your broker details