Bulk Provisioning
Bulk Provisioning cho phép tạo hoặc cập nhật hàng trăm, hàng nghìn thiết bị cùng lúc từ một file CSV. Phù hợp khi onboard fleet mới hoặc migrate từ hệ thống khác.
Định dạng CSV
File CSV tối thiểu cần 2 cột: Name và Type. Các cột khác sẽ được map thành attributes, telemetry hoặc credentials.
Name,Type,Location,Manufacturer,InitialTemp,Token
Sensor-01,TempHumidity,Building-A-Room1,Sensirion,22.0,token-sensor-01
Sensor-02,TempHumidity,Building-A-Room2,Sensirion,21.5,token-sensor-02
Sensor-03,TempHumidity,Building-B-Room1,DHT,23.0,token-sensor-03
Gateway-01,IoTGateway,Server-Room,Advantech,,gateway-token-01Cột bắt buộc:
| Cột | Mô tả |
|---|---|
Name | Tên định danh thiết bị (phải unique) |
Type | Loại thiết bị (Device Type) |
Cột tùy chọn:
| Cột | Map thành | Ví dụ |
|---|---|---|
Label | Label hiển thị | Cảm biến Tầng 3 |
| Bất kỳ tên khác | Attribute hoặc Telemetry hoặc Credentials | Location, Temperature |
Quy trình import
Vào Devices > Import Devices (hoặc Assets > Import Assets):
Bước 1: Upload file CSV
Chọn file CSV, cấu hình delimiter:
Delimiter: , (comma) ; (semicolon) | (pipe)
First row is header: ✓ (bỏ qua hàng đầu tiên)
Bước 2: Map cột
Mỗi cột cần chỉ định loại:
| Cột CSV | Loại | Key name |
|---|---|---|
| Name | — | (reserved) |
| Type | — | (reserved) |
| Location | Attribute | location |
| Manufacturer | Attribute | manufacturer |
| InitialTemp | Telemetry | temperature |
| Token | Credentials | Access Token |
Bước 3: Cấu hình xử lý trùng lặp
Update attributes/telemetry if device exists: ✓ Bật
→ Thiết bị trùng tên sẽ được UPDATE thay vì báo lỗi
Bước 4: Kết quả import
✓ Created: 48 devices
✓ Updated: 2 devices
✗ Errors: 0
Xem chi tiết lỗi theo dòng CSV
Ví dụ: Onboard 100 cảm biến năng lượng
Name,Type,Phase,Panel,MeterID,MaxKW,Token
EM-001,EnergyMeter,A,Panel-North,MTR001,100,tk-em001
EM-002,EnergyMeter,B,Panel-North,MTR002,150,tk-em002
EM-003,EnergyMeter,C,Panel-South,MTR003,200,tk-em003
...Mapping:
| Cột | Loại | Key |
|---|---|---|
| Phase | Attribute | phase |
| Panel | Attribute | panel |
| MeterID | Attribute | meter_id |
| MaxKW | Attribute | max_kw |
| Token | Credentials | Access Token |
Sau import: 100 thiết bị với đầy đủ attributes, sẵn sàng kết nối ngay.
Ví dụ: Tạo Asset hàng loạt
Name,Type,Floor,Building,Area
Room-101,Office,1,HQ,45
Room-102,Office,1,HQ,38
Server-Room-1,ServerRoom,B1,HQ,120Vào Assets > Import Assets và thực hiện tương tự.
API
POST /api/bulk/devices
Content-Type: multipart/form-data
file: devices.csv
mapping: {
"columns": [
{"type": "NAME"},
{"type": "TYPE"},
{"type": "SERVER_ATTRIBUTE", "key": "location"},
{"type": "TELEMETRY", "key": "temperature"},
{"type": "ACCESS_TOKEN"}
],
"delimiter": ",",
"firstRowIsHeader": true,
"updateData": true
}Lưu ý
- Ô trống: Bỏ qua, không gây lỗi
- Tên trùng (updateData = false): Báo lỗi cho dòng đó
- Giá trị số: Tự động convert từ string sang number
- Token trùng: Báo lỗi (Access Token phải unique toàn hệ thống)
- Giới hạn file: Tùy cấu hình hệ thống (mặc định không giới hạn)