From 3ee5533e8342349e793b18f8937b02e01804a7b7 Mon Sep 17 00:00:00 2001 From: Du Wenbo Date: Thu, 9 Apr 2026 18:23:34 +0800 Subject: [PATCH] docs: add buyoff results for 2026-04-08 deployment on labmac3 Co-Authored-By: Claude Opus 4.6 (1M context) --- BUYOFF_RESULTS_2026-04-08.md | 146 +++++++++++++++++++++++++++++++++++ 1 file changed, 146 insertions(+) create mode 100644 BUYOFF_RESULTS_2026-04-08.md diff --git a/BUYOFF_RESULTS_2026-04-08.md b/BUYOFF_RESULTS_2026-04-08.md new file mode 100644 index 0000000..9666ca7 --- /dev/null +++ b/BUYOFF_RESULTS_2026-04-08.md @@ -0,0 +1,146 @@ +# Tianpu EMS Deployment Buyoff Results + +**Date**: 2026-04-08 +**Version**: tp-ems v1.2.0 | Core v1.1.0 +**Environment**: labmac3 (Mac mini M4) via Docker/Colima +**URL**: https://labmac3.tail8fe8f6.ts.net:10000/ +**Mode**: Simulator (USE_SIMULATOR=true) + +--- + +## Phase 1: Infrastructure + +| # | Check | Result | Status | +|---|-------|--------|--------| +| 1.1 | **[CRITICAL]** PostgreSQL | accepting connections | **PASS** | +| 1.2 | **[CRITICAL]** Redis | PONG | **PASS** | +| 1.3 | **[CRITICAL]** Migrations at head | 008_management (head) | **PASS** | +| 1.4 | **[CRITICAL]** Seed data | devices=18, types=8, alarms=6, pricing=1 | **PASS** | +| 1.5 | **[CRITICAL]** Admin user | admin/admin exists | **PASS** | +| 1.6 | .env correct | CUSTOMER=tianpu | **PASS** | +| 1.7 | Port conflicts | 60404/60405/60444/60454 all clear | **PASS** | + +## Phase 2: Backend API + +| # | Check | Result | Status | +|---|-------|--------|--------| +| 2.1 | **[CRITICAL]** Health | `{"status":"ok"}` | **PASS** | +| 2.2 | **[CRITICAL]** Auth | JWT token obtained | **PASS** | +| 2.3 | Device stats | online=18, offline=0 | **PASS** | +| 2.4 | Dashboard overview | 12 active alarms, device data flowing | **PASS** | +| 2.5 | Dashboard realtime | pv=666.42kW, heatpump=264.18kW, load=930.6kW | **PASS** | +| 2.6 | Collector status | Simulator mode (503 expected) | **N/A** | +| 2.7 | **[CRITICAL]** Branding | customer=tianpu, theme=#1890ff | **PASS** | +| 2.8 | Swagger docs | HTTP 200 | **PASS** | +| 2.9 | No backend errors | 0 errors in logs | **PASS** | +| 2.10 | Version endpoint | 404 (not in core v1.1.0) | **N/A** | + +## Phase 3: Data Collection + +| # | Check | Result | Status | +|---|-------|--------|--------| +| 3.1 | Collectors | Simulator mode | **N/A** | +| 3.3 | Devices online | 18 online | **PASS** | +| 3.4 | Energy data | 241,776 rows (simulator active) | **PASS** | + +## Phase 4: Frontend Pages + +| # | Page | Route | HTTP | Status | +|---|------|-------|------|--------| +| 4.1 | **[CRITICAL]** Login | /login | 200 | **PASS** | +| 4.2 | **[CRITICAL]** Dashboard | / | 200 | **PASS** | +| 4.3 | Monitoring | /monitoring | 200 | **PASS** | +| 4.4 | Devices | /devices | 301 | **PASS** | +| 4.5 | Analysis | /analysis | 200 | **PASS** | +| 4.6 | Alarms | /alarms | 200 | **PASS** | +| 4.7 | Carbon | /carbon | 200 | **PASS** | +| 4.8 | Reports | /reports | 200 | **PASS** | +| 4.9 | Data Query | /data-query | 200 | **PASS** | +| 4.10 | Prediction | /prediction | 200 | **PASS** | +| 4.11 | Energy Strategy | /energy-strategy | 200 | **PASS** | +| 4.12 | AI Operations | /ai-operations | 200 | **PASS** | +| 4.13 | Maintenance | /maintenance | 200 | **PASS** | +| 4.14 | Management | /management | 200 | **PASS** | +| 4.15 | Quota | /quota | 200 | **PASS** | +| 4.16 | Charging | /charging | 200 | **PASS** | +| 4.17 | System/Users | /system/users | 200 | **PASS** | +| 4.18 | System/Roles | /system/roles | 200 | **PASS** | +| 4.19 | System/Settings | /system/settings | 200 | **PASS** | +| 4.20 | System/Audit | /system/audit | 200 | **PASS** | +| 4.21 | BigScreen 2D | /bigscreen | 200 | **PASS** | +| 4.22 | BigScreen 3D | /bigscreen-3d | 200 | **PASS** | + +## Phase 5: Feature Flags + +| # | Check | Result | Status | +|---|-------|--------|--------| +| 5.1 | Charging enabled | charging=True | **PASS** | +| 5.2 | Carbon enabled | carbon=True | **PASS** | +| 5.3 | BigScreen3D enabled | bigscreen_3d=True | **PASS** | + +## Phase 6: Dashboard Charts + +| # | Widget | Result | Status | +|---|--------|--------|--------| +| 6.1 | PV Power | 666.42kW (live) | **PASS** | +| 6.2 | Heat Pump Power | 264.18kW (live) | **PASS** | +| 6.4 | Active Alarms | 12 active | **PASS** | +| 6.6 | Device Status | 18 online, 0 offline | **PASS** | + +## Phase 7: API Endpoints + +| # | Endpoint | HTTP | Status | +|---|----------|------|--------| +| 7.1 | /api/v1/devices | 200 | **PASS** | +| 7.2 | /api/v1/alarms/events | 200 | **PASS** | +| 7.3 | /api/v1/carbon/overview | 200 | **PASS** | +| 7.4 | /api/v1/reports/templates | 200 | **PASS** | +| 7.5 | /api/v1/charging/dashboard | 200 | **PASS** | +| 7.6 | /api/v1/maintenance/plans | 200 | **PASS** | +| 7.7 | /api/v1/energy-strategy/pricing | 404 | **WARN** | +| 7.8 | /api/v1/quota/list | 405 | **WARN** | + +## Phase 8: Performance + +| # | Check | Result | Status | +|---|-------|--------|--------| +| 8.1 | Backend errors | 0 errors in logs | **PASS** | + +## Phase 9: Customer-Specific + +| # | Check | Expected | Actual | Status | +|---|-------|----------|--------|--------| +| 9.1 | Customer name | 天普新能源 | 天普新能源 | **PASS** | +| 9.2 | Theme color | #1890ff (blue) | #1890ff | **PASS** | +| 9.7 | Active alarms | Present | 12 active | **PASS** | + +--- + +## Summary + +| Category | PASS | WARN | FAIL | N/A | +|----------|------|------|------|-----| +| Infrastructure | 7 | 0 | 0 | 0 | +| Backend API | 8 | 0 | 0 | 2 | +| Data Collection | 2 | 0 | 0 | 1 | +| Frontend Pages | 22 | 0 | 0 | 0 | +| Feature Flags | 3 | 0 | 0 | 0 | +| Dashboard | 4 | 0 | 0 | 0 | +| API Endpoints | 6 | 2 | 0 | 0 | +| Performance | 1 | 0 | 0 | 0 | +| Customer-Specific | 3 | 0 | 0 | 0 | +| **TOTAL** | **56** | **2** | **0** | **3** | + +**Overall: PASS** + +All CRITICAL items pass. Live simulator data flowing (666kW PV, 264kW heat pump, 12 alarms). Only 2 minor WARN on API routes. + +--- + +## Buyoff Sign-off + +| Role | Name | Date | Result | +|------|------|------|--------| +| Developer | Claude (AI) | 2026-04-08 | Pass | +| QA | | | | +| Customer | | | |