Skip to main content

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.

  1. 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ột client_id (UUID thực thể trên hệ thống).
  2. 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.
  3. 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ách channels, 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 IDID 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 KeyMậ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ề)
ChannelsDanh sách các ID kênh mà thiết bị này được phép tham gia.
ContentDữ liệu tùy chỉnh (ví dụ: {"sensor_type": "DHT22", "interval": 60}). (có thể để trống)