For the complete documentation index, see llms.txt. This page is also available as Markdown.

Migrating from United Manufacturing Hub

How to extract protocol converter configurations from United Manufacturing Hub and translate them into a Connectware service commissioning file with the help of an AI assistant.

This guide shows you how to migrate the connectivity layer of a United Manufacturing Hub (UMH) installation to Connectware by extracting the protocol converter configuration and translating it into a service commissioning file. UMH configuration is declarative YAML throughout, which makes the translation a good task for an AI assistant. The guide covers both UMH variants: UMH Core (single container with a central configuration file) and the Helm-based UMH Classic stack, which the UMH documentation marks as deprecated. In more detail, the following topics are covered:

  • Understanding how UMH concepts map to Connectware resources

  • Extracting the configuration from UMH Core or UMH Classic

  • Translating the protocol converters 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 UMH 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 UMH protocol converters.

  • Access to the UMH Core data volume, or kubectl and helm access to the UMH Classic cluster.

  • Network access from Connectware to the devices that UMH currently polls.

  • 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 UMH Concepts Map to Connectware

UMH moves data with benthos-umh pipelines: a protocol converter (called a bridge in the UMH Core UI) combines a protocol input, processors that build the Unified Namespace topic, and an output into the Kafka-based UNS. Connectware organizes the same information in resources of a service commissioning file, with an MQTT broker as the UNS:

UMH concept
Connectware resource
Notes

Protocol converter / bridge

The input block becomes the connection; each address or node becomes an endpoint.

Data flow component (DFC)

Kafka-to-Kafka pipelines usually translate to mappings with rules.

umh.v1 topic convention

MQTT topic hierarchy

Dot-separated UMH topic segments become slash-separated MQTT topic levels. The agent.location hierarchy becomes the topic prefix.

tag_processor and Bloblang processors

Rule Engine transform rules

JavaScript and Bloblang logic must be rewritten as JSONata; flag each processor.

variables and {{ .IP }} templating

Parameters and definitions with !sub

Direct conceptual equivalent.

Payload {"timestamp_ms", "value"}

Endpoint payload {"timestamp", "value"}

Consumers that expect the UMH shape need a transform rule.

Embedded Redpanda / Kafka UNS

Integrated MQTT broker (CybusMQ)

Kafka-native consumers connect through the Kafka connector or subscribe to MQTT instead.

Management Console (cloud)

Admin UI and infrastructure as code

Connectware is managed on-premises; fleet configuration lives in Git and CI/CD.

Mapping Protocol Inputs to Connectors

The following benthos-umh protocol inputs have a native Connectware connector:

benthos-umh input
Connectware connector

ethernetip

Standard Benthos inputs (MQTT, Kafka, HTTP, SQL)

The sensorconnect input for ifm IO-Link masters and its IODD enrichment have no native counterpart; evaluate a custom connector for those devices.

The opcua input of benthos-umh takes browse roots in its nodeIDs list and auto-discovers every variable beneath them. Connectware endpoints are declared per data point. Before translating, get the list of actually collected nodes, for example from the UMH topic browser, and expect this to be the main manual effort of an OPC UA migration.

What Does Not Migrate 1:1

UMH feature
Connectware approach

Historian (TimescaleDB in Classic)

Connectware is not a historian. Route data to a database with the InfluxDB, SQL, or MSSQL connector. Historical data does not transfer.

Grafana dashboards (Classic)

Repoint dashboards at the new data store; queries need rewriting if the store changes.

Kafka semantics

Consumer groups, offsets, and compaction do not carry over to MQTT. Kafka-native consumers keep working through the Kafka connector.

Data modeling and stream processors

Core data contracts beyond _raw and stream processors must be redesigned with Rule Engine rules and structured topics.

Node-RED flows (Classic)

Import into the Node-RED Workbench; Kafka nodes must be rewired to MQTT topics.

Management Console features

Connection probes, device discovery, and cloud fleet management have no single counterpart; monitoring moves to the Admin UI and deployment to Git-based workflows.

Extracting the UMH Configuration

UMH Core

The complete configuration is one YAML file on the data volume of the container. Copy it from the host volume, or directly from the container:

  • ${UMH_CONTAINER} is the name or ID of the UMH Core container.

The protocolConverter and dataFlow sections of the file contain everything to translate; the agent.location section defines the topic hierarchy.

UMH Classic

Protocol converters and data flows live as benthos configurations in Kubernetes ConfigMaps in the united-manufacturing-hub namespace:

  • ${CONFIGMAP_NAME} is the name of a benthos ConfigMap, for example benthos-1-config. List all ConfigMaps and collect every benthos configuration, including the ones generated by the Management Console.

Translating the Configuration with an AI Assistant

Copy the following prompt and attach the extracted YAML:

Reviewing the Generated Service Commissioning File

Work through this checklist before installing:

  1. Validate the file structure. The Cybus Connectware Extension for VS Code validates service commissioning files against the official schemas as you edit.

  2. Check every connection against the original input block: host, port, security settings, and rack and slot for S7.

  3. Spot-check translated Modbus addresses against live values; benthos-umh field conventions changed across versions, so record the benthos-umh version alongside the export.

  4. Verify that the topic structure matches what downstream consumers expect, including the decision about the _raw/_historian segment and the payload shape.

  5. Review every translated processor against the original Bloblang or JavaScript code.

  6. Confirm that no credentials ended up in the file and that all site-specific values are parameters.

  7. Compare the endpoint count against the migration report of the AI assistant.

Installing the Service

  1. Install the service commissioning file. See Installing Services.

  2. 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 UMH can usually poll the same device at the same time, which allows you to compare live values before you switch consumers over. Check the connection limits of your devices first. Plan the consumer cutover deliberately: UMH consumers read from Kafka, Connectware consumers from MQTT or through the Kafka connector.

Verifying the Data

Open the Data Explorer and subscribe to the topics of the migrated service:

  • Every migrated data point publishes on its topic with plausible values.

  • Values match between the UMH topic browser and Connectware for the same data point.

  • The payload shape matches what consumers expect, with a transform rule where the UMH shape is required.

  • Data arrives at the original poll rates.

Worked Example

The following UMH Core configuration excerpt defines the location hierarchy and one protocol converter that reads two Modbus data points:

Applying the translation rules produces the following service commissioning file. The modbus input becomes a Modbus connection with the resolved variables as parameters; temperature.holding.100.INT16 becomes a holding register endpoint with fc: 3, address: 100 (flagged: verify the base convention against live values), and dataType: int16BE; running.coil.5.BOOL becomes a coil endpoint; and the topics follow the location hierarchy acme/cologne/packaging/press1 with the _raw contract segment dropped:

For all Modbus connection and endpoint properties, see Modbus Connection Properties and Modbus Endpoint Properties.

Disclaimer: United Manufacturing Hub (UMH) and UMH Core are products of UMH Systems GmbH, open source under the Apache License 2.0. Cybus is not affiliated with UMH Systems GmbH.

Last updated

Was this helpful?