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-03 #2593

Merged
merged 35 commits into from
Mar 28, 2024
Merged

FEMS Backports 2023-03 #2593

merged 35 commits into from
Mar 28, 2024

Conversation

sfeilmeier
Copy link
Contributor

No description provided.

sfeilmeier and others added 30 commits March 28, 2024 11:29
- Add third y-axis (second right y-axis) for GridBuy

Co-authored-by: Sagar Venu <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
- added app
- added to scheduler
- created formly datetime builder

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
A special case-handler is added that handles http status error 429 and schedules next execution 12 hours later.

Co-authored-by: Sagar Venu <[email protected]>
Reviewed-by: Hueseyin Sahutoglu <[email protected]>
Use bigger resolution for day and week for smartphone to enable better readability

Technical description...
| View | smartphone or desktop | Aggregation
| --- | --- | --- |
| day | Smartphone | 20 min aggregated Data |
| day | Desktop | 5 min aggregated Data |
| week | Smartphone | 8 hours aggregated Data |
| week | Desktop | 1 hour aggregated Data |

- Backend query has to be adjusted due to wrong timestamps!

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Add [WOODPECKER_ENVIRONMENT](https://woodpecker-ci.org/docs/usage/environment#global-environment-variables);
Run checkstyle before build

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
- Add Permission Role to set which Role is required to delete an App Instance
- Currently CanSeeRole == CanDeleteRole so there is no UI change neccesarry to add a special request to hide/show/disable delete button.

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Hueseyin Sahutoglu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
If a access token is set in the Tibber Provider it will be displayed as "xxx" and shown directly as a clear text token and can not be accessed from the ui in clear text.
If the token wont get modified and stays at "xxx" it wont get updated and the old token remains in the provider configuration.

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Hueseyin Sahutoglu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Hueseyin Sahutoglu <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
* adding maintenance to /system
* Available only for admins at first
* Systemupdate renamed to system now including maintenance

Co-authored-by: Lóránt Meszlényi <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Show warning in /channels if global persistence priority is bigger than channel persistence priority

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Updating the last changed state time onExit approach was using wrong.
The last changed time is taking actually from previous state.

For an instance:
* As the controller started; goes first to Undefined State then onExit set the lastStateChangeTime.
* Aftwerwards keep charges the system till it gets fully charged.

* At the end of the 'START_CHARGE' state, if the fully charged conditions fullfilled, controller tries to wait before it switches the state, according to the given 'standbyTime' in config.

* However, in context 'waitForChangeState' method proofs whether the wait time achieved or not.
* But here; 'getLastStateChangeTime' method gives the time that actually what is in 'Undefined-onExit' set.

* So, if the charge process takes more time than given 'standbyTime', state switching will be approved and state will change to 'Continue_Discharge' immediately.

Co-authored-by: Hueseyin Sahutoglu <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
correcting wrong Ports

Co-authored-by: Anas Shetla <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
<!-- Technical description of changes -->
Technical description...
History Popover only showing custom period

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Create type for periodString values

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Align Buttons to right side in System view for consistency
- Adjusting the EMS System View to align line with single button to the right
- Cleanup alertController style adjustments

Co-authored-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Updated redirect link to update page from AppCenter and live storage modal

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
<!-- Technical description of changes -->
- Reduce search space, by calculating later periods as hours and not quarters
- Improve calculation of charge power in CHARGE_GRID mode
- More and smarter Genotypes in initialPopulation
- Improved error handling
- New EnergyFlow calculation + fix previsou calculation bugs
- Be default always apply §14a EnWG limit of 4.2 kW (configurable)

Co-authored-by: Stefan Feilmeier <[email protected]>
During the time that GoodWe's shadow management is active, we will not be able to discharge or charge the battery. During this time, the DC connection cannot work as usual.
This hasn't happened in recent months and years because we have only tried to set the register once and older GoodWe firmware versions may have had a different behaviour.

Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Set persistencePriority to HIGH for LEVEL for UI History Chart
removed unused UNDEFINED constant

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Wrong sign; mixed up positive/negatve values

Co-authored-by: Stefan Feilmeier <[email protected]>
- [x] "Homes" filter is ignored for parsing if there is only one home.
- [x] Added a check box to selct if there are multiple homes. Only then the filter field is displayed to enter.

Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
<!-- Technical description of changes -->
- Add second y-axis for GridBuy in StatePriceChart.

Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
<!-- Technical description of changes -->
- This currently happens on fems4 with EVCS test; causes a lot of logs in Backend log
- Validate `evcsComponent` and `this.controller` are actually available

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
1. Error code 400 is considered for authentication failure.
2. Added two new warn channels to differentiate between client and server error.
3. added new test cases to get next run.

Co-authored-by: Sagar Venu <[email protected]>
Reviewed-by: Hueseyin Sahutoglu <[email protected]>
Add popover when entering AppCenter and a registered key is available to notify the costumer to redeem it.
Also added badge how many keys are available

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Removed duplicate data while merging past and future schedule data.

Co-authored-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
- fix Log-Output, distinguish HOUR/QUARTERLY
- change content order in footer
- always add `edgeShortName` to browser title
- fix unsetting browser-title in overview

Co-authored-by: Stefan Feilmeier <[email protected]>
Remove line generated at bottom of ion-item in footer

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
sfeilmeier and others added 5 commits March 28, 2024 13:42
Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Maximilian Lang <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Copy link

Code Coverage

@sfeilmeier sfeilmeier merged commit a96262a into develop Mar 28, 2024
2 checks passed
@sfeilmeier sfeilmeier deleted the feature/fems-backport branch March 28, 2024 14:03
fanass-dev pushed a commit to fanass-dev/openems that referenced this pull request May 6, 2024
* ToU: optionally show Grid-Buy in history chart

  - Add third y-axis (second right y-axis) for GridBuy

* AppCenter: fixStateOfCharge App

  - added app
  - added to scheduler
  - created formly datetime builder

* Tibber: implement handling for rate limit (HTTP code 429)

  - A special case-handler is added that handles http status error 429 and schedules next execution 12 hours later.

* UI: Change chartjs resolution for mobile view

  - Use bigger resolution for day and week for smartphone to enable better readability

  - Technical description...
| View | smartphone or desktop | Aggregation
| --- | --- | --- |
| day | Smartphone | 20 min aggregated Data |
| day | Desktop | 5 min aggregated Data |
| week | Smartphone | 8 hours aggregated Data |
| week | Desktop | 1 hour aggregated Data |

- Backend query has to be adjusted due to wrong timestamps!

* CI: improvements

  - Add [WOODPECKER_ENVIRONMENT](https://woodpecker-ci.org/docs/usage/environment#global-environment-variables);
  - Run checkstyle before build

* AppCenter: Add definition to set min Role to delete an App & validation

  - Add Permission Role to set which Role is required to delete an App Instance
  - Currently CanSeeRole == CanDeleteRole so there is no UI change neccesarry to add a special request to hide/show/disable delete button.

* AppCenter Tibber: Access Token will be displayed as "xxx" if set

  - If a access token is set in the Tibber Provider it will be displayed as "xxx" and shown directly as a clear text token and can not be accessed from the ui in clear text.
  - If the token wont get modified and stays at "xxx" it wont get updated and the old token remains in the provider configuration.

* FENECON Home Battery: Calculate number of towers

* UI: Implement system reboot

  - adding maintenance to /system
  - Available only for admins at first
  - Systemupdate renamed to system now including maintenance

* Edge/UI: add persistencePriority to EdgeConfig

  - Show warning in /channels if global persistence priority is bigger than channel persistence priority

* Controller ESS Cycle: fix Standby Time

  - Updating the last changed state time onExit approach was using wrong.
  - The last changed time is taking actually from previous state.

  - For an instance:
    - As the controller started; goes first to Undefined State then onExit set the lastStateChangeTime.
    - Aftwerwards keep charges the system till it gets fully charged.

    - At the end of the 'START_CHARGE' state, if the fully charged conditions fullfilled, controller tries to wait before it switches the state, according to the given 'standbyTime' in config.

    - However, in context 'waitForChangeState' method proofs whether the wait time achieved or not.
    - But here; 'getLastStateChangeTime' method gives the time that actually what is in 'Undefined-onExit' set.

    - So, if the charge process takes more time than given 'standbyTime', state switching will be approved and state will change to 'Continue_Discharge' immediately.

* UI: README changes

  - correcting wrong Ports

* UI: Bugfix: Pickdatepopover not showing allowed historyPeriods

  - History Popover only showing custom period

* UI: Extend unittest for pickdatepopover

  - Create type for periodString values

* UI: Style improvements

  - Align Buttons to right side in System view for consistency
    - Adjusting the EMS System View to align line with single button to the right
    - Cleanup alertController style adjustments

* UI: Updated redirect link to update page

  - Updated redirect link to update page from AppCenter and live storage modal

* Time-of-Use: improvements

  - Reduce search space, by calculating later periods as hours and not quarters
  - Improve calculation of charge power in CHARGE_GRID mode
  - More and smarter Genotypes in initialPopulation
  - Improved error handling
  - New EnergyFlow calculation + fix previsou calculation bugs
  - Be default always apply §14a EnWG limit of 4.2 kW (configurable)

* GoodWe: Disable ShadowManagement

  - During the time that GoodWe's shadow management is active, we will not be able to discharge or charge the battery. During this time, the DC connection cannot work as usual.

* HeatingElement: Changed Persistence Priority for LEVEL to HIGH

  - Set persistencePriority to HIGH for LEVEL for UI History Chart
  - removed unused UNDEFINED constant

* Time-of-Use: bugfix §14a EnWG

  - Wrong sign; mixed up positive/negatve values

* Tibber: hide "homes" filter in App

  - "Homes" filter is ignored for parsing if there is only one home.
  - Added a check box to selct if there are multiple homes. Only then the filter field is displayed to enter.

* UI/Time-of-Use: optionally show Grid-Buy in Live schedule chart

  - Add second y-axis for GridBuy in StatePriceChart.

* UI EVCS: fix possible NPE

  - This currently happens on fems4 with EVCS test; causes a lot of logs in Backend log
  - Validate `evcsComponent` and `this.controller` are actually available

* Tibber: differentiate warnings based on HTTP status codes

  - 1. Error code 400 is considered for authentication failure.
  - 2. Added two new warn channels to differentiate between client and server error.
  - 3. added new test cases to get next run.

* UI/AppCenter: Add popover to notify costumer about unsued keys

  - Add popover when entering AppCenter and a registered key is available to notify the costumer to redeem it.
  - Also added badge how many keys are available

* Time-of-Use: fix duplicate data in GetScheduleResponse

  - Removed duplicate data while merging past and future schedule data.

* UI: Add footer for EMS-Nr., installed version and comment

* UI & Time-of-Use

  - fix Log-Output, distinguish HOUR/QUARTERLY
  - change content order in footer
  - always add `edgeShortName` to browser title
  - fix unsetting browser-title in overview

* UI: remove ion item line in footer

  - Remove line generated at bottom of ion-item in footer

* UI: Link footer version to /system

* Time-of-Use: bugfix for mixing up HOUR/QUARTER in JSONRPC-Response and Log

* Backend-Improvements

---------

Co-authored-by: Sagar Venu <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-authored-by: Hueseyin Sahutoglu <[email protected]>
Co-authored-by: Lóránt Meszlényi <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Anas Shetla <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Maximilian Lang <[email protected]>
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