// the find
iioter/iotgateway
An industrial IoTGateway with B/S architecture that enables bidirectional communication between industrial devices (southbound connections) and IoT platforms (northbound connections). It supports numerous industrial protocols, and can connect to various IoT cloud platforms.
IoTGateway is a .NET 8 browser-based industrial gateway that bridges southbound industrial protocols (Siemens S7, Mitsubishi, Modbus, OPC-UA, Fanuc CNC) to northbound IoT platforms (ThingsBoard, IoTSharp, Huawei Cloud). It ships with a web UI for visual device configuration, built-in MQTT broker, OPC-UA server, and RPC write-back support. Aimed at factory/SCADA engineers who want a self-hosted, configurable edge gateway without writing protocol code from scratch.
Protocol breadth is genuine — S7 via snap7, Mitsubishi MC, Modbus TCP/RTU, OPC-UA, Fanuc FOCAS (the native DLLs are right there in /Dll), and a plugin driver model so you can add custom protocols as DLLs without forking. The bidirectional RPC path (cloud sends command → gateway writes PLC register) is actually implemented and demonstrated, not just promised. Built-in SQLite for local persistence means it keeps running through network outages and syncs when the northbound connection comes back. Running on .NET 8 with EF Core migrations means deployment is a single binary with a real schema versioning story, not a fragile Python virtualenv.
The SQLite database file (iotgateway.db) is checked into the repo — that's a credentials and configuration leak waiting to happen in any fork or deployment. OPC-UA usage requires an OPC Foundation license that the README explicitly disclaims responsibility for, which is a legal landmine that will surprise integrators. Documentation is almost entirely in Chinese with no English translation, so the international developer audience is effectively locked out despite the English topics list. There's an enterprise edition behind a paywall for unspecified features, which means the open-source version is probably missing something production-critical — and you won't find out until you're already committed.