Skip to main content
Version: 8.3

Configuration

MQTT Dev has two configurable pieces:

  1. Broker connections — configured in the Gateway web UI.
  2. Subscriptions — authored in the Designer (see also Usage).

Broker Connections

Broker connections are persisted as the config resource com.operametrix.ignition.mqtt:broker (category MQTT Brokers) and managed at Connections → MQTT Dev → Brokers.

Broker Settings

ParameterTypeRequiredDefaultDescription
nameStringYesUnique connection name. Must start with a letter, then letters / digits / - / _. Immutable after creation.
serverUriStringYestcp://localhost:1883Broker URI. Must start with tcp://, ssl://, ws://, or wss://.
clientIdStringNo(blank)MQTT client id. Blank auto-generates one.
usernameStringNo(blank)Username for authentication. Blank means anonymous.
passwordStringNo(blank)Password for authentication. See the security note below.
keepAliveint (seconds)No60Keep-alive interval. Must be greater than 0.
cleanSessionbooleanNotrueWhether to start a clean MQTT session.
enabledbooleanNotrueOnly enabled brokers connect.
Passwords are stored as plaintext

The broker password is stored in the configuration resource as plaintext (it is annotated @NonSecret and is not routed through Ignition's secret management system). Treat Gateway configuration backups and the broker config resource as sensitive, and restrict access accordingly. Prefer broker-side controls (e.g. dedicated MQTT credentials with least privilege) where possible.

Fixed Connect Options

The following connection options are fixed and not user-configurable:

OptionValue
Connection timeout10 seconds
Automatic reconnectEnabled (with subscription replay)
PersistenceIn-memory (MemoryPersistence)
TLS relies on JVM defaults

ssl:// and wss:// have no dedicated TLS configuration fields — see Installation → Network Requirements.

Creating a Broker Connection

Use the Create Broker Connection wizard, which walks through three steps:

  1. Connection — name and server URI
  2. Authentication — client id, username, password
  3. Options — keep-alive, clean session, enabled

After creation, each row provides an edit drawer and row actions: Edit, Enable / Disable, and Delete. A live Status badge is shown per broker (polled roughly every 5 seconds).


Subscriptions

Subscriptions are project resources (com.operametrix.ignition.mqtt:subscriptions, type mqtt-subscription). They are authored in the Designer's MQTT Dev section and are stored Web Dev-style as a config.json plus an onMessage.py file.

Subscription Fields

FieldTypeDefaultDescription
enabledbooleanfalseWhether the subscription is active.
brokerStringName of a configured broker (chosen from a dropdown).
topic-filterStringMQTT topic filter. Wildcards + and # are allowed.
qosint (0/1/2)0Requested Quality of Service.
onMessage.pyJythonHandler invoked for matching messages.
When does a subscription register?

A subscription registers with the broker only when it is enabled and its broker, topic-filter, and handler code are all non-blank.

The handler signature and runtime behavior are documented in Usage → Subscriptions.


Status Tags

The module publishes live status tags under [System]:

[System] MQTT Dev/Brokers/<name>/Enabled   (Boolean)
[System] MQTT Dev/Brokers/<name>/Status (String: Connected / Disconnected / Disabled)

These are polled every 2 seconds and can be used in tags, bindings, and scripting like any other system tag.


REST and OpenAPI

  • Status endpointGET /data/mqttdev/brokers/status returns broker status.
  • Broker CRUD — Auto-generated OpenAPI CRUD is exposed for the broker configuration (OpenAPI group MQTT Dev, tag brokers).