From TIA to AI-Generated HMIs on Siemens WinCC Unified Panels with MonsterMQ

I love having a Siemens SIMATIC WinCC Unified Comfort Panel running at home. It operates 24/7 without a single hiccup, consumes minimal energy, and having a dedicated, rugged industrial touch panel to check the real-time status of the house at a glance is simply awesome.

However, there has always been a catch: I am an IT guy.

I never enjoyed building UIs from scratch—and honestly, designing HMIs inside classic engineering environments like TIA Portal is not something I look forward to on the weekend.

Classic TIA UI on WinCC Unified Panel
The classic panel UI—functional, but tedious and time-consuming to design manually in TIA Portal.

So, I decided to solve this in true IT & Edge fashion.


The Evolution: MonsterMQ as an Industrial Edge App

MonsterMQ Edge already runs seamlessly as a Siemens Industrial Edge Application directly on SIMATIC WinCC Unified Comfort Panels, bridging panel runtime data and MQTT with ultra-low latency and minimal resource footprint.

Now, I’ve taken it one step further: MonsterMQ brokers can host simple, web-based HMI pages directly!

No heavy web server stack needed, no extra middleware—the broker itself serves your custom web interfaces.

MonsterMQ Admin Interface
MonsterMQ broker management and runtime overview.

The Workflow: Letting AI Build & Deploy the Dashboard

By combining MonsterMQ’s web hosting capabilities with our brand-new MonsterMQ CLI and AI skills, the workflow becomes almost magical:

  1. Live Data Discovery: The AI connects via the MonsterMQ CLI to browse active topics, payloads, and live metrics within the broker.
  2. Automated UI Generation: Based on the discovered telemetry and tag schema, the AI designs a clean, modern, touch-optimized web dashboard (HTML5/CSS/JavaScript).
  3. Instant Edge Deployment: Using the CLI, the generated HMI is deployed directly onto the MonsterMQ broker running on the WinCC Unified Comfort Panel.
MonsterMQ CLI Tool
Inspecting live broker data and managing deployment with the MonsterMQ CLI tool.

The Result: Modern, AI-Crafted Web HMIs

Here is what the newly generated web dashboard looks like running live on the WinCC Unified Comfort Panel touch screen:

New AI Generated HMI Screen 1
Modern, dark-themed responsive home telemetry dashboard running directly on the panel.
New AI Generated HMI Screen 2
Clean sensor gauges and interactive controls.
New AI Generated HMI Screen 3
Detailed room and subsystem status view.

Why This Changes the Game

  • Zero TIA Portal UI Hassle: Keep your PLC/Runtime logic clean without spending hours aligning screen objects manually.
  • 🤖 AI-Driven Rapid Prototyping: Go from raw MQTT telemetry to a polished, responsive dashboard in minutes.
  • 🏭 True Industrial Edge Native: Everything runs locally on the panel via Siemens Industrial Edge—secure, self-contained, and low-energy.
  • 📱 Modern & Touch-Ready: Crisp web standards that look great whether you are tapping the panel screen or opening the URL on a tablet or phone.

Getting Started & Resources

Stay tuned for quick video walkthroughs and demo repositories showing the AI prompt-to-panel pipeline!

#Siemens #WinCCUnified #IndustrialEdge #MonsterMQ #MQTT #IIoT #EdgeComputing #GenerativeAI #SmartHome #Automation

Is Your Machine Data Locked? Unlock it with WinCC Unified and MonsterMQ Edge

Is your valuable machine data locked away and inaccessible?

If you are running a **Siemens SIMATIC WinCC Unified Comfort Panel**, you are in luck! You already have the power to unlock that data and stream it anywhere you need.

unlock_machine_data_1786442475815-3

Here is how you can liberate your machine data in a few steps using **MonsterMQ Edge**:

### 1. Enable Industrial Edge
First, enable the **Industrial Edge** runtime on your WinCC Unified Comfort Panel (note: this typically requires a Siemens Industrial Edge license). This turns your HMI panel into an extensible edge device.

### 2. Deploy MonsterMQ Edge
Next, install the lightweight, single-binary **MonsterMQ Edge MQTT Broker** as an Industrial Edge app. As detailed in our [previous setup guide](https://www.rocworks.at/wordpress/?p=1717):
– Download `MonsterMQ-Edge.tar` from the [GitHub Releases](https://github.com/vogler75/monster-mq-edge/releases).
– Rename the file extension to `.app`.
– Upload and launch the app on your panel.

### 3. Connect to the Runtime
Once MonsterMQ Edge is running, configure it to connect to your panel’s runtime data. Use `/tmp/automation/HmiRuntime` as the Pipe Path to establish the data connection.

### 4. Stream to MQTT, Databases, & More!
With the connection established, MonsterMQ Edge exposes your machine tags via MQTT. But it doesn’t stop there:
– **Broker Forwarding**: MonsterMQ Edge can forward MQTT data directly to other cloud or enterprise-level MQTT brokers.
– **Database Integration**: It can write your runtime data immediately into databases for archiving and real-time analysis.

### 🌐 Scalable IoT Architecture
In a production deployment, you can run **MonsterMQ Edge** on multiple WinCC Unified Comfort Panels across the factory floor. Each edge instance forwards its tag data to a central **MonsterMQ Full** broker. The central broker then stores and forwards the aggregated stream directly into a database like **InfluxDB** for historical archiving and dashboarding.

Additionally, the central broker can host the MonsterMQ Dashboard to manage all brokers—including the ones running on the panels—providing a single, unified interface to manage your entire broker network.

mq_architecture_flow_1786450144985-2

MonsterMQ Edge available for Siemens WinCC Unified Comfort Panels!

Vacation day 🏝️ I have published the MonsterMQ Edge MQTT Broker as an Industrial Edge app, bringing a lightweight, single-binary MQTT broker directly to your SIMATIC WinCC Unified Comfort Panels with a data connection to the runtime data.

### ⚡ Quick 4-Step Setup:
1. Download: Grab MonsterMQ-Edge.tar from MonsterMQ-Edge GitHub Releases https://github.com/vogler75/monster-mq-edge/releases

2. Rename: Change the file extension from .tar to .app (MonsterMQ-Edge.app).

3. Upload & Start: Upload the .app file directly to your panel (with Industrial Edge enabled) and launch it.

4. Configure: Connect and manage the broker using the MonsterMQ Dashboard app, available under releases at MonsterMQ GitHub https://github.com/vogler75/monster-mq/releases

See how you can configure the HMI Tags to be exposed via MQTT
👉 https://youtu.be/C9KdrntWjec

⚠️ Use “/tmp/automation/HmiRuntime” as the Pipe Path!

#Siemens #WinCCUnified #IndustrialEdge #MQTT #MonsterMQ #IIoT #IndustrialAutomation #EdgeComputing

Monster-Edge-Panel-1
Monster-Edge-Panel-2
Monster-Edge-Panel-3
Monster-Edge-Panel-4
Monster-Edge-Panel-5
Monster-Edge-Panel-6
Monster-Edge-Panel-7
Monster-Edge-Panel-8

🧌 MonsterMQ-Edge: 500kHz on a single, throttled MacBook Air!

We recently ran a benchmark test pushing **MonsterMQ-Edge** to its limits on a single fanless MacBook Air. During the test, the CPU throttled due to the lack of active cooling, which restricted the hardware’s performance. Despite this thermal throttling, MonsterMQ-Edge—running alongside two lightweight Rust test programs—successfully sent and received approximately **500 kHz** (500,000 messages per second). This demonstration showcases the resilience, low overhead, and high performance of MonsterMQ-Edge even under thermally constrained hardware conditions.
MonsterMQ-Edge-500k

MonsterMQ Collapses the Industrial Protocol Soup

Welcome to a brand new episode of our tech podcast! Today, we are diving deep into the world of industrial IoT, OT-to-IT bridging, and how a revolutionary open-source project is changing the game. We are thrilled to present our episode: “MonsterMQ Collapses the Industrial Protocol Soup.”

Listen to the episode: MonsterMQ Collapses the Industrial Protocol Soup

What is MonsterMQ?

At its core, MonsterMQ is a next-generation, high-performance MQTT broker specifically designed for Industrial IoT (IIoT) and real-time enterprise messaging. Built on top of the ultra-fast Vert.x reactive runtime, MonsterMQ isn’t just another broker—it is a complete, multi-protocol edge integration engine. It blends high-speed message queuing, native database logging, visual flow-based processing, and autonomous AI agents into a single, unified runtime.

The “Industrial Protocol Soup” Challenge

If you’ve ever worked in a modern factory or industrial environment, you know the pain. Operational Technology (OT) is a fragmented ecosystem of legacy and proprietary protocols. You have PLCs talking Siemens S7 or Modbus, SCADA systems like WinCC OA or WinCC Unified exposing internal tag engines, and other machines using OPC UA.

To get this data into IT systems, companies traditionally build complex pipelines involving multiple gateway boxes, custom translators, external MQTT brokers, database connectors, and cloud bridges. This fragmented architecture is difficult to maintain, introduces significant latency, and creates a fragile “protocol soup” that is prone to breaking.

How MonsterMQ Collapses the Soup

MonsterMQ simplifies this mess by acting as a single, consolidated platform that speaks both OT and IT languages natively. Instead of daisy-chaining middleware, MonsterMQ integrates these components directly into the broker:

  • Native OT Adapters: Connects directly to OPC UA, PLC4X (S7/Modbus), WinCC OA, WinCC Unified, and even Redis or Kafka.
  • Dual-Engine Core (MQTT & NATS): Supports MQTT 3.1.1/5 and native NATS protocol handling. It can route messages between MQTT and NATS clients with zero external bridges, allowing OT devices to seamlessly talk to high-speed backend microservices.
  • Direct-to-Database Archiving: Logs data directly to PostgreSQL, CrateDB, MongoDB, SQLite, and Snowflake via schema-based JDBC logging. No separate database loggers required.

What Makes MonsterMQ Truly Unique?

Beyond traditional bridging, MonsterMQ introduces two groundbreaking features that set it apart from standard brokers:

1. Built-in JavaScript Flow Engine

MonsterMQ features a visual, JavaScript-based workflow and flow engine. This allows engineers to filter, transform, aggregate, and route messages on the fly using standard JavaScript directly inside the broker context. You can write custom script blocks to sanitize data before archiving or trigger webhooks when variables cross critical thresholds.

2. Autonomous Edge AI Agents

In a world-first for MQTT brokers, MonsterMQ integrates native AI agent orchestration. Supporting multiple LLM providers (including Gemini, Claude, OpenAI, and Ollama), you can configure AI agents that trigger on specific MQTT topics, run on cron schedules, or talk to other agents. This opens the door to edge-based anomaly detection, natural language querying of industrial tags, and autonomous local troubleshooting.

Key Feature Highlights

  • Vert.x Architecture: Multi-threaded, non-blocking I/O event loops capable of handling millions of messages with minimal CPU and memory footprints.
  • Flexible Edge Deployments: A config-based feature flag system allows you to disable heavy extensions (like AI or JDBC storage) on resource-constrained edge gateways while enabling them on cloud instances.
  • Clustering & High Availability: In-memory clustering (via Hazelcast) allows horizontal scaling across multiple nodes.
  • Modern APIs: Exposes a comprehensive GraphQL API, REST API (supporting InfluxDB Line Protocol ingestion), and an MCP (Model Context Protocol) server for seamless AI tool integration.

Listen to the full podcast above to hear our hosts break down the architecture, discuss real-world industrial deployments, and share their experiences building on MonsterMQ.

MonsterMQ-Edge-and-Main-1

The software where the world operates on: The Resilient Architecture of WinCC OA

What happens when you turn on a kitchen tap, switch on a light, or drive safely through a complex transit tunnel? Behind the scenes, a highly resilient digital engine manages millions of process variables in real time to keep our modern infrastructure running.

In our latest podcast episode, we dive deep into SIMATIC WinCC Open Architecture (WinCC OA)—a SCADA and HMI powerhouse redefining mission-critical control. Capable of networking up to thousands of servers globally, it’s the ultimate platform for IT/OT convergence.

Inside this episode:

  • Modular Manager Blueprint: Independent software “managers” separate processing from UI, making the system virtually crash-proof.
  • Event-Oriented Processing: Active only when value changes, drastically reducing network and CPU load.
  • Object-Oriented Data Models: Structured templates that update thousands of live machines in real time.
  • Hurricane-Grade Resilience: Hot-standby redundancy and 2×2 Disaster Recovery Systems.
  • Safety Standard: The only SCADA software rated SIL 3 since 2008.

Listen to the full episode below to uncover the secrets of the platform trusted with the world’s most sensitive infrastructure.

wincc_oa_flow_1782810684351

Developing with WinCC OA in Docker Containers

Running industrial SCADA systems on developer machines can sometimes lead to a cluttered host operating system, dependency conflicts, or difficulties in managing multiple software versions. WinCC Open Architecture (WinCC OA) is a powerful platform, and running it inside a Docker container for development is an elegant solution to these challenges.

In this post, we’ll walk through how to build a WinCC OA container image on your favorite Linux OS (like Ubuntu) and use a convenient access script to keep your projects organized and run GUI tools like the Console and Project Manager seamlessly.

Step 1: Building the WinCC OA Docker Image

Before running the container, we need to build the Docker image. Navigate to the directory where you downloaded and extracted the WinCC OA installation files (which should also contain your Dockerfile), and run the following command:

docker build --build-arg USER_ID=$(id -u) --build-arg USER_GID=$(id -g) --build-arg USER=$(whoami) --build-arg BASE_IMAGE=debian:bookworm -t winccoa322 .

Why these build arguments? By matching the container’s user ID and group ID with your host user, we avoid file permission issues when editing files and mapping project volumes.

Step 2: Managing the Container with run-container.sh

To automate starting, stopping, and entering the container, we use a custom shell script called run-container.sh. This script works on standard Linux installations as well as macOS using Colima (as a lightweight Docker runtime) and XQuartz (for X11 GUI forwarding).

This script takes care of several important development tasks:

    • Persistent Container Lifecycle: It checks if the container already exists. If it is stopped, it starts it. If it doesn’t exist, it creates a new one using the winccoa322 image. Since the container runs with sleep infinity, it remains active in the background.
    • Volume Mapping: Your host user home directory is mounted to the container (-v "$HOME:/home/$USER:rw"). This ensures your projects, configurations, and license files persist on the host system and can be edited with your favorite host IDEs (like VS Code).
    • Reusable Sessions: You can run the script to enter the running container terminal via docker exec -it winccoa bash, perform your tasks, and exit without stopping the container or losing state.

Note on configuration using a .env file: The script checks if a .env file exists in its directory and loads its environment variables (using set -a and source). This allows you to easily customize variables such as CONTAINER_NAME, WCC_OA_IMAGE, or WCC_OA_VERSION without having to modify the shell script itself.

You can download the full script here:

Step 3: Running Graphical Tools (Console & Project Manager)

WinCC OA relies on graphical interfaces for project management and engineering. The script passes your host’s DISPLAY environment variable and network configuration to the container so that X11 applications can render on your host screen.

However, X11 security will block the container from connecting by default. To authorize the container, you must run the following command in a terminal session on your host machine before starting GUI tools:

xhost +

Once authorized, you can run commands like startPA inside the container, and the Project Manager window will appear on your desktop as if it were running natively.

Summary

Running WinCC OA in a container gives you a clean, isolated environment for SCADA development. Volume mapping keeps your code safe on the host machine, and X11 forwarding gives you access to the full suite of graphical development tools without the overhead of a virtual machine.

🧌 We just added a simple scripting feature to MonsterMQ.com

We just added a simple scripting feature to MonsterMQ.com.

Instead of building a MonsterMQ workflow for every small transformation, you can now create simple JavaScript scripts that run directly in the broker. For many use cases, that is much easier: subscribe to one or more input topics, process the data, publish the result.

And it goes beyond MQTT topics: scripts can also use database connections to read and write data directly from PostgreSQL, MySQL, Neo4J, making it possible to enrich, correlate, or persist data directly.

There is also AI generation support built in. Just describe what you want, for example: “take the JSON payload of the trigger topic and publish every single JSON item to a separate topic on output/expand/<item>” and the script gets generated for you.

Personally, I think this makes the MonsterMQ workflows unnecessary. For a lot of broker-side automation, a small script is simpler and easier to understand, especially when AI can help generate it.

#MQTT #MonsterMQ

MonsterMQ-Scripts-1
MonsterMQ-Scripts-2
MonsterMQ-Scripts-3

🚀 Sunday Feature: MonsterMQ goes Kafka!

A new experimental feature has landed in MonsterMQ: It is acting now as a Kafka Broker, so a Kafka Client can subscribe (and publish, if allowed) to streams. Streams are mapped to MQTT topics. So MQTT topic value changes are going into those streams.

Before anyone asks: No, this is not a replacement for Apache Kafka. 🙂

The queueing is currently backed by databases such as PostgreSQL, MongoDB, and SQLite, so it won’t compete with Kafka in terms of throughput and scalability.

But for many smaller and medium-sized use cases, it brings streaming concepts directly into the broker:

  • 🔹 MQTT and Kafka-style messaging in one server
  • 🔹 Persistent queues stored in a database
  • 🔹 Simple deployment without additional infrastructure
  • 🔹 Easy integration with the existing MonsterMQ ecosystem

As always, this is a first draft – not yet in the version or docker image!

Feedback is welcome!

MonsterMQ-Kafka-0
MonsterMQ-Kafka-1
MonsterMQ-Kafka-2

👉 MonsterMQ.com

🚀 We hear your voices!

At our Developer Days in Vienna, someone asked:

👉 “When will we get a command-line tool for WinCC OA?”

The discussion was around MCP Servers, AI, and how well LLMs can work with command-line tools. Building a CLI for WinCC OA had already been on my mind for quite some time. But hearing it directly from a customer pushed me to finally start.

As a first step, I created a Rust API for WinCC OA. Partly for the Rust fans out there, and partly because, to be honest, I personally prefer Rust over C++ (Caleb Eastman).

Based on that API, I’ve now built a first version of a WinCC OA CLI tool.

🎥 Check out the video and let me know:

What commands would you like to see in a WinCC OA CLI?