finds.dev← search

// the find

vogler75/automation-gateway

★ 298 · Kotlin · GPL-3.0 · updated Apr 2026

A OPC UA gateway which gives you access to your OPC UA values via MQTT or GraphQL (HTTP). If you have an OPC UA server in your PLC, or a SCADA system with an OPC UA server, you can query data from there via MQTT and GraphQL (HTTP). In addition, the gateway can also log value changes from OPC UA nodes in an InfluxDB, IoTDB, Kafka, and others.

A Kotlin/Vert.x gateway that bridges OPC UA (and PLC4X/MQTT sources) to modern interfaces — GraphQL queries, MQTT subscriptions, and a dozen logging sinks including InfluxDB, Kafka, TimescaleDB, and Cassandra. Aimed at industrial/IIoT shops that have a PLC or SCADA system locked behind OPC UA and need to get that data somewhere useful without writing a custom integration for each destination.

The fanout model is smart: one OPC UA subscription per node regardless of how many downstream clients are watching, so it doesn't hammer the PLC. The disk-backed logger queue (v1.33) means you won't silently drop data when your InfluxDB goes down for a restart — values buffer to disk and flush on reconnect. The YAML JSON schema for VS Code autocomplete is a genuinely useful touch for a config-heavy system. Claimed 250k value changes/second on commodity hardware is credible given Vert.x's event-loop model.

The MQTT broker implementation is intentionally non-compliant — it doesn't persist subscriptions or retain messages, which will surprise anyone who treats it as a drop-in broker rather than a virtual fan-out layer. Authentication is basically absent: the MQTT server supports a single username/password per listener, and there's no mention of TLS for OPC UA connections in the default setup. The config file format has broken backwards compatibility at least twice (v1.22, v1.20), which is painful if you're running this unattended in a plant. The Windows classpath workaround (manually editing the launch script) is a build bug that should have been fixed in Gradle, not documented.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →