Telemetry, Status và Event là 3 loại dữ liệu IoT cốt lõi. Bài viết giải thích dễ hiểu và hướng dẫn sử dụng đúng để theo dõi & cảnh báo hiệu quả.
1) Vì sao cần phân loại dữ liệu IoT ngay từ đầu?
Một sai lầm rất phổ biến của maker khi làm IoT là:
“Cứ gửi tất cả dữ liệu lên MQTT, còn hiển thị sao thì tính sau.”
Kết quả thường gặp:
- Dữ liệu rối, khó đọc
- Không phân biệt được dữ liệu đo, trạng thái thiết bị và sự kiện quan trọng
- Khó viết rule cảnh báo
- Khi số thiết bị tăng → rất khó mở rộng
Trong thực tế, 99% hệ thống IoT bài bản đều phân dữ liệu thành 3 nhóm rõ ràng:
- Telemetry – số liệu đo theo thời gian
- Status – tình trạng sức khoẻ thiết bị
- Event – sự kiện quan trọng, bất thường
2) Tổng quan nhanh 3 loại dữ liệu
| Loại dữ liệu | Mục đích chính | Ví dụ | Hiển thị ở đâu |
|---|---|---|---|
| Telemetry | Theo dõi xu hướng | nhiệt độ, độ ẩm, điện năng | Chart / bảng số |
| Status | Biết thiết bị còn sống | online, pin, RSSI | Status card / badge |
| Event | Phát hiện bất thường | cửa mở, vượt ngưỡng | Timeline / Alert |
Ghi nhớ nhanh: Telemetry = đo, Status = sống/chết, Event = chuyện quan trọng xảy ra.
3) Telemetry là gì?
3.1 Telemetry dùng để làm gì?
Telemetry là dữ liệu đo lường liên tục theo thời gian, dùng để:
- Vẽ biểu đồ (chart)
- Phân tích xu hướng
- Xem lịch sử ngày / tuần / tháng
3.2 Ví dụ telemetry phổ biến
- Nhiệt độ / độ ẩm
- Điện áp / dòng điện / công suất
- Mức nước
- Chất lượng không khí
3.3 Payload telemetry khuyến nghị
{
"ts": 1768324653,
"metrics": {
"temperature": 28.6,
"humidity": 66.2
}
}
Giải thích:
ts: timestamp (seconds hoặc ms, nhưng nên thống nhất)metrics: chỉ chứa giá trị đo (number)
Không nên nhét logic, trạng thái hay text vào telemetry.
4) Status là gì?
4.1 Status dùng để làm gì?
Status trả lời câu hỏi quan trọng nhất:
“Thiết bị này hiện tại có đang hoạt động bình thường không?”
Status giúp bạn:
- Biết thiết bị online/offline
- Biết pin yếu, sóng kém, reconnect nhiều
- Debug thiết bị từ xa cực nhanh
4.2 Ví dụ status phổ biến
online: true/falsebattery_v: 3.85Vrssi: -67 dBmuptime_s: 123456reconnects: 2
4.3 Payload status khuyến nghị
{
"ts": 1768324700,
"status": {
"online": true,
"battery_v": 3.92,
"rssi": -62,
"uptime_s": 73210,
"reconnects": 1
}
}
4.4 Status thường gửi khi nào?
- Theo chu kỳ: 30–120s
- Khi có thay đổi lớn (pin yếu, reconnect)
- Kết hợp Last Will để báo offline tự động
5) Event là gì?
5.1 Event dùng để làm gì?
Event là sự kiện quan trọng, không xảy ra liên tục, ví dụ:
- Cửa mở / đóng
- Cảm biến phát hiện khói
- Vượt ngưỡng nhiệt độ
- Thiết bị reset
Event thường gắn với:
- Cảnh báo (alert)
- Thông báo (notification)
- Timeline sự kiện
5.2 Payload event khuyến nghị
{
"ts": 1768324800,
"event": {
"type": "temperature_threshold",
"level": "warning",
"value": 42.3
}
}
5.3 Đặc điểm quan trọng của event
- Không gửi liên tục
- Thường dùng QoS 1
- Rất phù hợp để trigger rule & notification
6) Cách map 3 loại dữ liệu lên Dashboard (đúng chuẩn)
6.1 Telemetry → Chart & Latest Value
- Line chart / bar chart
- Hiển thị theo thời gian
- Cho phép chọn khoảng (1h / 24h / 7d)
6.2 Status → Status Card / Badge
- Online / Offline (màu xanh – đỏ)
- Pin, RSSI, uptime hiển thị gọn
- Dùng retained message để load nhanh khi mở dashboard
6.3 Event → Timeline / Alert List
- Danh sách sự kiện theo thời gian
- Highlight event quan trọng
- Gắn với rule cảnh báo
7) Tách topic cho dễ mở rộng (rất quan trọng)
Khuyến nghị mỗi device có 3 topic riêng:
.../telemetry
.../status
.../event
Lợi ích:
- Backend dễ xử lý
- Dashboard dễ map
- Rule engine rõ ràng
- Dễ scale khi có nhiều consumer
8) Sai lầm phổ biến cần tránh
- ❌ Gửi telemetry + status + event chung 1 payload
- ❌ Nhét text/log vào telemetry
- ❌ Gửi event liên tục như telemetry
- ❌ Không có topic/status riêng
9) Checklist thiết kế dữ liệu IoT chuẩn
- Telemetry chỉ chứa số đo
- Status phản ánh sức khoẻ thiết bị
- Event chỉ gửi khi có sự kiện
- Mỗi loại có topic riêng
- Có timestamp rõ ràng
10) Kết luận
Nếu bạn nhớ duy nhất một điều từ bài này:
Hãy tách dữ liệu IoT thành Telemetry – Status – Event ngay từ đầu.
Việc này giúp hệ thống của bạn:
- Dễ hiểu
- Dễ hiển thị dashboard
- Dễ viết rule cảnh báo
- Dễ mở rộng khi số thiết bị tăng


