Commit Graph

788 Commits

Author SHA1 Message Date
Yinyin Liu 50bc85ff2a unified daily report data from S3 and then db and fallback to xlsx and the container size is consistent among 4 tubs 2026-03-12 14:39:24 +01:00
Yinyin Liu 591e273bc7 Fixed edit mode in the conflict of RabbitMQ(status message updates all entries) and WebSocket 2026-03-11 12:22:19 +01:00
Yinyin Liu 1306ae6b9f digested hourly and daily data from S3 for Sinexcel 2026-03-11 11:43:55 +01:00
Yinyin Liu ec830b5800 increase ExoCmd to 18s to cover new 10s cycle loop for sodistore home 2026-03-11 07:29:08 +01:00
Yinyin Liu a1911325ad added installation name in monthly and yearly email service 2026-03-10 13:11:20 +01:00
Yinyin Liu ac034b9983 fixed monthly and yearly report overlap issue of PV and Battery performance 2026-03-10 12:50:36 +01:00
Yinyin Liu 6cf14e3483 daily tab design with hourly data and last week quick entry with self-efficiency on top 2026-03-10 12:32:01 +01:00
Yinyin Liu f7ee347fc5 cahched weekly report 2026-03-10 10:50:17 +01:00
Yinyin Liu 8cd602c5cd added weather API to generate predition for weekly report 2026-03-09 16:24:29 +01:00
Yinyin Liu 98abd68366 Added network provider in Information tab 2026-03-09 13:43:11 +01:00
Yinyin Liu f8b9428ce4 Merge feature/ticket-dashboard: backend data layer, CRUD, AI diagnosis service, 9 endpoints 2026-03-06 09:52:52 +01:00
Yinyin Liu 662810db98 fixed weeks to days in monthly report system 2026-03-05 14:09:19 +01:00
Yinyin Liu 9cee5398d4 added ticket dashboard backend: data models, CRUD, AI diagnosis service, and 9 controller endpoints
Week 1 of ticket dashboard MVP — backend only:
- 4 new SQLite tables: Ticket, TicketComment, TicketAiDiagnosis, TicketTimelineEvent
- CRUD methods in Database/ partial classes with cascade delete
- TicketDiagnosticService for async Mistral AI diagnosis (fire-and-forget)
- 9 admin-only Controller endpoints for ticket CRUD, comments, and detail view
- Ticket cleanup integrated into Delete(Installation) cascade
2026-03-05 14:03:34 +01:00
Yinyin Liu 534b00aeb8 removed accumulating duplicate/stale WebSocket entries over time 2026-03-05 09:17:06 +01:00
Yinyin Liu 4ac1bc78ab automatically delete S3 files which are over 1 year 2026-03-04 14:04:13 +01:00
Yinyin Liu f82190afc1 improved delete installation logic with S3 bucket purge and delete and reminder for manual check 2026-03-04 12:46:18 +01:00
Yinyin Liu 7aacddd761 Added SodistoreGrid as an empty templated and built S3 bucket creation pipeline 2026-03-04 10:59:08 +01:00
Yinyin Liu 79f695f9b4 check master admin account name from innov to inesco 2026-03-04 09:45:15 +01:00
Yinyin Liu 25b961dc93 fixed folder name and SodistoreMax name 2026-03-04 09:37:01 +01:00
Yinyin Liu a86dc963b2 Merge branch 'main' of 91.92.155.224:Innovenergy/Innovenergy_trunk 2026-03-02 18:52:41 +01:00
Yinyin Liu 35b64c3318 store hourly energy records in SQLite and remove file cache 2026-03-02 18:52:36 +01:00
Yinyin Liu 1761914f24 restructured data pipeline for report system and updated the way to create monthly and yearly report 2026-03-02 12:49:46 +01:00
atef 0db9406b9c create Topology display for Kaco product 2026-02-27 12:56:18 +01:00
atef b6b1cfccb9 cleare unused tojson function 2026-02-27 12:55:39 +01:00
atef 1657cb2b61 Create ensure connection with webscoket 2026-02-27 12:55:02 +01:00
Yinyin Liu 78b9c2dc72 generate monthly and yearly report based on xlsx files 2026-02-27 11:48:05 +01:00
atef 545bb96b9d Update webscoket server failling 2026-02-27 11:20:32 +01:00
atef d81ef73bcf Merge remote-tracking branch 'origin/main' 2026-02-27 11:16:56 +01:00
atef cbd4801568 Add Machine state Controller 2026-02-27 11:15:04 +01:00
atef da9d2b1f40 Add The DCDC control to Kaco project.
Add the Three kabinet to our Battery Reading.
Add ESS and Machine state for SodiStoreGrid
2026-02-27 11:10:55 +01:00
Yinyin Liu 7476c939c3 fixed issue failed to revoke grant access of the user 2026-02-27 09:04:54 +01:00
Yinyin Liu e5b910238f fixed issue failed to change user name in frontend 2026-02-26 15:17:48 +01:00
Yinyin Liu d464c9cd71 Fixed unawaited SendAsync calls of Websocket 2026-02-26 13:52:43 +01:00
Yinyin Liu abedc6c203 avoid adding folder to itself, children and parent 2026-02-26 13:13:38 +01:00
Yinyin Liu 80639e9169 feat: add move installation/folder UI with admin-only access control
- Add MoveModal component with folder dropdown and circular-reference protection
- Add move icon button to each tree row (admin only)
- Add moveInstallation and moveFolder functions to InstallationsContext
- Restrict CreateFolder, MoveFolder, MoveInstallation to admin only (UserType==2) in backend

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 13:00:10 +01:00
Yinyin Liu 062fd5141f added pause and resume alarm diagnosis review campaign service 2026-02-26 08:25:15 +01:00
Yinyin Liu e72f16f26b improve alarm diagnosis review service 2026-02-25 20:08:40 +01:00
Yinyin Liu 8de43276a0 fixed AlarmKnowledgeBase issue 2026-02-25 08:09:11 +01:00
Yinyin Liu 2f8eda5e7e build easy form to collect sodistore home alarm diagnosis review 2026-02-25 06:48:23 +01:00
Yinyin Liu 50c45399bd fix inesco and sodistore home naming and remove Mistral AI info 2026-02-24 19:08:37 +01:00
Yinyin Liu 36848b97c5 improved weekly performance report quality based on inesco team meeting feedback on 24.02 2026-02-24 15:52:28 +01:00
Yinyin Liu 3bffe70a75 translated all Sinexcel and Growatt Alarm now it also shows in the frontend of UI 2026-02-23 17:59:03 +01:00
Yinyin Liu 25280afb8f add behavioral pattern detection using AI to enrich weekly performance report's insight to customers 2026-02-23 07:40:22 +01:00
Yinyin Liu d7300dde91 improve growatt and sinexcel alarm knowledge base with AI 2026-02-18 16:23:08 +01:00
Yinyin Liu 8e50220242 added language support for monitor AI and non-AI content and email delivery 2026-02-18 12:12:58 +01:00
Yinyin Liu 77f6e0de6c AI-P1: Weekly Performance Report 1.0 2026-02-18 07:36:00 +01:00
Yinyin Liu c076d55407 AI diagnosis UX improvements: status-aware, time-filtered, simpler explanations
- Only show AI diagnosis when installation status is red/orange (not green/offline)
- Filter alarms to last 24 hours to avoid showing outdated issues
- Show alarm name first with "Last seen" timestamp instead of "AI Diagnosis" label
- Update Mistral prompt for shorter, non-technical bullet-point explanations
- Fix Mistral JSON parsing when response wrapped in markdown code fences
- Add TestDiagnoseError endpoint for testing full AI flow without auth

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-17 12:16:35 +01:00
Yinyin Liu 9a723c0a6f Merge branch 'main' into integrated_AI 2026-02-16 15:18:54 +01:00
atef 0b0d91f4dd add new function to ensure connection for sinexcel 2026-02-13 10:04:38 +01:00
atef d324de335e Update the midleeware message for configuration in Sinexcel project 2026-02-13 10:04:12 +01:00