Mở đầu #
Tất cả các IoT Dashboards đều được tạo ra bằng Widgets trong Thư viện Widgets của ThingsBoard.
Widget là một phần tử giao diện giúp hiển thị một loại thông tin hoặc chức năng cụ thể trên Dashboard.
Công dụng của Widgets
- Hiển thị dữ liệu và trực quan hóa thông tin từ các thiết bị được kết nối với ThingsBoard.
- Điều khiển thiết bị từ xa.
- Quản lý cảnh báo (Alarms Management).
- Hiển thị nội dung HTML tùy chỉnh (Custom HTML Content).
Các loại Widget trong ThingsBoard #
Dựa vào chức năng, mỗi Widget trong ThingsBoard thuộc một trong năm loại sau:
- Latest values – Hiển thị giá trị mới nhất từ thiết bị.
- Time series – Hiển thị dữ liệu theo chuỗi thời gian.
- Control widget – Dùng để điều khiển thiết bị từ xa.
- Alarm widget – Quản lý và hiển thị cảnh báo.
- Static widget – Hiển thị nội dung tĩnh hoặc tùy chỉnh.

Tùy thuộc vào loại Widget, các nguồn dữ liệu có thể khác nhau:
– Alarm source – Dùng trong Alarm widgets, cần có source entity để hiển thị danh sách cảnh báo và các trường liên quan.
– Alarms count – Dùng trong Latest values widgets, cần chỉ định target entity để hiển thị số lượng cảnh báo.
– Device – Dùng trong Time-series widgets và Latest values widgets, yêu cầu chỉ định thiết bị, time series key, attribute name, hoặc entity field.
– Entities count – Dùng trong Latest values widgets, cần chỉ định target entity.
– Entity – Dùng trong Time-series widgets và Latest values widgets, yêu cầu chỉ định entity alias, time series key, attribute name.
– Function – Dùng trong Time-series widgets và Latest values widgets để kiểm tra và mô phỏng dữ liệu bằng JavaScript function.
Latest values widget #
Latest values widget được thiết kế để hiển thị giá trị mới nhất của một thuộc tính (attribute) hoặc dữ liệu chuỗi thời gian (time series) từ một thực thể (entity).
Ứng dụng:
– Hiển thị thông tin theo thời gian thực, ví dụ như nhiệt độ hiện tại, trạng thái thiết bị, mức pin, v.v.
– Thường được sử dụng trong Gauge Widget, Entities Table Widget, hoặc các bảng số liệu.
Nguồn dữ liệu: Lấy dữ liệu từ entity attributes hoặc time series data points.
Ví dụ: Digital Gauge có thể hiển thị giá trị nhiệt độ hiện tại của một thiết bị IoT.

Time series widget #
Time series widget dùng để hiển thị dữ liệu lịch sử trong một khoảng thời gian cụ thể hoặc giá trị mới nhất trong một cửa sổ thời gian nhất định.
Ứng dụng:
– Dùng để giám sát dữ liệu theo thời gian, ví dụ: biểu đồ nhiệt độ, tốc độ, mức tiêu thụ năng lượng theo thời gian.
– Các dạng biểu đồ phổ biến: Timeseries Line Chart, Timeseries Bar Chart, v.v.
Nguồn dữ liệu: Chỉ sử dụng time series data từ thiết bị hoặc thực thể.
Thiết lập thời gian (Time window settings):
– Realtime: Cửa sổ thời gian động, cập nhật liên tục dữ liệu mới nhất trong khoảng thời gian gần đây.
– History: Cửa sổ thời gian cố định, hiển thị dữ liệu trong một khoảng thời gian quá khứ cụ thể.
Ví dụ: Timeseries Line Chart có thể hiển thị giá trị tốc độ của thiết bị theo thời gian thực.

Control widget #
Control widget cho phép gửi lệnh điều khiển từ xa (RPC commands) đến thiết bị, đồng thời xử lý và hiển thị phản hồi từ thiết bị.
Ứng dụng:
– Điều khiển thiết bị từ xa, ví dụ: bật/tắt đèn, điều khiển động cơ, giám sát trạng thái cảm biến.
– Thường được dùng với Raspberry Pi, ESP32, PLCs và các thiết bị IoT khác.
Cấu hình:
– Chỉ định thiết bị mục tiêu để gửi lệnh RPC.
– Định nghĩa các hành động điều khiển, ví dụ: bật/tắt GPIO, thay đổi tốc độ quạt, đặt nhiệt độ mong muốn.
Ví dụ: Basic GPIO Control widget gửi lệnh bật/tắt GPIO và hiển thị trạng thái hiện tại của GPIO trên Raspberry Pi.

Alarm Widget #
Alarm Widget hiển thị các cảnh báo liên quan đến một thực thể (entity) trong một khoảng thời gian xác định.
Ứng dụng:
– Theo dõi sự cố trên thiết bị IoT (quá nhiệt, mất kết nối, lỗi cảm biến…).
– Hiển thị danh sách cảnh báo theo thời gian thực hoặc lịch sử.
– Quản lý mức độ nghiêm trọng của cảnh báo.
Cấu hình:
– Chọn thực thể nguồn cảnh báo (ví dụ: thiết bị, cảm biến, máy móc…).
– Định nghĩa các trường dữ liệu cảnh báo (thời gian, loại cảnh báo, trạng thái…).
– Thiết lập thời gian hiển thị cảnh báo (theo thời gian thực hoặc lịch sử).
Các tham số chính:
– Alarm status: Trạng thái của cảnh báo (mới, đang xử lý, đã giải quyết…).
– Alarm severity: Mức độ nghiêm trọng (thấp, trung bình, cao, nghiêm trọng).
– Alarm type: Phân loại cảnh báo (ví dụ: HighTemperature, LowHumidity).
Ví dụ: Widget “Alarms Table” hiển thị danh sách cảnh báo mới nhất cho một thiết bị trong thời gian thực.

Static Widget #
Static Widget dùng để hiển thị nội dung HTML tùy chỉnh, không phụ thuộc vào dữ liệu từ thiết bị hay nguồn bên ngoài.
Ứng dụng:
– Tạo bảng điều khiển chứa thông tin tĩnh.
– Hiển thị tiêu đề, hướng dẫn sử dụng, hoặc hình ảnh.
– Trang trí giao diện bằng HTML/CSS.
Cấu hình:
– Nhập nội dung HTML tĩnh.
– Thêm CSS để tùy chỉnh giao diện.
Ví dụ: Widget “HTML Card” hiển thị nội dung HTML như tiêu đề, hình ảnh, hoặc mô tả sản phẩm.

Widgets Library (Bundles) #
Widgets được nhóm thành widget bundles dựa theo chức năng của chúng. Một số widgets có thể thuộc nhiều nhóm khác nhau.
Hệ thống Widget Bundles:
– System-level bundles: Được quản lý bởi System Administrator, có sẵn cho tất cả các tenant.
– Tenant-level bundles: Được quản lý bởi Tenant Administrator, chỉ tenant đó và khách hàng của họ có thể sử dụng.
Ví dụ:
“Alarm Count Widget” có thể thuộc cả nhóm Alarm Widgets và Count Widgets.
Dùng chức năng Search để tìm widget nhanh chóng. Bạn cũng có thể tự phát triển và thêm widgets theo hướng dẫn của ThingsBoard.


Bạn có thể tìm widget theo tên trong tab “Widgets”, nơi hiển thị tất cả các widget theo thứ tự bảng chữ cái để dễ dàng tìm kiếm.
Air Quality #
Gói widget này bao gồm các widget dùng để hiển thị dữ liệu chất lượng không khí.

Alarm Widgets #
Gói widget này giúp hiển thị cảnh báo cho các thực thể, hỗ trợ cả chế độ thời gian thực và lịch sử.

Analog Gauges #
Hiển thị nhiệt độ, độ ẩm, tốc độ và các giá trị số khác.

Cards #
Hiển thị dữ liệu chuỗi thời gian hoặc thuộc tính dưới dạng bảng hoặc thẻ.

Charts #
Hiển thị dữ liệu thời gian thực hoặc lịch sử với cửa sổ thời gian.

Control Widgets #
Hiển thị trạng thái hiện tại và gửi lệnh RPC đến thiết bị.

Count Widgets #
Đếm và hiển thị số lượng cảnh báo, thực thể theo bộ lọc.

Date #
Thay đổi phạm vi dữ liệu cho các widget khác trên dashboard.

Digital Gauges #
Hiển thị nhiệt độ, độ ẩm, tốc độ bằng đồng hồ số.

Edge Widgets #
Tổng quan về các thực thể liên quan đến ThingsBoard Edge.

Entity Admin Widgets #
Quản lý thiết bị, tài sản (tạo/sửa/xóa danh sách).

Entity Widgets #
Hiển thị danh sách thực thể, đếm số lượng và quan hệ giữa chúng.
Files #
Chỉ có sẵn trong ThingsBoard PE và PaaS.Hiển thị danh sách tệp/PDF, cho phép tải xuống và xóa.

Gateway Widgets #
Quản lý các tiện ích mở rộng của gateway.

SCADA Symbols #
Biểu tượng SCADA hiệu suất cao.

GPIO Widgets #
Hiển thị và điều khiển trạng thái GPIO của thiết bị.

SCADA Fluid System #
Biểu tượng SCADA cho hệ thống chất lỏng.

Home Page Widgets #
Tùy chỉnh trang chủ, hiển thị liên kết nhanh và thống kê.

HTML Widgets #
Nhúng mã HTML tùy chỉnh hoặc hiển thị HTML có dữ liệu động.

Indoor Environment #
Hiển thị dữ liệu môi trường trong nhà.

Input Widgets #
Chỉnh sửa thuộc tính của thực thể.

Liquid Level #
Hiển thị mức chất lỏng trong bể chứa.

Maps #
Hiển thị vị trí địa lý và theo dõi lộ trình thiết bị.

Navigation Widgets #
Xác định dashboard chính của người dùng.

Outdoor Environment #
Hiển thị dữ liệu môi trường ngoài trời.

SCADA Symbols #
Tải biểu tượng SVG lên SCADA dashboard.

Scheduling: Widgets #
Chỉ có sẵn trong ThingsBoard PE và PaaS. Lên lịch sự kiện với cấu hình linh hoạt.

Status Indicators #
Hiển thị pin, tín hiệu và thanh tiến trình.

Tables: Widgets #
Hiển thị danh sách thực thể, cảnh báo, dữ liệu chuỗi thời gian.

Traditional SCADA Fluid System #
Biểu tượng SCADA cho hệ thống chất lỏng truyền thống.

Operations with Widget #
Adding Widget (Thêm Widget) #
– Khi System Administrator thêm một widget mới, nó sẽ trở thành System Widget, chỉ quản trị viên hệ thống có quyền chỉnh sửa hoặc xóa.
– Tenant Administrator có thể tạo widget nhưng chỉ có thể chỉnh sửa những widget họ đã tạo.
– Bạn cũng có thể tự phát triển widget theo hướng dẫn.
Cách thêm Widget: #
– Đi đến Widgets Library từ menu chính. Nhấn biểu tượng “+” ở góc trên cùng bên phải, chọn “Create new widget”.

– Chọn loại widget trong cửa sổ bật lên.

– Nhập tên, dán mã JavaScript của widget vào hộp thoại, sau đó nhấn “Save”.

– Hoàn tất – Widget mới đã được tạo.
Exporting Widget (Xuất Widget) #
Bạn có thể xuất một loại widget từ widget bundle dưới dạng JSON và nhập lại vào cùng hoặc một ThingsBoard instance khác.
Cách xuất Widget: #
– Vào Widgets Library, chọn tab “Widgets”. Tìm widget cần xuất, nhấn nút export trên thẻ widget.

– File cấu hình widget sẽ được lưu dưới dạng JSON trên máy tính.
Importing Widget (Nhập Widget) #
Lưu ý: Chỉ quản trị viên hệ thống mới có thể chỉnh sửa, xóa, thêm hoặc nhập widget mặc định. Tuy nhiên, tenant có thể tạo và quản lý các widget riêng của họ.
Cách nhập Widget: #
– Vào trang “Widgets”, nhấn nút “+” góc trên bên phải. Chọn “Import widgets type” từ menu thả xuống.

– Kéo thả hoặc chọn file JSON từ máy tính. Nhấn “Import” để hoàn tất.

Deleting Widget (Xóa Widget) #
Quản trị viên hệ thống hoặc quản trị viên tenant có quyền xóa widget.
Cách xóa Widget: #
Cách 1:
– Nhấn vào biểu tượng “Thùng rác” trong hàng của widget muốn xóa.

– Xác nhận xóa trong hộp thoại xuất hiện.

Cách 2:
– Nhấn vào biểu tượng “Bút chì” để mở chi tiết widget.

– Nhấn “Delete widget”.

– Xác nhận xóa trong hộp thoại xuất hiện.

Operations with Widgets Bundle #
Adding Widgets Bundle (Thêm Widgets Bundle) #
– Đi đến trang “Widgets bundle” từ menu chính. Nhấn “+” ở góc phải trên cùng. Chọn “Create new widgets bundle”.

– Nhập tên bundle (có thể thêm ảnh và mô tả tùy chọn) → Nhấn “Add”.

– Thêm widget có sẵn: Nhấn “+ Add existing widget”, chọn widget từ danh sách.
– Tạo hoặc nhập widget mới: Nhấn “+”, chọn “Create” hoặc “Import”.

– Nhấn “Save” để hoàn tất.


Lưu ý: Danh sách Widgets Bundle được sắp xếp theo thứ tự bảng chữ cái, hãy kiểm tra các trang khác nếu chưa thấy bundle vừa tạo!
Exporting Widgets Bundle (Xuất Widgets Bundle) #
Bạn có thể xuất một Widgets Bundle dưới dạng JSON để sử dụng lại trên cùng hoặc khác ThingsBoard instance.
Cách thực hiện: #
– Nhấn vào nút Export trên hàng của bundle cần xuất.

– Trong cửa sổ pop-up, có thể chọn “Include bundle widget types in exported data” (nếu muốn xuất kèm loại widget).

– Nhấn “Export”, file JSON sẽ được tải về máy.
Lưu ý: File JSON này có thể được nhập vào hệ thống khác nếu cần!
Importing Widgets Bundle (Nhập Widgets Bundle) #
Bạn có thể nhập một Widgets Bundle từ file JSON để sử dụng trong ThingsBoard.
Cách thực hiện: #
– Trên trang Widgets Bundles, nhấn nút “+” ở góc phải. Chọn “Import widgets bundle” từ menu thả xuống.

– Trong cửa sổ pop-up, kéo và thả file JSON hoặc chọn từ máy tính.

– Nhấn “Import” để hoàn tất quá trình nhập.
Deleting Widgets Bundle (Xóa Widgets Bundle) #
Quản trị viên hệ thống hoặc quản trị viên tenant có thể xóa một Widgets Bundle bằng hai cách:
Cách 1: #
– Trên trang Widgets Bundles, tìm bundle cần xóa. Nhấn vào biểu tượng thùng rác bên cạnh tên bundle.

– Xác nhận xóa trong hộp thoại hiển thị.

Cách 2: #
– Nhấn vào biểu tượng chỉnh sửa để mở chi tiết bundle.

– Nhấn Delete widgets bundle.

– Xác nhận xóa trong hộp thoại hiển thị.
