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 2023-04 #2623

Merged
merged 28 commits into from
Apr 29, 2024
Merged

FEMS Backports 2023-04 #2623

merged 28 commits into from
Apr 29, 2024

Conversation

sfeilmeier
Copy link
Contributor

No description provided.

sfeilmeier and others added 28 commits April 28, 2024 22:24
- removing stepSize calculation due to chartjs breaking style in some circumstances
- keeping max ticks limit at 6

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]>
Removing dead link from ChpSoc (BHKW) Widget in 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]>
- Update Kaco Blueplanet Gridsave state-machine
- Add grid disconnection failure state channel

Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Huseyin Sahutoglu <[email protected]>
Co-committed-by: Huseyin Sahutoglu <[email protected]>
Migration of Ionic Slides according to [Migration Guide](https://ionicframework.com/docs/angular/slides)

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: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Warning for persistencePriority lower than backends global priority, was also shown for equals

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]>
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]>
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]>
- Update auf Angular Version 16.

**Technical description**

- Replacing [kekeh/angular-mydatepicker](https://github.com/kekeh/angular-mydatepicker) with its fork [nodro7/angular-mydatepicker](https://github.com/nodro7/angular-mydatepicker)

Co-authored-by: Sagar Venu <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Tibber Filter could not be unset

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Hueseyin Sahutoglu <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Optimierungen und Fehlerbehebungen am Online-Monitoring.

**Technical description**
- change the resolution to15 instead of 20

Co-authored-by: Stefan Feilmeier <[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]>
- Hiding FooterComponent for [history Children](https://git.intranet.fenecon.de/FENECON/fems/src/commit/9d4006ba912bf7653c300321aec56b10ced2faec/ui/src/app/app-routing.module.ts#L87) due to overlapping on different heights
   > [Footercomponent overlapping content](https://forum.ionicframework.com/t/ion-footer-overlap-content/109487/6).

   > [Chartjs -> responsive charts](https://www.chartjs.org/docs/latest/configuration/responsive.html#important-note) approach of setting fixed height is causing the problem,
       ```onZoom``` event doesnt resize the charts canvas and chart canvas gets moved down into the footer

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
…e parsing SunSpec

**Technical description**

- Remove unnecessary `throws OpenemsException` and `try...catch` in certain places (`defineModbusProtocol()`, `new ModbusProtocol()`, `addTask()`,...)
- Optionally provide `ExecuteState` of an entire ModbusTask; this allows for more fine-grained evaluation of read errors
- Improve parsing of SunSpec protocol; especially handle missing END_OF_MAP register in SMA (throws ILLEGAL_ADDRESS_EXCEPTION instead)
- Switch to updated `readElementOnce` and/or improve brevity of `CompletableFuture` by using `thenCompose` instead of `thenAccept` in...
  - BatterySoltaroSingleRackVersionBImpl, BatterySoltaroSingleRackVersionCImpl, BatterySoltaroClusterVersionCImpl
  - BydBatteryBoxCommercialC130Impl
  - **BatteryFeneconHomeImpl**
  - **AbstractGoodWe, GoodWeGridMeterImpl**
  - AbstractEdge2Edge, Edge2EdgeEssImpl
  - IoWeidmuellerUr20Impl
  - **AbstractSocomecMeter**

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Introduce new Bundles for `Energy` and `Energy API`
- Move Optimizer (i.e. all Jenetics related code) to `Energy`
- New Channel `_sum/GridBuyPrice`
- UI: show data in [kW] and cleanup code

Reviewed-by: Michael Grill <[email protected]>
Before, the ComponentManager would report an error if there was no TimeOfUseTariff activated.
- fix querying data with different resolution than 5 Minutes

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
GoodWeChargerTwoStringImpl was used to represent one string from a GoodWe MPPT tracker that is responsible for two strings (GoodWe ET-Systems).

 Possible values given by GoodWe are:
 * MPPT Current
 * MPPT Power
 * String Current
 * String Voltage

As the current values of one string are incorrect (so far DSP-Version 12, ARM-Version 27) the power cannot be calculated as expected.

A new Component GoodWeChargerMpptTwoStringImpl is mirroring the GoodWe values to get the important values from
 * MPPT Current
 * MPPT Power
 * String Voltage (One of the two strings)

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-committed-by: Sebastian Asen <[email protected]>
. Modified the IBN based on mockup given by Tobi (attached the file).
. Added a unified MPPT instead of individual string fields.
. Modified the pictures for selecting MPPT's

Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
- Revert adding detail navigation to production history caused by merging

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- Another step towards *strict mode* in UI
- Add `typescript-strict-plugin` -> https://github.com/allegro/typescript-strict-plugin
- Add `tsc` and `tsc-strict` to CI build
- Add `// @ts-strict-ignore` comment in non-compliant code files

Reviewed-by: Lukas Rieger <[email protected]>
- Fix Page count of edges pagination on initial search

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]>
- Set Home ChargeMaxVoltage & DischargeMinVoltage
- Handle inverter specific behaviour on empty/full battery

Co-authored-by: Sebastian Asen <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
…orts

# Conflicts:
#	io.openems.edge.controller.ess.timeofusetariff/src/io/openems/edge/controller/ess/timeofusetariff/TimeOfUseTariffControllerImpl.java
#	io.openems.edge.core/src/io/openems/edge/core/appmanager/dependency/aggregatetask/ComponentAggregateTaskImpl.java
Copy link

Code Coverage

@sfeilmeier sfeilmeier merged commit 6bb25c7 into develop Apr 29, 2024
2 checks passed
@sfeilmeier sfeilmeier deleted the feature/fems-backports branch April 29, 2024 08:54
text-align: center;
}
font-size: 14px !important;
ion-row {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Causes:

Warning: ▲ [WARNING] A nested style rule cannot start with "ion-row" because it looks like the start of a declaration [css-syntax-error]

    C:/Users/User/Desktop/openems-2024.2.0_ORIGINAL/ui/src/app/shared/footer/footer.ts-angular-inline--3.css:13:6:
      13 │       ion-row {
         │       ~~~~~~~
         ╵       :is(ion-row)

  To start a nested style rule with an identifier, you need to wrap the identifier in ":is(...)" to prevent the rule from being parsed as a declaration.


ion-item {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Causes:

`Warning: ▲ [WARNING] A nested style rule cannot start with "ion-item" because it looks like the start of a declaration [css-syntax-error]

C:/Users/User/Desktop/openems-2024.2.0_ORIGINAL/ui/src/app/shared/footer/footer.ts-angular-inline--3.css:16:6:
  16 │       ion-item {
     │       ~~~~~~~~
     ╵       :is(ion-item)

To start a nested style rule with an identifier, you need to wrap the identifier in ":is(...)" to prevent the rule from being parsed as a declaration.`

fanass-dev pushed a commit to fanass-dev/openems that referenced this pull request May 6, 2024
- Backend
  - Add API for Simulation-Engine Component
    - In future this should be used for scenario simulations, like what would have been the benefit of using an additional battery module

- Common
  - Change Unit `EUROS_PER_MEGAWATT_HOUR` to `MONEY_PER_MEGAWATT_HOUR`
  - Prepare-commit: add UI build+test to script
    - "Coding Guidelines" should also cover UI development (https://openems.github.io/openems.io/openems/latest/contribute/coding-guidelines.html#_openems_edge_backend)
  - CI: Update node to v20 LTS

- Edge
  - Modbus-Bridge:
    - Improve SunSpec handling for SMA PV-Inverter: certain versions do not provide END_OF_MAP but throw ILLEGAL_ADDRESS_EXCEPTION instead, causing the previous SunSpec implementation to get stuck while parsing
    - Remove unnecessary `throws OpenemsException` and `try...catch` in certain places (`defineModbusProtocol()`, `new ModbusProtocol()`, `addTask()`,...)
    - Optionally provide `ExecuteState` of an entire ModbusTask; this allows for more fine-grained evaluation of read errors
   - Switch to updated `readElementOnce` and/or improve brevity of `CompletableFuture` by using `thenCompose` instead of `thenAccept` in...
  - RRD4j: correctly postprocess queried data
    - fix querying data with different resolution than 5 Minutes

  - Time-of-Use: split Optimizer and Controller
    - Introduce new Bundles for `Energy` and `Energy API`
    - Time-of-Use-Controller and EnergyScheduler are still tightly coupled for now, as this is an ongoing refactoring. Eventually they should only communicate via `EnergySchedulable`
    - Move Optimizer (i.e. all Jenetics related code) to `Energy`
    - New Channel `_sum/GridBuyPrice`
    - UI: show data in [kW] and cleanup code
    - Tibber: Homes-Filter could not be unset

  - KACO Blueplanet Gridsave BatteryInverter: state-machine improvement
    - Update Kaco Blueplanet Gridsave state-machine
    - Add grid disconnection failure state channel
    - Replace `MAX_START_ATTEMPTS` with `MAX_START_TIMEOUT`

  - GoodWe
    - Optionally show values per MPPT; not per String
      - GoodWeChargerTwoStringImpl was used to represent one string from a GoodWe MPPT tracker that is responsible for two strings (GoodWe ET-Systems).
      - Possible values given by GoodWe are: MPPT Current, MPPT Power, String Current, String Voltage
      - As the current values of one string are incorrect (so far DSP-Version 12, ARM-Version 27) the power cannot be calculated as expected.
      - A new Component GoodWeChargerMpptTwoStringImpl is mirroring the GoodWe values to get the important values from: MPPT Current, MPPT Power, String Voltage (One of the two strings)
    - Update BMS Registers ChargeMaxVoltage & DischargeMinVoltage
       - Set ChargeMaxVoltage & DischargeMinVoltage
       - Handle inverter specific behaviour on empty/full battery

- UI
  - Add optional strict mode
    - Another step towards *strict mode* in UI
    - Add `typescript-strict-plugin` -> https://github.com/allegro/typescript-strict-plugin
    - Add `tsc` and `tsc-strict` to CI build
    - Add `// @ts-strict-ignore` comment in non-compliant code files
  - Update to Angular Version 16.
    - Replacing [kekeh/angular-mydatepicker](https://github.com/kekeh/angular-mydatepicker) with its fork [nodro7/angular-mydatepicker](https://github.com/nodro7/angular-mydatepicker)
  - Revert calculating stepSize for charts
    - Removing stepSize calculation due to chartjs breaking style in some circumstances
    - keeping max ticks limit at 6
  - Change resolution from 20 to 15 minutes
  - Remove dead link from ChpSoc (BHKW) Widget in history
  - Settings|Channels: fix Persistence Priority warning
    - Warning for persistencePriority lower than backends global priority, was also shown for equals
  - Hide FooterComponent for [history Children](https://git.intranet.fenecon.de/FENECON/fems/src/commit/9d4006ba912bf7653c300321aec56b10ced2faec/ui/src/app/app-routing.module.ts#L87) due to overlapping on different heights
     - [Footercomponent overlapping content](https://forum.ionicframework.com/t/ion-footer-overlap-content/109487/6).
     - [Chartjs -> responsive charts](https://www.chartjs.org/docs/latest/configuration/responsive.html#important-note) approach of setting fixed height is causing the problem, `onZoom` event doesnt resize the charts canvas and chart canvas gets moved down into the footer
  - Footer: fix esLint autofix mistake; hide for history detail views
  - Revert adding detail navigation to production history (this is a planned feature that was accidentially merged)
  - Fix Page count of edges pagination on initial search
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.

2 participants