There are numerous IoT protocols and data formats. Some of them are more popular, like MQTT and JSON, and some are quite rare. Many IoT platforms provide support for the most popular protocols and data formats out-of-the-box, but it is hard to support all of them in a single solution. With the growth of the Thingsboard open-source community, we have started receiving requests about supporting IIoT protocols, like OPC-UA and some specific data formats.
We have decided to implement this functionality as a separate open-source project that will allow us to bridge the platform API to literally any device. The data flow diagram is attached, and we will describe it in detail below.
The Gateway provides simple integration APIs and encapsulates common Thingsboard-related tasks: device provisioning, local data persistence and delivery, message converters/adapters, and more. As an application developer, you are able to choose Python, Go, C/C++, and other languages and connect to Thingsboard Gateway through external MQTT broker or OPC-UA server. Devices that support other protocols may be connected to gateway by implementing custom extensions.
Thingsboard IoT Gateway provides following features:
OPC-UA extension to collect data from devices that are connected to OPC-UA servers.
MQTT extension to collect data that is published to external MQTT brokers.
Persistence of collected data to guarantee data delivery in case of network and hardware failures.
Automatic reconnecting to Thingsboard clusters.
Simple yet powerful mapping of incoming data and messages in a unified format.
The initial Gateway release goal is to bring Thingsboard data collection feature to OPC-UA- and MQTT-enabled devices. The Gateway project is currently in the active development stage, and you should expect major feature releases in next two months. Our next goal is to bridge all other Thingsboard features and allow you to configure and manage IoT devices through the gateway using Thingsboard widgets and dashboards.