IT-OT Convergence With HiveMQ Edge: A Getting Started Guide
The pursuit of data-driven operations to drive efficiency and innovation in manufacturing through advanced data analytics has really ramped up over the last few years, and it doesn’t seem to be stopping. However, integrating IT technologies with existing OT edge systems presents many challenges that can impede the transition toward a data-driven approach.
This is a hands-on guide on using HiveMQ Edge to unlock data at the industrial edge for seamless IT-OT integration with MQTT. But first, let’s take a look at the challenges.
Challenges of IT-OT Convergence
The Cost of Connectivity
A significant obstacle is the expense involved in connecting edge systems. The challenge arises from the data being locked within proprietary interfaces, necessitating the use of specialized connectors or converters to manage these unique formats. Moreover, this situation requires professionals with specific expertise. As a result, not only does the initial investment increase, but the complexity of integration efforts also grows. This complexity hinders the ability to create a seamless, interconnected manufacturing environment.
Data Infrastructure Replication
In addition, each data use case often requires its own setup. This means replicating data infrastructure across different parts of the manufacturing process, which is both inefficient and costly. Imagine having to build a new data connectivity infrastructure for every data use case, rather than utilizing a unified data infrastructure that serves all use cases. This redundancy slows down innovation and increases operational costs.
Inconsistency in the Medium of Data Exchange
Another significant challenge is the lack of consistency in the medium of exchanging data at the edge. This inconsistency often leads to integration difficulties, as different systems and devices may use incompatible methods to communicate.
Inconsistency in the Structure of Data
Additionally, manufacturers face the challenge of integrating with legacy systems that often lack consistency in the language and structure of data. This makes it difficult to aggregate and analyze data across different systems, hindering their ability to gain insights and make informed decisions.
The Challenge of Deriving Value
Deriving value from data is a cornerstone of smart manufacturing. However, the lack of standardized, unified, contextualized, and easily accessible data makes this incredibly challenging. Without these elements, data remains siloed and underutilized, significantly diminishing its potential value to smart manufacturing strategies.
The Lack of Semantic Representation
Lastly, the lack of semantic representation poses a challenge in identifying the source of data. Without a clear way to understand where data comes from, its context, and its significance, data-driven decisions become difficult.
Introducing HiveMQ Edge: A Novel Solution for IT-OT Interoperability
HiveMQ Edge is a connectivity solution that was designed to address these challenges of integrating data from Operations Technology with Information Technology. It is a lightweight open-source MQTT gateway optimized for edge deployment.
HiveMQ Edge enables interoperability between OT and IT systems by translating diverse industrial device protocols into MQTT for streamlined communication. It helps standardize and unify data and make it easily accessible across your manufacturing organization, creating a foundational data infrastructure from which all data use cases could be addressed.
This guide will introduce participants to the core concepts of how HiveMQ Edge enables Industry 4.0 and illustrate how they can use HiveMQ Edge to integrate data from OT devices with IT systems, consolidating and democratizing data across diverse industrial landscapes.
Key HiveMQ Edge Features
Let’s take a look at the key features of HiveMQ Edge.
Protocol Adapters
Protocol adapters are at the core of HiveMQ Edge. They enable users to connect to and collect data from industrial devices using various communication protocols, subsequently publishing this data to your MQTT network.
HiveMQ Edge currently provides the following protocol adapters:
The Siemens S7 protocol adapter allows you to integrate data from Siemens S7-300, S7-400, S7-1200, S7-1500 & LOGO Programmable Logic Controllers.
The Modbus TCP protocol adapter allows you to integrate data from Modbus TCP devices.
The OPC UA protocol adapter allows you to integrate data from OPC UA Servers.
The EthernetIP protocol adapter integrates data from Rockwell / Allen-Bradley ControlLogix and CompactLogix devices supporting Ethernet IP.
The Beckhoff ADS protocol adapter allows you to integrate data from PLC devices supporting ADS.
The HTTP(s) protocol adapter allows you to integrate structured JSON or plain data from arbitrary web endpoint URLs via HTTP(s).
HiveMQ Edge will include protocol adapters for Allen-Bradley/Rockwell devices and BACnet devices in the upcoming versions.
In addition, HiveMQ Edge provides a template that allows users to create their own protocol adapters.
MQTT Broker and MQTT-SN Gateway
Next, HiveMQ Edge features a fully compliant MQTT broker that adheres to MQTT versions 3.1, 3.1.1, and 5. This integrated MQTT broker facilitates the publication of data received through protocol adapters and external MQTT clients. It also allows for the forwarding of this data to cloud-based or enterprise MQTT brokers.
Moreover, HiveMQ Edge includes a built-in gateway for MQTT for Sensor Networks, MQTT-SN, a protocol tailored for Wireless Sensor Networks. In HiveMQ Edge, MQTT-SN uses UDP for communication. The MQTT-SN functionality is optional and can be activated as needed.
MQTT Bridging
Moving on, HiveMQ Edge includes MQTT Bridging capability, which is a feature that allows users to establish and manage bidirectional communication between a HiveMQ Edge node and remote or cloud-based MQTT brokers, thereby facilitating MQTT data exchange across distributed environments.
Offline Buffering
To ensure zero data loss in case of connection failure, HiveMQ Edge provides the Offline Buffering feature, which enables the queuing and publishing of messages when the connection is restored. This is otherwise known as store-and-forward.
Data Hub on HiveMQ Edge
DataHub on HiveMQ Edge is a feature that enables users to validate and manipulate data at the edge, ensuring the publication of only clean and reliable data to downstream IT applications.
HiveMQ Data Hub Capabilities include:
Schema Definition: This enables users to define schemas for how data should be formatted and use them to validate MQTT payloads. Both JSON and Protobuf formats are currently supported.
Data Validation: This enables users to define and enforce policies for how bad data should be treated, for example, logging, transforming, or rerouting the data.
Data Transformation: This enables users to convert or manipulate raw or structured data into the desired format as it moves through the MQTT broker. For example, converting units of temperature measurement from Fahrenheit to Celsius
Client Behavior Enforcement: This enables users to define and enforce policies that dictate agreed-upon behaviors for how devices should work with the MQTT broker.
Rest API - Data Hub feature also exposes a REST API interface for applications to interact programmatically with it.
Unified Namespace (UNS)
Lastly, HiveMQ Edge also has a facility to prefix your MQTT topics with a custom semantic hierarchy that adheres to the ISA-95 standard.
In the next section, I’m going to show you how to install and run HiveMQ Edge
Installing HiveMQ Edge
System Requirements
Before I show you how to download and install HiveMQ Edge, let’s take a quick look at the system requirements for the software.
HiveMQ edge is designed to run on constrained / embedded hardware. This includes devices such as the Raspberry Pi, Industrial IoT Gateways, and some Programmable Logic Controllers.
To cater for various deployment scenarios, HiveMQ Edge supports Linux, Windows, and Mac OS X operating systems.
To run HiveMQ Edge in a production environment, it is essential to have the Java Runtime Engine (OpenJDK JRE 11) version 11 or newer installed.
For developers working on HiveMQ Edge, it is recommended to use the Java Development Kit (OpenJDK JDK 11) version 11 or newer.
Downloading and Running HiveMQ Edge
Now, I'll walk you through how to download, install, and run HiveMQ Edge.
In this example, I’ll demonstrate how to run HiveMQ Edge with Docker on Windows 11. However, you can optionally run it manually or as a service.
First, open your preferred web browser and navigate to the official HiveMQ Edge GitHub page.
Once you're on the page, scroll down to the Quick Start Section. You'll find the Run with Docker instructions under the How to Use section.
To execute this image, copy the Docker command, open your Windows command prompt, and run the command.
After the installation is complete, you can open Docker Desktop to see that the HiveMQ Edge container is running.
This means that you can now use a web browser to access its user interface at port 8080, and you can connect MQTT clients to the MQTT broker at port 1883.
To login, you can use the default login credentials; admin
for user, and hivemq
as password.
Navigating the User Interface
Homepage
When you log into HiveMQ Edge, you're greeted with the homepage, which serves as your starting point. Here, direct links are available to start using Protocol Adapters and creating MQTT bridge connections to connect HiveMQ Edge to an enterprise or cloud-based MQTT broker.
You'll find the navigation bar on the left-hand side of your screen, allowing you to move between different areas of your application.
Workspace Page
By selecting the workspace option, you land on a page that provides a real-time overview of all active client and bridge connections and a graphical representation of your HiveMQ Edge network topology.
MQTT Bridges Page
The MQTT Bridges section is dedicated to setting up and managing bidirectional MQTT connections between your local HiveMQ Edge node and remote MQTT brokers.
Protocol Adapters Page
In the Protocol Adapters area, you connect to and aggregate data from industrial devices using various protocols, subsequently publishing this data to your MQTT network.
Event Logs Page
The Event Logs section provides a historical view of all the significant events and activities within your HiveMQ Edge deployment.
Data Hub
The Data Hub section provides a Policy Designer, a visual tool to help you effortlessly build policies, schemas, and scripts all from a single view. Users can easily open the designer via the menu, as depicted in the screenshot below.
The Policy Designer also provides an easy-to-use JavaScript editor with syntax highlight shown in the screenshot below directly editable via a browser.
Unified Namespace
The Unified Namespace section allows you to prefix your MQTT topics with a custom semantic hierarchy.
External Resources
At the bottom, additional resources, such as Documentation, offer further support and information.
Integrating OPC UA Data into MQTT with HiveMQ Edge
In this section, I'll show you how to integrate data from industrial devices into an MQTT network. As an example, we'll use the OPC UA protocol adapter to integrate data from Groov Rio industrial device by Opto 22. The device setup provides a temperature data point through its OPC UA server interface. We will collect this temperature data using HiveMQ Edge and publish it to an MQTT topic.
Configuring OPC UA Protocol Adapter
First, select 'Protocol Adapters' from the sidebar to see a list of all available adapters. Then, under the OPC UA to MQTT protocol adapter section, click on 'Create New Connection.'
Next, you'll need to enter a unique identifier for your adapter instance and the endpoint URI of your OPC UA server. To find this URI for your PLC or device, refer to its documentation.
Once this is set, go to the 'Subscription' tab, click on 'Add Item,' and enter the Node ID of your OPC UA data point and the destination MQTT topic where you want the data to be sent.
Moving on to the security settings, in my demo setup, the PLC allows an anonymous OPC UA server connection, so I'll select 'None' under the OPC UA security policy. However, in a production environment, ensure you use appropriate security measures.
If your OPC UA server requires authentication, switch to the 'Authentication' tab. Here, enter your username and password or enable X.509 authentication if you're using it.
After filling in all the necessary details for your OPC UA protocol adapter instance, click the 'Create' button. A 'Connected' status should appear next to your adapter instance, indicating it's properly set up.
To verify the data transfer, use an MQTT client like MQTT.fx. Connect to the HiveMQ Edge broker with this client and subscribe to the MQTT topic where your data is being published. You should start receiving the temperature values under the topic 'DischargeTemperature.'
Edge-to-Cloud MQTT Connectivity with HiveMQ Edge
In this section, I'll show you how to use HiveMQ Edge MQTT bridging functionality to connect a HiveMQ Edge node to a remote MQTT broker like HiveMQ Cloud.
Configuring MQTT Bridge
I've created a free MQTT broker cluster on HiveMQ Cloud. So I'll copy the connection details here that we're going to use on HiveMQ Edge platform.
To establish an MQTT bridge between your HiveMQ Edge node and HiveMQ Cloud MQTT broker, select 'MQTT bridges' from the side panel. This will display any existing MQTT bridge configurations.
To set up a new bridge connection, click on 'Add Bridge Connection' and assign a unique name for your bridge. Next, input the connection details of your remote MQTT broker, starting with the hostname, which I've previously copied from HiveMQ Cloud.
Set the port to 8883 to enable a TLS connection and then input the access credentials that you established on HiveMQ Cloud.
Following this, specify which MQTT topics from your HiveMQ Edge node you want to forward to the remote MQTT broker.
For instance, I configured an OPC UA protocol adapter from a previous setup to monitor temperature and publish it to an MQTT topic called 'DischargeTemperature.' I intend to forward this topic to the HiveMQ Cloud broker.
Under the destination section, specify the destination topic in the remote broker. I'll retain the original topic name by using the provided expression.
In the advanced configuration settings, I'll leave the quality of service at zero and set the retain flag to true. Proceed to the broker configuration tab and keep the default settings unless you need specific adjustments.
Next, navigate to the security settings and toggle the Transport Layer Security switch on.
Once you have entered all required details, click on 'Create the Bridge.' A successful connection will display a 'Connected' status.
This confirms that we are successfully forwarding all temperature data points read from the OPC UA server to the HiveMQ Cloud MQTT broker.
To verify this, return to the HiveMQ Cloud portal, click on 'Web Client', and connect using generated credentials. Subscribe to all topics to see the data moving from the edge to the cloud using HiveMQ Edge.
Conclusion
HiveMQ Edge solves several challenges IIoT manufacturers face when it comes to integrating industrial data from OT to IT. It enables OT and IT interoperability by translating diverse protocols into the standardized MQTT format, thereby modernizing IIoT infrastructure and making seamless edge-to-cloud integration a reality.
Kudzai Manditereza
Kudzai is a tech influencer and electronic engineer based in Germany. As a Sr. Industry Solutions Advocate at HiveMQ, he helps developers and architects adopt MQTT and HiveMQ for their IIoT projects. Kudzai runs a popular YouTube channel focused on IIoT and Smart Manufacturing technologies and he has been recognized as one of the Top 100 global influencers talking about Industry 4.0 online.