Migrating from HiveMQ Edge
How to read the HiveMQ Edge configuration from config.xml or the REST API and translate protocol adapters, tags, and mappings into a Connectware service commissioning file using an AI assistant.
This guide shows you how to migrate a HiveMQ Edge configuration to Connectware by extracting the protocol adapter configuration and translating it into a service commissioning file. HiveMQ Edge stores its complete configuration in a single config.xml file and serves the same information as JSON over its REST API, which makes the connectivity layer a good candidate for AI-assisted translation. In more detail, the following topics are covered:
Understanding how HiveMQ Edge concepts map to Connectware resources
Extracting the configuration from the
config.xmlfile or the REST APITranslating the configuration into a service commissioning file with an AI assistant
Reviewing the generated service commissioning file
Verifying the migrated data points in the Data Explorer
A complete worked example, from adapter configuration to service commissioning file, is available at the end of this guide.
Prerequisites
To follow this guide, you will need the following:
A running instance of Cybus Connectware with licenses for the connectors that replace your HiveMQ Edge protocol adapters.
Access to the HiveMQ Edge installation: the
conf/config.xmlfile (or the Helm values on Kubernetes), or credentials for the REST API.Network access from Connectware to the devices that HiveMQ Edge currently polls. After the migration, Connectware connects to the devices directly.
An AI assistant to translate the configuration. Any capable large language model (LLM) works. Cybus Connectware GPT is a ChatGPT assistant that already knows the service commissioning file format.
Basic knowledge of the Connectware services concept (for example, service commissioning files, connections, and endpoints).
How HiveMQ Edge Concepts Map to Connectware
HiveMQ Edge combines a local MQTT broker with protocol adapters. An adapter connects to one device, adapter tags name the data points, northbound mappings publish tags to MQTT topics, and southbound mappings write MQTT data back to tags. Connectware organizes the same information in resources of a service commissioning file:
Protocol adapter
The adapter config block carries the host, port, authentication, and TLS settings.
Adapter tag
The protocol-specific tag definition becomes the endpoint address. Polling intervals live at the adapter level in HiveMQ Edge and per endpoint in Connectware.
Northbound mapping
The tagName to topic assignment becomes a mapping entry. Topics can be reused verbatim.
Southbound mapping
Write endpoint + Cybus::Mapping
The topicFilter to tagName assignment becomes a mapping from a topic to a write endpoint.
Data combiner
Combining several tags into one message maps to collect and transform rules.
ISA-95 UNS topic prefix
MQTT topic hierarchy
HiveMQ Edge prefixes topics globally; in Connectware the prefix becomes an explicit part of the mapping topics.
Local MQTT broker
Integrated Connectware broker
MQTT clients that connect to HiveMQ Edge directly must be repointed to Connectware and receive credentials through user management.
Mapping Protocol Adapters to Connectors
The following HiveMQ Edge protocol adapters have a native Connectware connector:
HiveMQ Edge adapter (protocolId)
Connectware connector
modbus
s7 (S7-300/400/1200/1500, LOGO)
opcua
eip, etheripCipOdva
ads
http
BACnet (commercial module)
For adapters without a native connector, for example MTConnect or the file adapter, evaluate a custom connector or keep those sources on an intermediary system.
What Does Not Migrate 1:1
Broker client sessions and retained state
MQTT clients reconnect to the Connectware broker. Sessions and retained messages do not transfer; clients need Connectware credentials and permissions.
Bridge topic rewriting and loop prevention
The placeholder-based topic rewriting ({#}, {2-#}) and hop-count loop prevention of bridges must be redesigned as explicit mapping topics.
Data Hub policies and scripts
Schema validation, behavior policies, and JavaScript transformations have no direct counterpart. Rebuild transformations with Rule Engine rules or in the Node-RED Workbench.
Payload shape options
Northbound options such as includeTagNames and MQTT user properties change the payload shape. Connectware endpoints publish {timestamp, value} objects; downstream consumers may need a transform rule to receive the accustomed shape.
Commercial modules and custom adapters
Adapters built on the HiveMQ Edge SDK must be re-implemented as custom connectors.
Extracting the HiveMQ Edge Configuration
There are two sources; the REST API is the more reliable one:
Configuration file: The complete configuration is the
conf/config.xmlfile of the installation (on Kubernetes, the file passed to the Helm chart). Protocol adapters appear as<protocol-adapter>elements withadapterId,protocolId, a protocol-specific<config>block,<tags>, and<northboundMappings>/<southboundMappings>.REST API: The Admin API serves the same information as JSON. Authenticate against
POST /api/v1/auth/authenticate(default port 8080) and read the adapter configuration:
${EDGE_HOST}is the hostname or IP address of the HiveMQ Edge installation.${TOKEN}is the JWT returned by the authentication endpoint.
For details, see the HiveMQ Edge REST API documentation.
HiveMQ Edge restructured its adapter configuration format in 2024.8: older installations may still use a legacy per-protocol XML layout. The REST API always returns the current model, which is one more reason to prefer it over parsing an old config.xml. State your HiveMQ Edge version when you hand the configuration to an AI assistant.
Translating the Configuration with an AI Assistant
The config.xml file contains credentials in plain text, for example OPC UA usernames and passwords in adapter auth blocks and bridge authentication settings. Remove all credentials before you paste the configuration into an AI tool, and check the data privacy terms of the tool you use. See also the privacy notes for Cybus Connectware GPT.
Copy the following prompt and attach the adapter configuration:
Reviewing the Generated Service Commissioning File
Work through this checklist before installing:
Validate the file structure. The Cybus Connectware Extension for VS Code validates service commissioning files against the official schemas as you edit.
Check every connection against the original adapter
configblock: host, port, security, and authentication settings.Spot-check translated Modbus tags:
startIdxis already 0-based, so no offset correction applies, andflipRegisterstags need live-value verification.Check that adapter-level polling intervals were applied to every endpoint of the adapter.
Compare mapping topics with the original northbound mappings, including the ISA-95 prefix if it was enabled.
Confirm that no credentials ended up in the file and that all site-specific values are parameters.
Compare the endpoint count against the migration report of the AI assistant and the tag count of the adapters.
Installing the Service
Install the service commissioning file. See Installing Services.
Enable the service. See Enabling Services.
Result: Connectware connects to the migrated devices directly and the connections reach the Connected state.
For read-only validation, Connectware and HiveMQ Edge can usually poll the same device at the same time, which allows you to compare live values on both brokers before you repoint MQTT clients. Check the connection limits of your devices first. Plan the client cutover separately: every MQTT client that connected to HiveMQ Edge needs Connectware credentials and permissions.
Verifying the Data
Open the Data Explorer and subscribe to the topics of the migrated service:
Every migrated tag publishes on its topic with plausible values.
Values match between HiveMQ Edge and Connectware for the same data point.
Consumers that depended on the HiveMQ Edge payload shape (tag names or user properties in the payload) receive the shape they expect, through a
transformrule where needed.Adapters migrated with a
covrule only publish on value changes.
Worked Example
The following config.xml excerpt describes a Modbus protocol adapter with one tag and a northbound mapping, in the current HiveMQ Edge configuration format:
Applying the translation rules produces the following service commissioning file. The adapter becomes a Modbus connection, the tag becomes a holding register endpoint with fc: 3, address: 0 (the startIdx is already 0-based), and dataType: int16BE polled at the adapter interval of 1,000 ms, and the northbound topic is reused verbatim. Because publishChangedDataOnly was enabled, the mapping gets a cov rule:
For all Modbus connection and endpoint properties, see Modbus Connection Properties and Modbus Endpoint Properties.
Disclaimer: HiveMQ and HiveMQ Edge are trademarks of HiveMQ GmbH. Cybus is not affiliated with, endorsed by, or sponsored by HiveMQ GmbH.
Last updated
Was this helpful?

