Skip to main content
Version: 8.3

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.

What this module is (and is not)

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 publishsystem.mqtt.publish(...) is available in Gateway, Designer, and client scopes (via an RPC proxy).
  • Live status tags — Under [System] in MQTT Dev/Brokers/<name>/, exposing Enabled (Boolean) and Status (String: Connected / Disconnected / Disabled), polled every 2 seconds.
  • REST status endpointGET /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 transportstcp://, ssl://, ws://, and wss:// 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

SpecificationValue
Module IDcom.operametrix.ignition.mqtt
Module NameMQTT Dev
Current Version1.0.0
Minimum Ignition Version8.3.0
Required ModuleNone
ScopeGateway, Designer
MQTT ClientEclipse Paho MQTT v3 client 1.2.5 (MQTT 3.1.1)
LicenseProprietary — © 2026 OperaMetrix SAS (paid, with a 2-hour trial; signed)
MQTT 3.1.1 only

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.

Trial expired behaviour

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:

  1. 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.
  2. Subscriptions — Authored in the Designer's MQTT Dev section as project resources. Each subscription binds a broker + topic filter + QoS to a Jython onMessage handler that runs on the Gateway, in the owning project's script context, on a worker thread pool.
  3. Publishing — Performed from Jython via system.mqtt.publish(...), available in all scopes.

Download

Download MQTT Dev Module