MQTT Dev
Overview
MQTT Dev is a Gateway-scoped MQTT client module for Ignition 8.3. It lets you connect to MQTT brokers and respond to topic messages through gateway scripting. The module is modeled on Inductive Automation's Web Dev module — but instead of authoring web endpoints, you author topic subscriptions.
You configure named broker connections in the Gateway web interface, author subscriptions (a topic filter + QoS + an inline Jython onMessage handler) in the Designer, and publish messages from Jython via system.mqtt.publish. Subscription handlers run on the Gateway.
MQTT Dev is an MQTT client. It is not an MQTT broker, not a server or protocol engine, and it has no Sparkplug B support. It provides plain MQTT 3.1.1 publish/subscribe with Jython scripting — inbound message handling is entirely user-authored.
Features
- Named broker connections — Persisted as configuration resources. Enabled brokers auto-connect on startup and stay in sync with configuration changes.
- Automatic reconnect — Uses the Paho client's automatic reconnect, with subscription replay after reconnection.
- Designer-authored subscriptions — Each subscription is a broker + topic filter + QoS + an inline Jython
onMessage(topic, payload, qos, retained)handler. Saving the project applies changes live — no restart required. - Scripting publish —
system.mqtt.publish(...)is available in Gateway, Designer, and client scopes (via an RPC proxy). - Live status tags — Under
[System]inMQTT Dev/Brokers/<name>/, exposingEnabled(Boolean) andStatus(String: Connected / Disconnected / Disabled), polled every 2 seconds. - REST status endpoint —
GET /data/mqttdev/brokers/status. - Auto-generated OpenAPI CRUD — For broker configuration (group "MQTT Dev", tag "brokers").
- QoS 0/1/2 and retained publish — Full QoS support plus retained-message publishing.
- Wildcard topic filters — Standard MQTT
+and#wildcard matching on subscribe. - Multiple transports —
tcp://,ssl://,ws://, andwss://transport schemes. - License / trial gating — Runs on a 2-hour trial until licensed. When unlicensed with an expired trial, brokers load but do not connect.
Technical Specifications
| Specification | Value |
|---|---|
| Module ID | com.operametrix.ignition.mqtt |
| Module Name | MQTT Dev |
| Current Version | 1.0.0 |
| Minimum Ignition Version | 8.3.0 |
| Required Module | None |
| Scope | Gateway, Designer |
| MQTT Client | Eclipse Paho MQTT v3 client 1.2.5 (MQTT 3.1.1) |
| License | Proprietary — © 2026 OperaMetrix SAS (paid, with a 2-hour trial; signed) |
The module bundles the Eclipse Paho v3 client and speaks MQTT 3.1.1 only. MQTT 5 is not supported.
Licensing
MQTT Dev is a paid module and participates in Ignition licensing. Without a license it runs on a 2-hour trial.
While licensed or inside the trial window, enabled brokers connect normally. When the trial expires, brokers still load but do not connect, and existing connections are dropped. Subscriptions and the system.mqtt.* functions remain configured but receive and publish nothing.
Applying a license or resetting the trial reconnects the enabled brokers, with no gateway restart. Activate a license or reset the trial from Platform > System > Licensing. Licenses are available from the OperaMetrix marketplace.
Architecture
The module has three main pieces:
- Broker connections — Configured in the Gateway web UI as config resources. Each enabled broker is connected on startup by the Gateway and kept in sync with configuration changes.
- Subscriptions — Authored in the Designer's MQTT Dev section as project resources. Each subscription binds a broker + topic filter + QoS to a Jython
onMessagehandler that runs on the Gateway, in the owning project's script context, on a worker thread pool. - Publishing — Performed from Jython via
system.mqtt.publish(...), available in all scopes.