Commit Graph

825 Commits

Author SHA1 Message Date
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
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 3b32b8a6dc update the config file sinexcel 2026-02-13 09:40:21 +01:00
atef 4c94238188 add mapping of the error and warning growatt 2026-02-13 09:36:12 +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 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 1b6d5a5916 added Overview Page without last week button for SodistoreHome 2026-02-11 13:30:34 +01:00
Yinyin Liu e16fa59771 removed useless db 2026-02-06 14:40:26 +01:00
Yinyin Liu e7f8aacc34 Integrate AI on Alarm 2026-02-06 12:57:12 +01:00
Yinyin Liu ed87a4b371 suggested fix of sending new errors/ alarms when the state stays red/orange 2026-02-03 14:52:06 +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 d73a85c38d enabled Control Permission for Sinexcel on monitor in frontend 2026-02-03 13:29:18 +01:00
atef 8a2be78c01 Merge remote-tracking branch 'origin/main' 2026-02-03 09:21:22 +01:00
Yinyin Liu 1083bb4091 Update Installation data type and fix solution file 2026-02-02 18:19:07 +01:00
Yinyin Liu bcaac92e34 Fixed Monitor Mailer Issue and added debug logs 2026-02-02 10:20:33 +01:00
Yinyin Liu 77e25aab51 added TimeChargeandDischargePower in backend 2025-12-10 15:21:43 +01:00
Yinyin Liu a1f981a13e added Start/StopTimeChargeandDischargeDayandTime in bakcend 2025-12-10 14:11:39 +01:00
Yinyin Liu da037b7f5a added Control Permission for Growatt configuration in backend 2025-12-03 13:27:00 +01:00
Yinyin Liu 2c50d0944c added Cluster and PV number for SodistoreHome in backend 2025-11-26 15:52:11 +01:00
Yinyin Liu 4b35fca8f2 fixed Configuration timestamp issue when added to History of Action 2025-11-19 11:22:44 +01:00
atef 615c1939a2 update aggregator on sodistormax and salimax 2025-11-18 02:37:37 +01:00
atef 79b7563401 update program.cs to debug 2025-11-18 02:30:49 +01:00
atef 29166e1ada delete unecessary lines 2025-11-18 02:30:03 +01:00
atef ca08d8d6de update to max pv production 2025-11-18 02:29:51 +01:00
Yinyin Liu 0df6c26ed6 Added BatteryClusterNumber attribute in backend 2025-11-17 12:19:20 +01:00
Yinyin Liu 13844ebf05 removed SodistoreMax Calibration Discharge Configuration info on History of Action from backend 2025-11-13 14:19:56 +01:00
atef d067c5a57d Update the AcDCgrowaat and sinexcle with common name for the front end : InverterRecord 2025-11-12 16:09:22 +01:00
atef f40f0be056 Delete salimax device not needed 2025-11-12 16:00:26 +01:00
atef 231069768e Naming Sinexcel inverter to recordinverter 2025-11-12 15:59:12 +01:00
atef b122177e61 Update the growattACDC to inverter Record 2025-11-12 15:58:37 +01:00
atef ce62bb5687 delete device state for sinexcel project. not needed 2025-11-12 15:55:31 +01:00
atef 92b9265a67 update the mideelwareagent message for sunexcel project 2025-11-12 15:54:41 +01:00
atef 3f354ed2bb Update the message for of middleware agent for growatt project 2025-11-12 15:54:22 +01:00
atef 7d6bf1b991 Update the configuration for rowatt project 2025-11-12 15:53:15 +01:00
atef 44f5841bd4 Update the Configuration for RabbitMQ manager. for sinexcel project 2025-11-12 15:52:53 +01:00
atef c496f9b398 Update the config file for Sinexcel project 2025-11-12 15:52:29 +01:00
atef 8b4d40f85e Update the aggregator path for PV. 2025-11-12 15:52:01 +01:00
Yinyin Liu d91090965d fixed configuration message format 2025-10-30 08:20:20 +01:00
Yinyin Liu e4674b41e5 added product_based configuration in the backend of the monitor 2025-10-20 16:32:47 +02:00
atef 59652425cd Change String and url to be private 2025-10-20 15:00:38 +02:00
atef 2f0134d22f Increase the minimum charge current to 20 A by battery when there is monomerLowVoltage or high Voltage 2025-10-20 15:00:11 +02:00
atef b9a7c0859a Update the main program.cs for Growatt : More display and comment 2025-10-20 14:58:11 +02:00
atef 5e45e51357 Merge remote-tracking branch 'origin/main' 2025-10-20 14:57:15 +02:00
atef b1b307a12f Update Middelware classes for growatt 2025-10-20 14:57:04 +02:00
atef 84b8446ec3 Update Configuration file for Growatt systems 2025-10-20 14:56:31 +02:00
atef 711f054a06 New project sinexcel 2025-10-20 14:56:12 +02:00
Yinyin Liu 692a278f04 added inverterSN and dataloggerSN for sodistorehome in backend 2025-10-14 16:11:31 +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
atef 0aae239551 add the operating mode to the description 2025-09-18 12:40:03 +02:00