diff --git a/.env b/.env index 696a2f6..89222c7 100644 --- a/.env +++ b/.env @@ -1,2 +1,4 @@ +VITE_SUPABASE_URL=https://backend.appmiaoda.com/projects/supabase233847254023151616 +VITE_SUPABASE_ANON_KEY=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJhdXRoZW50aWNhdGVkIiwiZXhwIjoyMDc1MTgwNzMwLCJpc3MiOiJzdXBhYmFzZSIsInJvbGUiOiJhbm9uIiwic3ViIjoiYW5vbiJ9.eBXTY-SvuVf-rynRmP4VgudnhbUtqYquoEPbGp_l-HM VITE_APP_ID=app-6qcydjtbzwu9 diff --git a/README.md b/README.md index dc2bc9f..55f60b7 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,55 @@ -## 介绍 +# 电池管理系统 (Battery Management System) -项目介绍 +## 项目介绍 + +基于现代化Web技术开发的电池管理系统,专为BBox设备端与羿动新能源平台对接而设计。系统提供设备登录授权、实时数据监控、OTA固件升级管理等核心功能,采用响应式设计,兼容桌面和移动设备。 + +## 核心功能 + +### 🔧 设备管理 +- BBox设备登录授权和状态监控 +- 设备信息管理(IP地址、固件版本等) +- 设备状态实时更新(在线/离线/维护/故障) +- 设备详情查看和配置管理 + +### 📊 实时监控 +- 电池数据实时传输和展示 +- 多维度数据图表(电压、电流、温度、电量、功率) +- 可视化趋势分析和历史数据查询 +- 自定义时间范围监控 + +### 🔄 OTA升级管理 +- 固件升级任务创建和管理 +- 升级进度实时跟踪 +- 升级日志查看和故障排查 +- 批量升级和回滚功能 + +### 📡 MQTT通信管理 +- MQTT服务器连接状态监控 +- 消息传输情况实时查看 +- 设备通信日志记录和分析 +- 连接异常自动重连 + +### ⚙️ 系统配置 +- 完整的系统参数配置 +- 报警阈值设置(温度、电压等) +- 数据保留策略配置 +- 通知设置和系统信息查看 + +## 技术架构 + +### 前端技术栈 +- **React 18** - 现代化前端框架 +- **TypeScript** - 类型安全的JavaScript +- **Tailwind CSS** - 实用优先的CSS框架 +- **shadcn/ui** - 高质量UI组件库 +- **Recharts** - 数据可视化图表库 +- **React Router** - 客户端路由管理 + +### 后端技术栈 +- **Supabase** - 开源Firebase替代方案 +- **PostgreSQL** - 关系型数据库 +- **实时订阅** - 数据变更实时推送 ## 目录结构 diff --git a/index.html b/index.html index b6c9d18..fdb1711 100644 --- a/index.html +++ b/index.html @@ -1,9 +1,11 @@ - +
++ 在线: {stats?.onlineDevices || 0} | 离线: {stats?.offlineDevices || 0} +
++ 占比: {stats?.totalDevices ? Math.round((stats.onlineDevices / stats.totalDevices) * 100) : 0}% +
++ 已完成: {stats?.completedTasks || 0} | 失败: {stats?.failedTasks || 0} +
++ 维护中: {stats?.maintenanceDevices || 0} +
++ {mqttConfig?.config_value || 'mqtt://192.168.1.100:1883'} +
+ {!isConnected && ( + + )} ++ 总设备数: {devices.length} +
++ 最近24小时 +
++ 错误率: {totalMessages > 0 ? ((errorMessages / totalMessages) * 100).toFixed(1) : 0}% +
+{log.message}
+ )} + {log.topic && ( ++ 主题: {log.topic} +
+ )} ++ 设备: {task.device_id} | 目标版本: {task.firmware_version} +
+{task.error_message}
++ {new Date(latestData.timestamp).toLocaleTimeString('zh-CN')} +
++ 功率: {latestData.power?.toFixed(2) || '--'}W +
++ {latestData.temperature && latestData.temperature > 50 ? '高温警告' : '温度正常'} +
++ {latestData.soc && latestData.soc < 20 ? '电量不足' : '电量充足'} +
++ {latestData.soh && latestData.soh > 95 ? '状态良好' : '需要关注'} +
+