The Frankenstein Automation Gateway is a powerful tool for seamlessly connecting multiple data sources, such as OPC UA servers, PLC4X devices, or MQTT brokers, allowing access to data through GraphQL, MQTT, or OPC UA clients. It’s like creating a beautiful symphony where every instrument plays in harmony, logging value changes from various sources into an array of databases like QuestDB, InfluxDB, Kafka, and many others. This guide will walk you through the process of setting up the gateway, configuring it, and troubleshooting common issues.
How to Build and Run the Gateway
To get your Frankenstein Automation Gateway up and running, you’ll need Java 17 or higher. Below are the steps to follow:
- Open the project in IntelliJ IDEA or build it from the command line using Gradle.
- Use the included gradlew command to download the correct version.
- Run the following commands:
cd source/app
./gradlew build
export GATEWAY_CONFIG=config.yaml
./gradlew run
For Windows users, don’t forget to modify the CLASSPATH line in your script to manage long library paths.
Configuration of the Gateway
The main configuration file for the gateway is config.yaml, found in the app directory. Understanding how to configure this file is crucial. Here’s how:
- You can specify the config file name as an argument, or set an environment variable GATEWAY_CONFIG.
- For creating valid YAML configurations, use the provided YAML schema in the doc directory and install the YAML Language Support by Red Hat Extension in Visual Studio Code.
Using GraphQL and OPC UA
The gateway can read the OPC UA object schema and convert it into a GraphQL schema, allowing for versatile data interactions. Think of it like a translator who speaks multiple languages—translating stickers on various parcels so everyone understands what’s inside. You can set initial NodeIds to browse specific items, reducing the load on the server.
Mapping MQTT Topics
With the MQTT Interface, accessing OPC UA servers is done through subscribing to MQTT topics. The gateway acts as a pass-through, meaning it does not store data internally but distributes it to clients as instructed. Imagine a post office distributing letters without keeping any in storage—efficient and direct!
Logger Configuration
The gateway provides options for various logger sinks, allowing you to specify topics that should be logged. This configuration is essential for ensuring that value changes are accurately captured.
# Example Logger Configuration
Loggers:
InfluxDB:
- Id: influx1
Enabled: true
Url: http://192.168.1.13:8086
Database: test
Logging:
- Topic: opc/opc1/path/objectsDemo/*
Troubleshooting Common Issues
- If you encounter any issues with configurations, check your config.yaml for any syntax errors.
- Make sure to verify your Java installation if the gateway fails to run.
- Check the topic mappings between MQTT and OPC UA servers; incorrect paths may lead to data not being distributed properly.
- Review the logs for any error messages that can indicate where the problem is arising.
- For more insights, updates, or to collaborate on AI development projects, stay connected with fxis.ai.
Continuing Innovations
At fxis.ai, we believe that such advancements are crucial for the future of AI, as they enable more comprehensive and effective solutions. Our team is continually exploring new methodologies to push the envelope in artificial intelligence, ensuring that our clients benefit from the latest technological innovations.
With this user-friendly setup and troubleshooting guide, you’re now ready to harness the full potential of the Frankenstein Automation Gateway in your environment. Go forth and connect your data sources like a maestro guiding an orchestra!

