Thingsboard Gateway for IoT devices.
Project description
ThingsBoard IoT Gateway
The ThingsBoard IoT Gateway is an open-source, Python-based application that enables seamless integration of legacy and third-party devices with the ThingsBoard IoT platform. It serves as a protocol adapter that collects data from external sources and publishes it to ThingsBoard via a unified format.
📖 What is ThingsBoard IoT Gateway?
💡 New to ThingsBoard? Learn what ThingsBoard is
🚀 Getting Started
Curious how the ThingsBoard IoT Gateway works in action?
➡️ Follow our Getting Started Guide to:
- 🚀 Run the gateway in minutes using pre-configured demo servers
- 🔄 Simulate device data collection and processing workflows
- 🧪 Explore telemetry, attributes, and RPCs without real devices
- 🖥️ Test integration with ThingsBoard Community or Professional Edition
💡 Ideal for evaluation, proof-of-concept, and learning how the gateway processes and routes data.
🔌 Gateway Features
ThingsBoard IoT Gateway supports a wide range of industrial and IoT protocols out of the box. Each connector enables collecting data from external systems, transforming it into a unified format, and forwarding it to ThingsBoard.
📟 Industrial & SCADA Protocols
- Modbus – Integrate with Modbus TCP/RTU devices like PLCs and energy meters.
- OPC-UA – Connect to industrial automation systems using the OPC-UA protocol.
- CAN – Communicate with devices over the Controller Area Network (e.g., automotive, industrial equipment).
- ODBC – Retrieve telemetry from SQL-compliant databases.
🌐 IoT & Networking Protocols
- MQTT – Subscribe to external MQTT brokers and ingest messages.
- REST API – Push data to REST endpoints created by gateway.
- Request Connector – Periodically pull data from HTTP(S) APIs and ingest response payloads.
- FTP – Read files from FTP/SFTP servers for batch data ingestion.
- Socket – Request data via raw TCP/UDP socket connections.
- SNMP – Poll SNMP devices to collect MIB data from routers, switches, sensors.
- XMPP – Receive telemetry from XMPP-based chat/device networks.
📡 Smart Energy & Charging
- OCPP – Integrate EV charging stations using Open Charge Point Protocol.
🏠 Smart Building & Home Automation
- BACnet – Gather building automation data (HVAC, lighting, fire systems).
- KNX – Interface with KNX-based building automation systems.
- BLE – Scan and connect to BLE-enabled devices (e.g., beacons, wearables).
🧩 Extensibility
- Custom Connectors – Build your own protocol handlers using Python to support any proprietary system or emerging protocol.
✨ All connectors support flexible configuration, data transformation, and integration with the ThingsBoard platform's device model.
🧰 Core Gateway Capabilities
In addition to multi-protocol support, the ThingsBoard IoT Gateway includes robust features for reliability, remote management, and automation:
🔒 Reliability & Resilience
- Data persistence – Buffers telemetry locally to prevent data loss during network or system outages.
- Automatic reconnection – Automatically restores connection to the ThingsBoard cluster after temporary failures.
🔄 Unified Data Processing
- Data mapping engine – Transforms raw input from devices into ThingsBoard’s unified data format using customizable converters.
🛠️ Remote Management & Control
- Remote configuration – Update and manage gateway configuration directly from the ThingsBoard web UI.
- Remote logging – View and stream logs remotely for troubleshooting and monitoring.
- Gateway service RPC methods – Interact with the gateway using platform-initiated RPC commands.
- Remote shell access – Run shell commands on the gateway host via the ThingsBoard platform.
🔄 Device Lifecycle Handling
- Device rename/removal detection – Automatically synchronizes device renames and deletions to keep the platform device list up to date.
🏗️ Architecture Overview
The IoT Gateway is implemented in Python, allowing powerful extension and customization. It follows a modular architecture resembling microservices.
- Custom connectors let you interface with new devices or services.
- Custom converters allow transformation of incoming messages to a ThingsBoard-compatible format.
- The Gateway provides simple integration APIs, and encapsulates common Thingsboard related tasks: device provisioning, local data persistence and delivery, message converters and other.
Ideal for edge use cases where flexibility and protocol diversity are key.
💬 Support & Community
Need help or want to share ideas?
- 💬 GitHub Discussions – Ask questions, propose features, or share use cases.
- ❓ StackOverflow – Use the
thingsboard-gatewaytag.
🐞 Found a bug? Please open an issue.
⭐ Contributing
We welcome contributions! Feel free to fork the repo, open PRs, or help triage issues.
⚖️ License
This project is licensed under the Apache 2.0 License.
🌟 Don't forget to star the repository to show your ❤️ and support!
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file thingsboard_gateway-3.8.2-py3-none-any.whl.
File metadata
- Download URL: thingsboard_gateway-3.8.2-py3-none-any.whl
- Upload date:
- Size: 556.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.0.0 CPython/3.10.19
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a5b8f8c1b1ff3a6ed8b8af4e3162f61ad3375ca6ba150d3cf503e23ecfe2ccbb
|
|
| MD5 |
3f41b2efae1c15d87749c7ba92a3256e
|
|
| BLAKE2b-256 |
8cb1fd48dfeabe3da9bda3b56612d79339375a503f66609518a74bcfda6600dd
|