This section contains the overview of the community-supported components of
the United Manufacturing Hub used to extend the functionality of the platform.
The microservices in this section are not part of the Core of the United
Manufacturing Hub, either because they are still in development, deprecated or
only supported community. They can be used to extend the functionality of the
platform.
It is not recommended to use these microservices in production as they might be
unstable or not supported anymore.
1 - Barcodereader
The technical documentation of the barcodereader microservice,
which reads barcodes and sends the data to the Kafka broker.
This microservice is still in development and is not considered stable for production use.
Barcodereader is a microservice that reads barcodes and sends the data to the Kafka broker.
How it works
Connect a barcode scanner to the system and the microservice will read the barcodes and send the data to the Kafka broker.
The asset ID, which is used for the topic structure
string
Any
barcodereader
CUSTOMER_ID
The customer ID, which is used for the topic structure
string
Any
raw
DEBUG_ENABLE_FGTRACE
Enables the use of the fgtrace library. Not recommended for production
string
true, false
false
INPUT_DEVICE_NAME
The name of the USB device to use
string
Any
Datalogic ADC, Inc. Handheld Barcode Scanner
INPUT_DEVICE_PATH
The path of the USB device to use. It is recommended to use a wildcard (for example, /dev/input/event*) or leave empty
string
Valid Unix device path
""
KAFKA_BOOTSTRAP_SERVER
URL of the Kafka broker used, port is required
string
Any
united-manufacturing-hub-kafka:9092
LOCATION
The location, which is used for the topic structure
string
Any
barcodereader
LOGGING_LEVEL
Defines which logging level is used, mostly relevant for developers.
string
PRODUCTION, DEVELOPMENT
PRODUCTION
MICROSERVICE_NAME
Name of the microservice (used for tracing)
string
Any
united-manufacturing-hub-barcodereader
SCAN_ONLY
Prevent message broadcasting if enabled
bool
true, false
false
SERIAL_NUMBER
Serial number of the cluster (used for tracing)
string
Any
defalut
2 - Factoryinput
The technical documentation of the factoryinput microservice,
which provides REST endpoints for MQTT messages via HTTP requests.
This microservice is still in development and is not considered stable for production use
Factoryinput provides REST endpoints for MQTT messages via HTTP requests.
This microservice is typically accessed via grafana-proxy
How it works
The factoryinput microservice provides REST endpoints for MQTT messages via HTTP requests.
The main endpoint is /api/v1/{customer}/{location}/{asset}/{value}, with a POST
request method. The customer, location, asset and value are all strings. And are
used to build the MQTT topic. The body of the HTTP request is used as the MQTT
payload.
Internal ClusterIP: united-manufacturing-hub-factoryinput-service at
port 80
Secret: factoryinput-secret
Configuration
Environment variables
Environment variables
Variable name
Description
Type
Allowed values
Default
BROKER_URL
URL to the broker
string
all
ssl://united-manufacturing-hub-mqtt:8883
CERTIFICATE_NAME
Set to NO_CERT to allow non-encrypted MQTT access, or to USE_TLS to use TLS encryption
string
USE_TLS, NO_CERT
USE_TLS
CUSTOMER_NAME_{NUMBER}
Specifies a user for the REST API. Multiple users can be set
string
Any
""
CUSTOMER_PASSWORD_{NUMBER}
Specifies the password of the user for the REST API
string
Any
""
DEBUG_ENABLE_FGTRACE
Enables the use of the fgtrace library. Not reccomended for production
string
true, false
false
FACTORYINPUT_PASSWORD
Specifies the admin user for the REST API
string
Any
factoryinsight
FACTORYINPUT_USER
Specifies the password for the admin user for the REST API
string
Any
Random UUID
LOGGING_LEVEL
Defines which logging level is used, mostly relevant for developers
string
PRODUCTION, DEVELOPMENT
PRODUCTION
MQTT_QUEUE_HANDLER
Number of queue workers to spawn
int
0-65535
10
MQTT_PASSWORD
Password for the MQTT broker
string
Any
INSECURE_INSECURE_INSECURE
POD_NAME
Name of the pod. Used for tracing
string
Any
united-manufacturing-hub-factoryinput-0
SERIAL_NUMBER
Serial number of the cluster. Used for tracing
string
Any
defalut
VERSION
The version of the API used. Each version also enables all the previous ones
int
Any
1
3 - Grafana Proxy
The technical documentation of the grafana-proxy microservice,
which proxies request from Grafana to the backend services.
This microservice is still in development and is not considered stable for production use
How it works
The grafana-proxy microservice serves an HTTP REST endpoint located at
/api/v1/{service}/{data}. The service parameter specifies the backend
service to which the request should be proxied, like factoryinput or
factoryinsight. The data parameter specifies the API endpoint to forward to
the backend service. The body of the HTTP request is used as the payload for
the proxied request.
Kubernetes resources
Deployment: united-manufacturing-hub-grafanaproxy
Service:
External LoadBalancer: united-manufacturing-hub-grafanaproxy-service at
port 2096
Configuration
Environment variables
Environment variables
Variable name
Description
Type
Allowed values
Default
DEBUG_ENABLE_FGTRACE
Enables the use of the fgtrace library. Not reccomended for production
The microservice publishes messages on the topic ia/raw/development/ioTSensors/,
creating a subtopic for each simulation. The subtopics are the names of the
simulations, which are Temperature, Humidity, and Pressure.
The values are calculated using a normal distribution with a mean and standard
deviation that can be configured.
You can change the configuration of the microservice by updating the config.json
file in the ConfigMap.
6 - MQTT to Postgresql
The technical documentation of the mqtt-to-postgresql microservice,
which consumes messages from an MQTT broker and writes them in a PostgreSQL
database.
This microservice is deprecated and should not be used anymore in production.
Please use kafka-to-postgresql instead.
How it works
The mqtt-to-postgresql microservice subscribes to the MQTT broker and saves
the values of the messages on the topic ia/# in the database.
7 - OPCUA Simulator
The technical documentation of the opcua-simulator microservice,
which simulates OPCUA devices.
This microservice is a community contribution and is not part of the main stack of the United Manufacturing Hub, but is enabled by default.
How it works
The OPCUA Simulator is a microservice that simulates OPCUA devices. You can read
the full documentation on the
GitHub repository.
You can then connect to the simulated OPCUA server via Node-RED and read the
values of the simulated devices. Learn more about how to connect to the OPCUA
simulator to Node-RED in our guide.
You can change the configuration of the microservice by updating the config.json
file in the ConfigMap.
8 - PackML Simulator
The technical documentation of the packml-simulator microservice,
which simulates a manufacturing line using PackML over MQTT.
This microservice is a community contribution and is not part of the main stack of the United Manufacturing Hub, but it is enabled by default.
PackML MQTT Simulator is a virtual line that interfaces using PackML implemented
over MQTT. It implements the following PackML State model and communicates
over MQTT topics as defined by environmental variables. The simulator can run
with either a basic MQTT topic structure or SparkPlugB.
You shouldn’t need to configure PackML Simulator manually, as it’s configured
automatically when the cluster is deployed. However, if you need to change the
configuration, you can do it by editing the packmlmqttsimulator section of the
Helm chart values file.
Environment variables
Environment variables
Variable name
Description
Type
Allowed values
Default
AREA
ISA-95 area name of the line
string
Any
DefaultArea
LINE
ISA-95 line name of the line
string
Any
DefaultProductionLine
MQTT_PASSWORD
Password for the MQTT broker. Leave empty if the server does not manage permissions
string
Any
INSECURE_INSECURE_INSECURE
MQTT_URL
Server URL of the MQTT server
string
Any
mqtt://united-manufacturing-hub-mqtt:1883
MQTT_USERNAME
Name for the MQTT broker. Leave empty if the server does not manage permissions
string
Any
PACKMLSIMULATOR
SITE
ISA-95 site name of the line
string
Any
testLocation
9 - Tulip Connector
The technical documentation of the tulip-connector microservice,
which exposes internal APIs, such as factoryinsight, to the internet.
Specifically designed to communicate with Tulip.
This microservice is still in development and is not considered stable for production use.
The tulip-connector microservice enables communication with the United
Manufacturing Hub by exposing internal APIs, like
factoryinsight, to the
internet. With this REST endpoint, users can access data stored in the UMH and
seamlessly integrate Tulip with a Unified Namespace and on-premise Historian.
Furthermore, the tulip-connector can be customized to meet specific customer
requirements, including integration with an on-premise MES system.
How it works
The tulip-connector acts as a proxy between the internet and the UMH. It
exposes an endpoint to forward requests to the UMH and returns the response.
You can enable the tulip-connector and set the domain for the ingress by editing
the values in the _000_commonConfig.tulipconnector
section of the Helm chart values file.
Environment variables
Environment variables
Variable name
Description
Type
Allowed values
Default
FACTORYINSIGHT_PASSWORD
Specifies the password for the admin user for the REST API
string
Any
Random UUID
FACTORYINSIGHT_URL
Specifies the URL of the factoryinsight microservice.