Announcing opcgw — a ChirpStack → OPC UA gateway

Viewed 23

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

0 Answers