Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FEMS Backports 2024-07 #2727

Merged
merged 31 commits into from
Jul 31, 2024
Merged

FEMS Backports 2024-07 #2727

merged 31 commits into from
Jul 31, 2024

Conversation

sfeilmeier
Copy link
Contributor

@sfeilmeier sfeilmeier commented Jul 31, 2024

Common/General

  • Gradle: automate version update for android build.gradle
  • Controller.Ess.Limiter14a: Edge Controller and UI visualization for "dimming" according to German law §14a EnWG

OpenEMS Backend

  • Performance optimizations
    • Drop PerMessageDeflate because it has bad effects on performance with a high number of connected Edges
    • Add a copy of Draft6455 which does not throw an exception internally
    • Reduce Exceptions
    • OnOpen: no unnecessary parsing of handshake + do not throw Exception
    • Parse JsonrpcMessage inside Executor Thread
    • sendMessage by default never throws Exception
    • use StringBuilders where feasible
    • throw the same Exception for all disposed requests in WsData
  • InfluxDB: remove filter for sunspec channels
  • Metadata: add handling of "ems type"
  • Aggregated Influx: add channels for ctrlEssLimiter14a0
  • Cleanup logs:
    • "No measurement provided for zoneId"
    • "Channels missing in Current-Data "
  • WsData:
    • handle failed send message
    • set WsData.WebSocket via constructor
  • Change debugLog interval to 5 seconds
  • Replace run() with standard method names
  • Add internal WebsocketPerformanceTestApp
  • Drop now unused Websocket DebugMode

OpenEMS Edge

  • Home Battery:
    • fix calculation of number of towers
    • handle tower exceptionally not 0/null for some bms versions
    • downgrade uncritical states to INFO
  • Battery-Protection: add SoC-to-Percent characteristics & implement for FENECON Home Battery
  • KACO Battery-Inverter: optimize state machine handling
  • MR Gridcon: move obsolete bundle to archive
  • Translation keys for timedata category

OpenEMS UI

  • Fix Nullpointer thrown through chart.js after failed query.
    • Apparently chartjs not having completely rendered datasets and property borderColor was missing
  • Extend vscode extensions with 18n ally
    • add i18n ally to vscode extensions
  • Fix ChartJs yAxis scaling for only 0 values in data series
    • Chartjs y-axis Scaling for only null or/and 0 values in data series results in doing negative and positive scaling
  • Add missing redirect after token expired
    • Token expired, old route got reloaded, no redirection to /login
  • Add Power-Assistant
    • Add Power-Assistant to UI Settings
    • Show relevant channels for power constraints; sorted by Scheduler
    • Cleanup Settings + separate ADMIN widgets
  • Add subnavigation to consumption history
    • restructured overdue shared folder
    • added current and voltage chart (only visible for Role.INSTALLER to consumption and production history
    • added subnavigation to consumption history
  • Add missing module for angular date picker
    • Add missing import for pickdatepopovercomponent, unittest will follow soon
  • Fix live modal visualization of meters
  • Add Unittest for angular-my-date-picker
    • Testing if button click is opening calendar or rather if this component exists in the DOM after button click
  • Move Helpbutton to its right module
  • Prepare platform check to login page
  • Fix other consumption calculation
    • Adding unittest for calculation of other consumption
    • Fixing wrong calculation of other consumption for multiple evcs and consumptionMeters
  • Refactor gridOptimizedCharge history
  • Replace global role with edge role check
    • /settings: replacing check for global Role with edge Role
    • Add unittest for role in /settings
  • Live-EnergyMonitor: use new sum Max/Min ESS DischargePower channels
  • refactor variables and methods in right order
    • Refactors every variable and method to member-ordering rule.
    • See: [https://typescript-eslint.io/rules/member-ordering/]

Co-authored-by: Sebastian Asen [email protected]
Co-authored-by: Lukas Rieger [email protected]
Co-authored-by: Johann Kaufmann [email protected]
Co-authored-by: Michael Grill [email protected]
Co-authored-by: Jonas Ernst [email protected]
Co-authored-by: Stefan Feilmeier [email protected]
Co-authored-by: Hueseyin Sahutoglu [email protected]
Co-authored-by: Fabian Brandtner [email protected]
Co-authored-by: Anas Shetla [email protected]

sfeilmeier and others added 30 commits July 31, 2024 12:12
Reviewed-by: Michael Grill <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-committed-by: Sebastian Asen <[email protected]>
- Handle Nullpointer thrown through chart.js after failed query.

Apparently chartjs not having completely rendered datasets and property borderColor was missing

Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- add `i18n ally` to vscode extensions

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Chartjs y-axis Scaling for only null or/and 0 values in data series results in doing negative and positive scaling

Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Token expired, old route got reloaded, no redirection to `/login`

Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Add Power-Assistant to UI Settings
- Show relevant channels for power constraints; sorted by Scheduler
- Cleanup Settings + separate ADMIN widgets

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
- restructured overdue shared folder
- added current and voltage chart (only visible for Role.INSTALLER to consumption and production history
- added subnavigation to consumption history

Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Translation category for Timedata

Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
Add missing import for pickdatepopovercomponent, unittest will follow soon

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Adding Unittest for [angular-my-date-picker](https://github.com/nodro7/angular-mydatepicker)
    - Testing if button click is opening calendar or rather if this component exists in the DOM after button click
- Moving Helpbutton to its right module

Reviewed-by: Sagar Venu <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Co-authored-by: Jonas.Ernst <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-committed-by: Sebastian Asen <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Adding unittest for calculation of other consumption
- Fixing wrong calculation of other consumption for multiple evcs and consumptionMeters

Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Refactoring of gridOptimizedCharge

Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Hueseyin Sahutoglu <[email protected]>
Co-committed-by: Hueseyin Sahutoglu <[email protected]>
- /settings: replacing check for global Role with edge Role

Reviewed-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Salma El Khalfaoui <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Restore old formatNumber in gridOptimizedChargeChart

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Fabian Brandtner <[email protected]>
- Reintroduce of platform check -> dont reload if platform is web

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Anas Shetla <[email protected]>
Co-committed-by: Anas Shetla <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Requirement for §14a EnWG

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-committed-by: Fabian Brandtner <[email protected]>
- Performance optimizations
  - Drop PerMessageDeflate because it has bad effects on performance with a high number of connected Edges
  - Add a copy of Draft6455 which does not throw an exception internally
  - Reduce Exceptions
  - OnOpen: no unnecessary parsing of handshake + do not throw Exception
  - Parse JsonrpcMessage inside Executor Thread
  - sendMessage by default never throws Exception
  - use StringBuilders where feasible
  - throw the same Exception for all disposed requests in WsData
- InfluxDB: remove filter for sunspec channels
- Metadata: add handling of "ems type"
- Aggregated Influx: add channels for ctrlEssLimiter14a0
- Cleanup logs:
  - "No measurement provided for zoneId"
  - "Channels missing in Current-Data "
- WsData:
  - handle failed send message
  - set WsData.WebSocket via constructor
- Change debugLog interval to 5 seconds
- Replace run() with standard method names
- Add internal WebsocketPerformanceTestApp
- Drop now unused Websocket DebugMode

Co-authored-by: Michael Grill <[email protected]>
…r FENECON Home Battery

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-committed-by: Sebastian Asen <[email protected]>
- Downgrade uncritical states to INFO

Reviewed-by: Sebastian Asen <[email protected]>
- Refactors every variable and method to member-ordering rule.
- See: [https://typescript-eslint.io/rules/member-ordering/]

Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-committed-by: Fabian Brandtner <[email protected]>
- Hide second yAxis if no controller14a is part of the edgeConfig or is not enabled

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Copy link

codecov bot commented Jul 31, 2024

Codecov Report

Attention: Patch coverage is 16.50571% with 951 lines in your changes missing coverage. Please review.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #2727      +/-   ##
=============================================
+ Coverage      50.70%   56.05%   +5.36%     
- Complexity      8042     8047       +5     
=============================================
  Files           2100     2059      -41     
  Lines          96427    87504    -8923     
  Branches        6530     6417     -113     
=============================================
+ Hits           48880    49043     +163     
+ Misses         45851    36777    -9074     
+ Partials        1696     1684      -12     

@sfeilmeier sfeilmeier merged commit ebcf244 into develop Jul 31, 2024
3 of 4 checks passed
@sfeilmeier sfeilmeier deleted the feature/fems-backport branch July 31, 2024 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant