Provisioning trên Magistrala
Dịch vụ Bootstrap trong Magistrala (SuperMQ) là một giải pháp cho bài toán "Cung cấp cấu hình từ xa" (Remote Provisioning).
Dưới đây là chi tiết các khía cạnh của dịch vụ này:
1. Quy trình 3 bước cốt lõi
Dịch vụ Bootstrap hoạt động như một "trạm dừng chân" đầu tiên của thiết bị khi mới online.
- Giai đoạn Khai báo (Admin): Bạn dùng User Token để tạo một bản ghi trên Server, liên kết một
external_id(ví dụ: Serial máy) với mộtclient_id(UUID thực thể trên hệ thống). - Giai đoạn Yêu cầu (Device): Thiết bị cắm điện, gửi lệnh
GET /bootstrap/{external_id}kèm theo một mật khẩu bí mật gọi làexternal_key. - Giai đoạn Phản hồi (Server): Server kiểm tra thông tin, nếu khớp, nó sẽ trả về toàn bộ "hộ chiếu" để thiết bị hoạt động:
client_id,client_key, danh sáchchannels, và các cấu hình tùy chỉnh (JSON content).
Note: Ta phải tạo một danh sách các cấu hình bootstrap bao gồm nhiều extern_id nhưng có thể sử dụng chung 1 extern_key, khác với thingsboard chỉ cần cấu hình một profile với mỗi client_id và client_secret có thể tạo được nhiều thiết bị.
2. Các thông tin quan trọng trong một bản ghi Bootstrap
Khi bạn cấu hình Bootstrap, bạn cần cung cấp các trường dữ liệu sau:
| Trường dữ liệu | Ý nghĩa |
|---|---|
| External ID | Định danh vật lý của thiết bị (MAC, IMEI, Serial). Đây là khóa chính. |
| External Key | "Mật khẩu tạm" để thiết bị xác thực với dịch vụ Bootstrap. |
| Client ID | ID của Client (Thing) mà thiết bị này sẽ đại diện. (cái này có thể để trống để phía trên có thể tự tạo ID riêng và gửi về) |
| Client Key | Mật khẩu MQTT/HTTP chính thức (Server sẽ tự lấy và trả về cho thiết bị). (cái này có thể để trống để phía trên có thể tự tạo key riêng và gửi về) |
| Channels | Danh sách các ID kênh mà thiết bị này được phép tham gia. |
| Content | Dữ liệu tùy chỉnh (ví dụ: {"sensor_type": "DHT22", "interval": 60}). (có thể để trống) |