A Step-by-Step Guide to Connecting Ignition to MQTT and HiveMQ
In the world of industrial automation, real-time data flow is the backbone of smart operations, from MES and SCADA systems to predictive maintenance and Unified Namespace architectures. Ignition by Inductive Automation offers a flexible platform for building these applications, and when paired with MQTT modules, it becomes a powerful gateway for industrial IoT connectivity. And, when paired with HiveMQ, an MQTT-powered IoT data streaming platform, the power of your IIoT infrastructure scales dramatically. HiveMQ ensures secure, reliable, and high-throughput data streaming, helping teams bridge OT and IT, eliminate data silos, and unlock real-time decision-making.
This guide walks you through deploying the MQTT Engine and Transmission modules in Ignition by Inductive Automation and connecting them seamlessly to a HiveMQ Broker. Using a real-world example from a large food and beverage processing plant, you'll see how this architecture enables low-latency, Sparkplug-compliant data streaming from edge devices to enterprise systems.
Whether you're piloting a proof of concept or laying the foundation for Unified Namespace adoption, this tutorial will help you streamline industrial data movement using MQTT, the de facto protocol for digital transformation in manufacturing.
Installing Ignition by Inductive Automation
Installing Ignition by Inductive Automation is the first step to building powerful industrial applications. In this section, we’ll walk you through downloading the installer, setting up Ignition on your machine, and configuring the initial admin settings. Whether you're using Windows, macOS, or Linux, the process is quick and straightforward—ideal for testing with the free trial mode. Here are the steps:
Download Ignition by Inductive Automation to access the installation for your appropriate operating system. Ignition is supported on Windows, Linux, MacOS, and Linux (ARM-based).
This will ask you to fill out some general install information—this can be skipped with a small ‘skip form’ button at the bottom of the page—bear in mind that there is a free trial that can be used for testing purposes and a license will not be needed unless scenarios need to run for extended periods of time (2 hours at a time, able to be reset indefinitely).
Once the installer has been downloaded, execute this to complete the installation. This will typically install in the directory /usr/local/ignition for Unix-based file systems.
Once the Ignition installation has completed, it will prompt you to start Ignition, as well as to install Ignition as a service. If testing on a local machine, be sure to untick this option unless you’d like Ignition to start each time the machine reboots.
Once Ignition has started, this will typically automatically open a browser page, pointing to the default host address of
localhost:8088
, and prompt you to specify a version. For our purposes, we will be using the standard edition with the free trial.
Select this option, and proceed to create initial administrator credentials.
Once the admin credentials have been created, you will be prompted to define default ports, feel free to adjust as needed for your system. For this guide, we will be using the defaults.
Once finished, you will be prompted to start the gateway to initiate Ignition. Once start-up has finished, the initial installation is complete!
Installing Ignition Module
Ignition does not have MQTT connectivity out-of-the-box. To establish MQTT connectivity, additional modules are required. These modules are available as downloads that can be imported into an existing Ignition installation.
For our use case, we will be looking to install the MQTT Engine Module and MQTT Transmission Module, both by Cirrus Link. These can be downloaded directly from the Modules page.
The MQTT Engine Module integrates directly with Ignition, and allows actions and features to be completed based on received MQTT messaging. The MQTT Transmission Module functions as a compatibility layer, connecting to remote edge devices, Ignition, and an MQTT Host server, allowing messages to flow from remote edge devices, to the MQTT Transmission Module, then to a MQTT Broker before being received and handled by the listening MQTT Engine Module.
This forms a connection change from Edge device → MQTT Transmission Module → MQTT Broker → MQTT Engine Module → Ignition, all while allowing Ignition to remain in contact and control of the Engine and Transmission modules.
Once the module files have been installed, navigate to your running Ignition instance (default http://localhost:8088/
) and select the ‘Config’ tab on the left—this may require you to authenticate with your previously created admin credentials.
From this menu, select the ‘Modules’ option under the ‘System’ header, as highlighted above.
Towards the bottom of the page, select the ‘Install or Upgrade a Module’ option.
Follow the instructions on-screen to upload the downloaded .modl files for the Engine and Transmission modules, one at a time.
Once installation has been completed, these modules can be seen at the bottom of the Config → System → Modules page.
Configuring Ignition Module with HiveMQ MQTT Broker
Both of the Engine and Transmission modules will now need to be configured to connect to your HiveMQ Broker.
Within the Config menu, two new tabs will be listed after the successful installation of these modules. We will be starting with Config → MQTT Engine → Settings.
Select the ‘Sets’ tab within the MQTT Engine settings menu, and select ‘Create new MQTT server set…’ from the bottom left.
Create a new set, entering in a new name, description, and Primary Host ID. Note that in our case, this host ID can be arbitrary, but will be used to later configure the transmission module, so it must be remembered or retrieved later.
Ensure that the Primary Host Enabled box is ticked—this will allow Sparkplug-based status messaging, ensuring that the transmission module and engine module are apprised of each other’s current status via ‘STATE’ messaging.
Finalize this new set, and validate its listing within the sets menu.
Back within the MQTT Engine settings menu, navigate to the ‘Servers’ tab. This will be where we configure the MQTT Server connection to allow the MQTT Engine module to connect to your broker.
Select the ‘Create new MQTT Server Setting…’ option.
This page will contain all the standard connection options, such as credentials, broker URL, TLS options, certificates, etc. Provide the necessary connection information for your broker, uploading certificates and providing credentials as necessary. It is important to note that the ‘Server Set’ here should be configured to match the previously created Server Set, as this will associate this connection with this server set, allowing for Primary Host ID functionality.
Validate your newly created server exists as expected within the Servers list—note that this should shortly after creation switch to ‘connected’, once the engine module has successfully connected to the broker. Any errors can be reviewed within the Ignition logs for further troubleshooting.
Next, we will follow these same steps for the MQTT Transmission module via Config → MQTT Transmission Module → Settings.
First, create a new ‘Set’ with a matching Primary Host ID as configured for the engine module, and then a new ‘Server’ entry, detailing the broker connection information, and specifying the previously created set.
Finally, navigate to the ‘Transmitters’ tab. We will be making use of the default example transmitter—select to edit the Example Transmitter, and be sure to set this to our created set to allow for sample data to flow, and initial client connections to begin.
Once configuration for both modules is completed, these will automatically connect to the provided broker host.
For a final step, we will need to enable the default ‘Store-and-Forward’ functionality for this Transmission module. We will navigate to the ‘History’ tab, from Config → MQTT Transmission → History.
From this tab, click ‘Edit' on the Default In-Memory Store, and then tick the ‘Enable this History Store’ box before saving.
Validate that the History Store has been enabled from the main History menu.
Validation and Testing Ignition to MQTT Within HiveMQ Control Center
Once both the Engine and Transmission modules have been correctly configured, these will be available within the connected clients list in the HiveMQ Control Center. In this example, the Transmission Client was provided a testing name, and the MQTT Engine module was left with an automatically generated name.
The default configuration, LWT details, and subscriptions for the engine client can be identified by navigating to client details. The Engine module client will also include a Last-Will-And-Testament message, indicating its current status, and will publish a retained “status online” message on initial connection.
The intention for this configuration is that in the event of the Engine module falling offline, the LWT message indicating an offline status will be published, and the connected Transmission modules (utilizing the same Primary Host ID) will enter a ‘Store-and-Forward’ mode. In that mode, messages are locally cached for transmission once the primary host has come back online.
The LWT contents can be seen via the ‘show payload’ button under Will Payload, which shows the expected status message configuration (based on Sparkplug specification).
Testing for functionality can now occur—validate that your Transmission Client is properly adhering to the Primary Node configuration by reviewing the Last-Will-And-Testament topic, and ensuring that the Transmission client is subscribed to this topic.
Once validated, the Engine client can be brought offline, either by manually disconnecting the client or by disconnecting the Engine Module within Ignition.
This will trigger the LWT message to be delivered on the LWT topic, which will by default trigger the Transmission client to enter a store-and-forward mode, if a history store is enabled. Note that in manual disconnect circumstances, the engine client will immediately attempt to reconnect and deliver a new retained status message once reconnected.
All Ignition logging, which will include Module logging, such as client connection errors, Store-and-Forward activation, and more can be found directly within the Status → Diagnostics → Logs page, and will update near real-time during usage. This can be used to validate proper triggering of Store-and-Forward, disconnects, the validation of Engine status from the Transmission client, and more.
Real-World Use Case: Optimizing Production and Quality in a Food & Beverage Plant
To bring the step-by-step deployment to life, let’s walk through a real-world example. Imagine a large food and beverage processing plant that produces various products across multiple lines. They have hundreds of PLCs, sensors (temperature, pressure, flow, level), and packaging machines from different vendors. Currently, data collection is piecemeal, relying on legacy connections and manual data logging, leading to delayed insights, inconsistent product quality, and frequent downtime due to unforeseen equipment failures. Oftentimes, this data can be handled and acted on by Ignition software, allowing for centralized data collection and immediate reactivity based on specific values. The question then becomes “How can this data be better utilized for Business Analytics, or be stored for review?” or even “How can I connect these disparate data points to a central archive or Ignition host?”
The Solution: Ignition + MQTT + HiveMQ
Here's how combining Ignition, MQTT, and HiveMQ delivers a robust, contextualized, and reliable data architecture for modern industrial operations.
Key Benefits of Using Ignition MQTT Modules
Here are three key advantages that modules bring to your MQTT-based architecture:
Sparkplug B Contextualization: The Cirrus Link MQTT modules via Inductive Automation automatically transform raw Ignition tags (from OPC UA, Modbus, etc.) into the highly structured Sparkplug B format. This includes rich metadata like data type, engineering units, min/max ranges, and even custom properties. This context is crucial for making data immediately understandable and usable by IT systems without manual mapping.
Unified Namespace (UNS): By adhering to MQTT, the Transmission module contributes to building a Unified Namespace (UNS)—a single, consistent, and hierarchical data model for all operational data across the enterprise. This eliminates data silos and provides a single source of truth.
Store-andForward: A critical feature for industrial reliability. If the connection to the MQTT broker is lost, the Transmission module buffers time-stamped data locally. Once the connection is restored, it automatically forwards the buffered data, ensuring no data loss during network outages.
Why Choose HiveMQ as Your MQTT Broker?
Pairing Ignition with HiveMQ unlocks enterprise-grade reliability, security, and scalability for your MQTT infrastructure. Here’s why it matters:
Decoupling of Devices and Applications: It separates the data producers (PLCs, sensors via Ignition) from the data consumers (SCADA, MES, analytics). This allows applications to subscribe to the data they need without direct, point-to-point connections to devices, simplifying architecture and improving scalability.
Enhanced Security: MQTT leverages standard TCP/IP with TLS encryption, and the Transmission module integrates with Ignition's security features for user authentication and access control to the MQTT broker. Connections are edge-initiated, meaning no open inbound ports are required at the edge, reducing cybersecurity risks.
True IT/OT Convergence: By providing a common, open standard for industrial data, these modules bridge the gap between operational technology (OT) on the plant floor and information technology (IT) systems in the enterprise and cloud.
Future-Proof Architecture: Adopting MQTT and Sparkplug B provides an open, flexible, and extensible architecture that can easily integrate new technologies and scale with evolving business needs.
Reliability, Redundancy, and Scalability: Store-and-Forward at the edge, combined with the robustness of HiveMQ’s MQTT broker and Ignition's own redundancy features, ensures high data availability. Alongside this, the publish-subscribe model combined with Sparkplug B's efficiency allows for scaling from a few devices to millions without overwhelming network infrastructure or requiring complex architectural changes.
Direct Connectivity to Data Lake via MQTT: In addition to these benefits, a HiveMQ broker also allows for direct connectivity to your Data Lake, allowing you to provide these Sparkplug B formatted messages to wherever your needs are highest
Foundation for AI/ML: Data lakes are the backbone for AI and Machine Learning initiatives. Having a continuous, high-fidelity stream of contextualized industrial data via MQTT and Sparkplug B provides the perfect training data for predictive maintenance models, quality optimization algorithms, energy efficiency models, and more.
Historical Trends: Utilizing a Data Lake integration, the continuous flow of MQTT data builds a rich historical archive, allowing for deep historical trend analysis to identify long-term patterns and optimize processes over time.
Conclusion
By connecting Ignition to HiveMQ using MQTT Engine and Transmission modules, you're enabling much more than simple device communication—you're establishing a resilient, scalable, and standards-based data infrastructure for your industrial systems.
This architecture supports Sparkplug for contextualized messaging, enables robust failover mechanisms like Store-and-Forward, and integrates smoothly with enterprise applications. HiveMQ ensures that your data moves reliably and securely, even as your operations grow in complexity and scale.
From edge-to-cloud use cases to Unified Namespace implementations, this setup provides the foundation you need to move from siloed systems to real-time, data-driven operations. Whether you're testing a proof of concept or deploying at scale, this setup lays the groundwork for a future-ready, data-driven operation. Ready to take the next step? Explore how HiveMQ can help you streamline data movement in your industrial environment.

Aaron Franz
Aaron is an experienced IT professional with a strong background in SaaS and enterprise IT operations. At HiveMQ, he specializes in supporting MQTT deployments and helping customers build robust, scalable IIoT architectures. His expertise spans IT infrastructure management, virtualization, Kubernetes, Active Directory, SQL, AWS, GCP, AKS, and modern development technologies including JavaScript, TypeScript, Java, and containerized environments.