Commit Graph

1138 Commits

Author SHA1 Message Date
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 4d27515c14 add writable systemcontrol 2026-02-27 12:55:54 +01:00
atef b6b1cfccb9 cleare unused tojson function 2026-02-27 12:55:39 +01:00
atef d9de727c41 add writable PowerStage Enable for DcDc 2026-02-27 12:55:25 +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