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 |
|
|
|