Skip to main content

MQTT

OmniBus has a single shared MQTT client for the whole instance. Configure the broker once on the MQTT page; each port then publishes parsed events and subscribes to command topics under its own prefix.

Broker settings

Set on the MQTT page (or during the first-run wizard):

  • Broker URL — e.g. mqtt://broker.lan:1883 or mqtts://broker.lan:8883.
  • Credentials — username/password if your broker requires them.
  • Base topic — the root all port prefixes hang under.

The broker password is stored in plaintext on disk (OmniBus has to present it to the broker), so keep the data directory locked down — see Administration → Backup & Restore and the encrypted-backup option.

Topic prefixes

Each port has a base prefix, default omnibus/<sanitized-port-path>. The per-protocol topics below are relative to that prefix.

ProtocolPublishesSubscribes
Raw<prefix>/rx — base64 inbound bytes<prefix>/tx — outbound (base64 or hex:…)
Modbus RTU<prefix>/response — parsed response; <prefix>/snoop — hex of every frame<prefix>/request — JSON {"unitId":1,"fc":3,"address":0,"quantity":10}
BACnet MS/TP<prefix>/frame{frameType, src, dest, length, data, dataCrcOk}<prefix>/send{frameType, destination, source, dataHex} or raw hex

The metering/decoding adapters (M-Bus, DNP3, N2, Jandy, Pentair, Modbus TCP client) publish their decoded points/records under the port prefix as well — see each protocol page.

Payloads are JSON

:::caution Every payload is JSON-encoded All MQTT payloads OmniBus publishes are JSON — including primitive-typed ones. A string value goes on the wire as "hello" (with the surrounding quotes), not bare hello.

This is deliberate. Ignition's MQTT Engine "parse payload as JSON" mode is all-or-nothing: when it's on, raw primitive strings are silently dropped, while objects, numbers, booleans, and JSON-encoded strings all surface as tags. Sticking to JSON keeps OmniBus compatible with any broker-side parse mode. :::

A retained command-topic sentinel (__omnibus_idle__) is published JSON- encoded for the same reason.

Sparkplug B

OmniBus can publish Sparkplug B alongside plain MQTT, so points land as native tags in Ignition without an intermediate transform. Enable it in the MQTT settings.