Skip to main content

Outputs & Inputs

Every port has four independent ways data can flow in or out. Toggle each one per port.

Sink / sourceDirectionWhat it carries
TCPbothA per-port TCP server (Modbus TCP / raw bytes / raw MS/TP frames).
MQTTbothTopic-subscribed control + topic-published events on a shared broker.
RESTinboundSynchronous HTTP control endpoints (Bearer-token auth).
WebhooksoutboundHTTP POSTs of every published event to one or more URLs.

A single decoded event can go out all enabled sinks at once — publish to MQTT and fan out to webhooks from the same reading, while a REST client polls the same port synchronously.

TCP

Each enabled port gets its own TCP server, allocated from port 9000 upward (the base is configurable). The framing depends on the protocol:

ProtocolTCP framing
rawRaw byte stream, identical to the serial line.
modbus-rtuModbus TCP (MBAP) — connect any standard Modbus TCP master.
bacnet-mstpRaw MS/TP frames including preamble (55 FF), header CRC, payload, data CRC.

The Jandy adapter's TCP server is special: it speaks the RSSA text protocol, a drop-in replacement for Jandy's serial-adapter dongle.

MQTT

One shared MQTT client serves the whole instance. Each port has a base topic prefix (default omnibus/<sanitized-port-path>). Adapters publish parsed events under that prefix and subscribe to per-protocol command topics. Sparkplug B publishing is available alongside plain MQTT for Ignition-native tags.

See Integrations → MQTT for the per-protocol topic maps and payload formats.

:::caution All MQTT payloads are JSON Every payload OmniBus publishes is JSON-encoded — including primitive values (a string value goes on the wire as "hello", with quotes). This keeps it compatible with brokers and with Ignition's "parse payload as JSON" mode, which silently drops bare primitive strings. See Integrations → MQTT. :::

REST

Synchronous HTTP control, authenticated with a Bearer token. Useful when you want a request/response round-trip — e.g. "read these Modbus registers now and give me the answer." Every protocol exposes its own actions.

See Integrations → REST API.

Webhooks

Outbound HTTP POSTs. Each port has a list of webhook targets; when the adapter publishes an event, every enabled webhook whose event filter matches receives a POST — optionally HMAC-signed. Failed deliveries are retried once and then dropped, so a slow endpoint never blocks the serial bus.

See Integrations → Webhooks.