Commit Graph

96 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 1306ae6b9f digested hourly and daily data from S3 for Sinexcel 2026-03-11 11:43:55 +01:00
Yinyin Liu a1911325ad added installation name in monthly and yearly email service 2026-03-10 13:11:20 +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 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 4ac1bc78ab automatically delete S3 files which are over 1 year 2026-03-04 14:04:13 +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 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
Yinyin Liu 78b9c2dc72 generate monthly and yearly report based on xlsx files 2026-02-27 11:48:05 +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 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 2f8eda5e7e build easy form to collect sodistore home alarm diagnosis review 2026-02-25 06:48:23 +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 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 6460328eb0 Safe mode for AI diagnostics, align alarm keys with device enums, and multi-diagnosis frontend
- Remove API key gate so knowledge base works without Mistral key
- Return 204 No Content instead of 500 when no diagnosis available
- Rewrite AlarmKnowledgeBase keys to match Sinexcel property names and Growatt enum names
- Fix SQLite OrderBy crash in DiagnosticService
- Frontend: show latest 3 unique alarms with independent expand/collapse and handle 204

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 11:32:49 +01:00
Yinyin Liu 2da2ded84c Merge branch 'main' into integrated_AI 2026-02-12 07:45:22 +01:00
Yinyin Liu 68f4006f55 Switch AI diagnostics from OpenAI to Mistral and use .env for API key
- Changed API endpoint to api.mistral.ai, model to mistral-small-latest
- Replaced openAiConfig.json with .env file for secure API key storage
- Added .env loader in Program.cs, added .env to .gitignore

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 07:45:16 +01:00
Yinyin Liu 1b6d5a5916 added Overview Page without last week button for SodistoreHome 2026-02-11 13:30:34 +01:00
Yinyin Liu e7f8aacc34 Integrate AI on Alarm 2026-02-06 12:57:12 +01:00
Yinyin Liu 617ab2f782 fixed the bug of Sodistore Home Product not show on side bar and added related backend logs and more accurate frontend error messages 2026-02-03 13:52:20 +01:00
Yinyin Liu bcaac92e34 Fixed Monitor Mailer Issue and added debug logs 2026-02-02 10:20:33 +01:00
Yinyin Liu 4b35fca8f2 fixed Configuration timestamp issue when added to History of Action 2025-11-19 11:22:44 +01:00
Yinyin Liu e4674b41e5 added product_based configuration in the backend of the monitor 2025-10-20 16:32:47 +02:00
Noe 3795287124 Fixed bug in status update in Backend, update controller to support remote configuration for SodistoreHome installations 2025-09-25 15:07:28 +02:00
Noe 076dcda4a2 Update backend to support SodioHome installations, update backend controller to support new user access management features 2025-09-01 13:05:39 +02:00
Noe cf9c96377f Update SodistoreMax code.
Fixed the product to value 3 when sending heartbits.
Deleted prints during aggregation
Updated backend code to support SodistoreMax
2025-04-29 15:08:06 +02:00
Noe d6267952e9 Frontend supports json for salidomo 2025-02-21 15:25:40 +01:00
Noe ac54fc6e2e frontend ready to implement topology view for sodiohome 2025-01-23 14:33:21 +01:00
Noe 25310a4250 frontend ready to implement index.tsx for Sodiohome 2025-01-21 09:24:35 +01:00
Noe 7045648622 updated frontend-backend 2025-01-14 13:56:12 +01:00
Noe f03325a6a2 Update logos in frontend
Fixed delete installation method (delete read/write keys, read/write roles, buckets)
Fixed bug in not-connected installation in frontend
2024-11-28 14:43:47 +01:00
Noe 29a0071881 Updated dbus-fzsonic script for Cerbo and Venus
Fixed main stats in front end
2024-08-16 09:40:19 +02:00
Noe 7db44785be Inserted folder view in backend-frontend
Clients can have access to both products
Apply 20min chunk logic for Salidomo installations
2024-08-12 09:48:16 +02:00
Noe a47314bdf5 Fixed bug when deleting an installation
Set date button works using s3cmd
2024-08-05 16:31:57 +02:00
Noe cce3a6f9bd Enabled set date button in front end
Use s3cmd in backend to search the corresponding timestamps
2024-08-02 16:15:12 +02:00
Noe 95798ba904 History of actions testing mode is enabled in the backend.
All the other connections are updated through the websocket manager
Fixed bug with status value in the front-end
2024-07-23 14:52:10 +02:00
Noe 44f9fb7f7d Fixed bug in database backup.
Updated view with icons in history actions
Increased performance when deleting an action
2024-07-18 11:38:15 +02:00
Yinyin Liu ce50b7ef3e test: edit user action backend 2024-07-18 09:37:40 +02:00
Yinyin Liu 40ba5c7bba backend for download battery log button 2024-07-11 13:56:13 +02:00
Yinyin Liu 7f5ea79d16 add backend codes for upload bms firmware 2024-06-27 12:01:01 +02:00
Noe abe69193e2 Updated backend to provide support for the overview tab
Updated frontend to parse chunks
2024-06-26 17:05:27 +02:00
Noe 48de0805b9 Add history button 2024-06-18 16:19:40 +02:00
Yinyin Liu 9e15be4aae Add Record User Action Backend 2024-06-11 14:31:08 +02:00
Noe ccec20432b Inserted select button to select firmware version. 2024-04-30 14:07:50 +02:00