# 儲能管理
:::success
此應用實務在於協助各方標準化儲能管理系統數據串接作業,落實智慧杆高效能源管理目標。
- 建議儲能管理系統與智慧杆控制系統協同設計,實現即時監控與故障預警。
- 推薦採用 MQTT 或 RESTful API 雙向通信,提升資料交互效率。
- 定期校驗設備 DEVSNo 與系統 UUID 一致性,確保資料來源正確。
- 強化電池健康狀態監控,預防儲能系統潛在風險。
:::
[toc]
## 欄位與資料定義
### 儲能狀態資料
| 欄位名稱 | 格式 | 必備 | 說明 | 備註 |
| -------- | -------- | -------- | -------- | -------- |
| **廠商資訊** |
| Vender | String | M | 廠商 | 記錄設備實際製造廠商名稱 |
| Model | String | M | 型號 | 記錄設備型號 |
| Serial | String | M | 序號 | 記錄設備唯一序號 |
| **系統與應用欄位** |
| Token | String | M | | |
| DEVSNo | String | M | 設備識別碼 | 識別碼唯一 |
| timestamp | DateTime | M | 資料紀錄時間 | ISO8601 格式 |
| batteryCapacity | Float | M | 總電池容量 (kWh) | 例: 12.5 kWh |
| batterySOC | Float | M | 電池剩餘容量(%) | State of Charge,0~100 |
| batteryVoltage | Float | M | 電池電壓 (V) | 單位伏特 |
| batteryCurrent | Float | M | 電池電流 (A) | 正值表示放電,負值充電。 |
| batteryTemperature | Float | O | 電池溫度 (°C) | 可空缺 |
| batteryHealth | String | O | 電池健康狀況 | 例: Good、Warning、Critical |
| chargePower | Float | O | 充電功率 (kW) | 正值表示充電 |
| dischargePower | Float | O | 放電功率 (kW) | 正值表示供電 |
| chargeStatus | String | M | 充放電狀態 | 例: Charging, Discharging, Idle |
### 能源管理與輸入輸出
| 欄位名稱 | 格式 | 必備 | 說明 | 備註 |
| -------- | -------- | -------- | -------- | -------- |
| inputPower | Float | O | 輸入功率(kW) | 來自外部輸入,例: 電網或太陽能 |
| outputPower | Float | O | 輸出功率(kW) | 輸出到負載的功率 |
| energyCharged | Float | O | 充入能源累積(kWh) | 累計充電量 |
| energyDischarged | Float | O | 放出能源累積(kWh)| 累計放電量 |
| gridConnected | Boolean | M | 是否連接電網 | true: 連接,false: 離線 |
## 資料結構與操作規則
### 資料結構
```json
{
"DEVSNo": "STC-2025A-0012",
"timestamp": "2025-05-01T10:00:00.000Z",
"batteryCapacity": 12.5,
"batterySOC": 87.3,
"batteryVoltage": 48.5,
"batteryCurrent": -5.2,
"batteryTemperature": 29.5,
"batteryHealth": "Good",
"chargePower": 3.0,
"dischargePower": 0.0,
"chargeStatus": "Charging",
"inputPower": 5.0,
"outputPower": 4.5,
"energyCharged": 120.5,
"energyDischarged": 110.7,
"gridConnected": true
}
```
## 操作規則
| 操作 | HTTP 方法 | 說明 | 端點範例 |
| -------- | -------- | -------- | -------- |
| 新增數據 | POST | 上報當前儲能狀態與能量資料 |/api/v1/energy-management |
| 查詢數據 | GET | 根據 DEVSNo、時間區間查詢儲能資料 | /api/v1/energy-management?deviceId={}&startTime={}&endTime={} |
| 修改數據 | PUT | 更新儲能設備狀態(例:健康狀態)| /api/v1/energy-management/{deviceId} |
| 刪除數據 | DELETE | 刪除指定設備數據 | /api/v1/energy-management/{deviceId} |
* 查詢參數與使用限制
* 查詢參數:
* deviceId (必填):設備唯一標識
* startTime (選填):查詢開始時間
* endTime (選填):查詢結束時間
* 使用限制:
* 單次查詢最大回傳1000筆
* 查詢時間範圍不超過30天
* 交換頻率:
* 儲能狀態資料建議即時上報(約1~5秒頻率)
* 歷史數據批次查詢每日或每小時更新均可
## 錯誤處理規則與回傳格式
### 錯誤處理原則
* 請求格式錯誤或必填欄位缺失回傳 400
* 未授權或Token驗證失敗回傳 401
* 無權限操作回傳 403
* 查無相關資料回傳 404
* 伺服器內部錯誤回傳 500
### 錯誤回傳範例
```json
{
"status": "error",
"code": 400,
"message": "batterySOC 欄位缺失或格式錯誤",
"errors": [
{
"field": "batterySOC",
"code": "MISSING_FIELD",
"message": "必填欄位不得省略"
}
]
}
```