// the find
thingsboard/thingsboard-gateway
Open-source IoT Gateway - integrates devices connected to legacy and third-party systems with ThingsBoard IoT Platform using Modbus, CAN bus, BACnet, BLE, OPC-UA, MQTT, ODBC and REST protocols.
ThingsBoard IoT Gateway is a Python-based protocol bridge that connects legacy industrial devices to the ThingsBoard IoT platform. It handles Modbus, OPC-UA, BACnet, MQTT, BLE, and a dozen other protocols in one process. If you're already running ThingsBoard, this is the obvious way to get field devices talking to it.
The protocol coverage is genuinely broad — Modbus RTU/TCP, OPC-UA, BACnet, CAN bus, OCPP, KNX, SNMP all in one agent is hard to replicate without significant effort. The test suite is serious: unit, integration, and blackbox tests with real config fixtures for each connector, not just smoke tests. Remote configuration and log streaming via the ThingsBoard UI is a practical feature that matters when devices are physically inaccessible. Local data persistence with automatic reconnection means you don't lose telemetry during network blips, which is a real edge case in industrial environments.
Hard-coupled to ThingsBoard — every connector ultimately calls into the ThingsBoard MQTT/HTTP APIs, so using this to feed any other platform means rewriting the output layer. The Python runtime is a liability on constrained edge hardware where you might want something like a 10MB Go binary instead of a full CPython environment. Configuration is entirely JSON file-based and gets deeply nested quickly; there's no schema validation at startup, so a typo in a Modbus register config silently produces nothing. The custom connector extension API is documented by example only — no formal interface definition or type hints, making it easy to write a connector that breaks on edge cases.