ThingsBoard is a complete, production-ready open source IoT platform designed to act as a device registry, central data hub, and end-user dashboard application.
You can deploy Thingsboard on your own hardware (on-premise) or in the cloud, and it comes in two versions:
- Community Edition (CE): A free, open-source version available for both personal and commercial use. It contains core features like the rule engine and dashboard building. I will be using the Docker version for some of my tutorials. See Getting Started Using the Community edition.
- Professional & Cloud Editions: Paid versions that add advanced features such as white-labeling, reporting tools, and microservice integrations. There is also a free version (limited to 5 devices) that you can use to evaluate the product. I will be using this version in many of my tutorials.
Introductory Video
Core Concepts (Devices,Assets,customers)
Entities
ThingsBoard models the physical world as a graph of entities connected by relations. Every entity supports attributes, time-series data, and alarm rules — giving you a unified way to represent, monitor, and control your IoT infrastructure. –reference
See Understanding Entities
Devices
A device is an entity in ThingsBoard.ThingsBoard is designed to monitor and control devices.
Therefore the starting point for working with ThingsBoard is to understand devices.
A device in ThingsBoard is the digital representation of a physical or virtual device.
The device connects to the ThingsBoard core using a variety of IOT protocols- HTTP, MQTT, COAP etc.
Devices can be created manually using the ThingsBoard interface, imported using a csv file and automatically provisioned
Devices send telemetry data e.g temperature, pressure etc to ThingsBoard. This data can be displayed on a dashboard, trigger alarm etc. see telemetry
Devices can also send optional attributes like version etc (client attributes) and can also be assigned attributes e.g. configuration settings (server attributes). See Attributes.
Device control e.g turning a switch on/off is done using RPC commands. See Device Control Using RPC
A device can also act as a gateway. A gateway devices connects several physical devices to ThingsBoard over a single connection.
Device profiles allow you to configure devices as a group. The profile can include alarm thresholds,rule chains etc.
Assets
Assets are digital representations of an object. This could be a building, vehicle, town etc.
Assets do not send telemetry data directly but are used to group devices that send telemetry data. See Assets.
Customers
ThingsBoard is a multi tenant system. This means that it can manage devices from different independent organisations.
These organisations are configured as customers and devices are assigned to a customer to manage.
Customers will have a manager and users which can be assigned to roles.
Customers are created and managed by the top-level Tenant.The Tenant is equivalent to a superuser in Linux.
Because the online community edition is used by multiple organisations each organisation will have a tenant administrator which is created automatically when you create your online account.
The Rules Engine
The Rule Engine is the data processing backbone of ThingsBoard. Every incoming telemetry reading, attribute update, device lifecycle event, or RPC call becomes a Message that flows through a Rule Chain –ThingsBoard Manual
The rules engine processes messages using various nodes. Controlling devices using RPC requires creating rules in the rules engine.
See Understanding and Using The Rules Engine
Related Tutorials and Resources: