Hi everyone,
I'd like to share opcgw, an open-source gateway I've been developing that bridges ChirpStack 4 with OPC UA, so LoRaWAN device data can flow into industrial automation systems (SCADA, MES, edge) without writing custom glue code.
The gap it fills: ChirpStack manages LoRaWAN devices but doesn't speak
industrial protocols, while SCADA/MES platforms expect OPC UA. opcgw sits in between.
ChirpStack (LoRaWAN) ──gRPC──▶ opcgw ──OPC UA──▶ SCADA/MES
(Ignition, KEPServerEx, FUXA, …)
How it talks to ChirpStack: it uses the ChirpStack gRPC API directly —
polling device metrics at a configurable interval, plus uplink-event ingestion via the streaming API, and a downlink command path (an OPC UA write is delivered to the device through ChirpStack). No extra MQTT broker required.
Key points:
- OPC UA 1.04 compliant server (Float / Int / Bool / String), with HistoryRead backed by a local 7-day store
- Bidirectional: read metrics and send commands — e.g. I drove a Tonhe E20 valve open/close from FUXA, through opcgw, end-to-end
- Stale-data detection surfaced as OPC UA Good / Uncertain / Bad status codes
- Web UI for configuration, with auto-discovery of your ChirpStack
applications / devices / metrics - Written in Rust (async / tokio); multi-arch Docker images (amd64 / arm64),
Kubernetes-ready - Dual-licensed MIT / Apache-2.0
Repo: https://github.com/guycorbaz/opcgw
Docs: https://guycorbaz.github.io/opcgw/
It's at v2.2.0 and running in a real deployment. Feedback, issues and ideas are
very welcome — and I'm curious whether others here have a need for OPC UA /
industrial-side integration.
Thanks,
Guy