Skip to content

FEMS Backports 2026-07-21#3837

Merged
sfeilmeier merged 20 commits into
developfrom
feature/fems-backports
Jul 21, 2026
Merged

FEMS Backports 2026-07-21#3837
sfeilmeier merged 20 commits into
developfrom
feature/fems-backports

Conversation

@sfeilmeier

@sfeilmeier sfeilmeier commented Jul 21, 2026

Copy link
Copy Markdown
Contributor
  • UI

    • [UI] fix history excel export Commit
    • [UI] General improvements Commit
    • [UI] Migration to angular 22 Commit
    • [UI] fixes for channel single threshold Commit
    • [UI] fix help links Commit
    • [UI] adjust button icon size Commit
    • [UI] Fix conversion of boolean value Commit
    • [UI] fix submit button positioning Commit
    • [UI] EVSE: fix app center vehicles Commit
    • [UI] NUI: Askoma & my-PV Commit
    • [UI] fix routing in for app install via keypopup Commit
  • Edge

    • [Edge] GoodWe support multiple batteries Commit
    • [Edge] FENECON Commercial 50 & 100 Apps: update default values for VDE4110 Commit
    • [Edge] BraiinsOS: allow configuration of three-phase Commit
    • [Edge] Add language to edge user Commit
    • [Edge] SocomecMeter App TCP/RTU support Commit
  • Common

    • [Common] Update Test SKILL.md to prefer JUNIT 6 Commit

sfeilmeier and others added 17 commits July 21, 2026 12:26
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Show charts on main Askoma page in a similar way as by storage.
_Notice: for the status chart if the status is no heating it shows no color._

We switched the heat mode chart to use Mode (OFF, FAST_HEAT, SURPLUS) as its source instead of STATE_MACHINE.
STATE_MACHINE includes technical runtime sub-states like FAST_HEAT_PROTECTION_PAUSE, while the chart is meant to show the configured/optimized base mode. Using Mode avoids enum value collisions (especially around 3) and fixes wrong labels in schedule data (e.g. mode: 3 being shown as pause instead of surplus).
This keeps the chart stable and easy to understand; detailed state-machine visualization can be added separately later.

Updated the heat status handling to avoid mixing two different data sources.

The live status still uses the real `Status` channel, so `TEMPERATURE_REACHED` is shown there when the device reports it. The chart uses `_energy/getSchedule`, which only contains mode and managed consumption. Since `0 W` can mean either “temperature reached” or simply “no surplus available”, the chart now shows it as “No heating” instead of guessing “Target temperature reached”.
Also fixed the heat status converter to match the backend `Status` enum values.

my-PV: read only app still works

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- Der Reiter App Center Fahrzeuge leitet einen jetzt wieder auf die korrekte Seite weiter.
- updated evse routing to query params
- changed route from `car/update/:appId` ->  `car/update`

---------

Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Small update of SKILL.md for writing tests. Prefer to change existing JUNIT 4 tests to JUNIT 6 if low risk and low effort.

Reviewed-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- There are Socomec meters that are working via modbus/TCP.
- Therefore there is a need that the Socomec App needs be extended in order to support either modbus/RTU (default) or modbus/TCP.
- Helper classes to make the App testing more natural.
- Also now can be tested if the app has only these properties
- In AppManagerAppHelperImpl there was an issue: The App Manager incorrectly assumes that `INTEGRATION_TYPE` contains the component ID and removes it. The configuration then defaults back to RTU during the next discovery step, so TCP_MODBUS_ID is never recognized as replaceable. Eventually, modbus2 remains selected and conflicts with the existing serial bridge.

Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
- fix wrong conversion in old time of use chart
- fix wrong conversion in storage settings of `isEssChargeFromGridAllowed` property of `_meta` not saving state as a boolean but a integer

When this toggle value was not changed but some other toggle or emergency reserve slider was changed, the `isEssChargeFromGridAllowed` was not written as `true|false` but as `1|0`

Reviewed-by: Martin Wagner <175+martin.wagner@noreply.www.fenecon.de>
Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- adjust icon size
- adjust responsive scaling of icons in chips to not be pushed smaller by overflowing text, but to stay the same size (new UI desktop)

Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Die ? Buttons in den Widgets funktionieren nun wieder korrekt (altes und neues UI)

- useDefaultPrefix now used correctly
- adjusted links to updated docs mapping

---------

Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Add shared `language` config param to all `Core.User` users

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Im neuen UI wurden bei der Schwellenwertsteuerung mehrere Fehler behoben

- added german translation
- fixed inverted inverter
- component property "outputChannelAddress" was handled as a string, but is an array

---------

Co-authored-by: DerMuaaa <102706922+Andreas Mur@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
- [Migration Guide](https://angular.dev/update-guide?v=20.0-22.0&l=1)
- Using nodejs version: v24.15.0
- typescript 6.03
- angular 22.0.5
- fixes #3835

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
- Add support for **Antminer S19 XP+ Hydro**
- Update JUnit tests to Jupiter

https://git.intranet.fenecon.de/FENECON/fems/pulls/3347
…E4110

- Commercial 50 and 100 App with new default values in VDE 4110 option

- updated default values for the needed properties in the GoodWePropertiesConfig file
- added new property in PropertyAttributes, that is a predicate to add check if the ConfigurtionTarget is Add or Updated for CP_RECONNECTION_GRADIENT and RPM_COS_PHIP_TIME_CONSTANT
- the reasoning behind is that for existing systems with a 4110 configuration, there will be a Validation Error. Causing by these two properties not existing in the App Config and therefore checking the new default value with the old default value from the component config
- adding this predicate to the method that creates the batteryInverterConfig for the Commercial 50 and 100 App

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com>
Co-authored-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com>
Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com>
- Add goodwe battery cluster for FENECON Home batteries
- update Commercial 100 to change from 1 to 2 battery ports used
- add battery alias to battery update description

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Sebastian Asen <47855186+sebastianasen@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Sagar Venu <32655208+venu-sagar@users.noreply.github.com>
- add new page for excel export

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
@codecov

codecov Bot commented Jul 21, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 46.47887% with 722 lines in your changes missing coverage. Please review.

❌ Your patch check has failed because the patch coverage (46.48%) is below the target coverage (75.00%). You can increase the patch coverage or adjust the target coverage.

Additional details and impacted files
@@              Coverage Diff              @@
##             develop    #3837      +/-   ##
=============================================
- Coverage      60.68%   60.59%   -0.08%     
  Complexity       105      105              
=============================================
  Files           3483     3496      +13     
  Lines         152055   153207    +1152     
  Branches       11617    11691      +74     
=============================================
+ Hits           92253    92819     +566     
- Misses         56321    56903     +582     
- Partials        3481     3485       +4     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@sfeilmeier
sfeilmeier merged commit d6c8a36 into develop Jul 21, 2026
6 of 7 checks passed
@sfeilmeier
sfeilmeier deleted the feature/fems-backports branch July 21, 2026 19: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