Commit Graph

1522 Commits

Author SHA1 Message Date
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 4d0d446686 add alarm AI diagnosis demo panel 2026-02-18 16:55:03 +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
Yinyin Liu e35ad1d9d7 Merge branch 'main' of 91.92.155.224:Innovenergy/Innovenergy_trunk 2026-02-16 15:10:04 +01:00
Yinyin Liu ba20f35735 added Installation SN in SodistoreHome list page on monitor 2026-02-16 15:09:50 +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
atef 848d821c6c add the oldK2 for Tschireen 2026-02-13 10:03:48 +01:00
atef f897d49106 add release flag for deploy sinexcel 2026-02-13 10:03:05 +01:00
atef f821c7c645 Update main function for deligreen 2026-02-13 10:02:48 +01:00
atef 27d671d2f4 Update main function for growatt 2026-02-13 10:02:15 +01:00
atef 15ef53903f Update version number 2026-02-13 10:01:17 +01:00
atef f696424a71 Update the version number for SodiStoremax 2026-02-13 09:45:28 +01:00
atef fc79441c10 add the tschireen relay exception 2026-02-13 09:41:17 +01:00
atef 105a4e59f5 Add clear buffer for serialPort 2026-02-13 09:40:57 +01:00
atef bc130ea99c Add alarm and error sinexcel 2026-02-13 09:40:37 +01:00
atef 3b32b8a6dc update the config file sinexcel 2026-02-13 09:40:21 +01:00
atef 6c0271e70c update Modbus Library to achieve clear buffers regularly 2026-02-13 09:36:49 +01:00
atef 4c94238188 add mapping of the error and warning growatt 2026-02-13 09:36:12 +01:00
atef 07ede85347 Add Valerio Meter library 2026-02-13 09:35:17 +01:00
atef 5fd533419b add control permession for growatt project 2026-02-13 09:34:42 +01:00
atef 75eb7f3055 add deploy script for Kaco 2026-02-13 09:33:54 +01:00
atef 95270bb5d1 Create A sync my release file to have CI/CD sinexcel deployement 2026-02-13 09:33:41 +01:00
atef 2cf5ed4b95 Create Kaco project 2026-02-13 09:33:07 +01:00
atef bd572b4ed1 Update Amax register and put coils as writable as default.
new function to clear buffers.
Add old K2 variable as Tschireen have problem with Relay 23. Now its relay 22
2026-02-13 09:31:39 +01:00
atef 8c2a360ba3 Merge remote-tracking branch 'origin/main' 2026-02-13 09:29:19 +01:00
atef 08fcd7496f Add Alarm and Warning to sinexcel product.
Add time charge and discharge and control permession to config file
2026-02-13 09:29:08 +01:00
Yinyin Liu 4d6a2fdd4d Add .env to gitignore to prevent committing secrets
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 11:45:06 +01:00
Yinyin Liu 02d2ef054b fix Mode reading on OverView Page from Inverter reading 2026-02-12 11:39:39 +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 0c918e86ae Fix build errors: FrozenDictionary (.NET 8) and Flurl 3.x API compatibility
- Replace FrozenDictionary with IReadOnlyDictionary for .NET 6 compat
- Use WithHeader instead of SetHeader for Flurl.Http 3.2.4
- Fix FlurlHttpException error logging for Flurl 3.x

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-12 07:55:43 +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 ed1efbddeb added Main Stats on Battery View page for SodistoreHome 2026-02-11 14:28:11 +01:00
Yinyin Liu 1b6d5a5916 added Overview Page without last week button for SodistoreHome 2026-02-11 13:30:34 +01:00
Yinyin Liu 2895b11efc made Battery SN automatically filled by Scanner and keep the memory of it when the Battery Number changes 2026-02-10 14:32:46 +01:00
Yinyin Liu 988b714d57 improved Configurtaion page responsiveness in frontend 2026-02-06 15:02:56 +01:00