Skip to content

FEMS Backports 2026-10-02 - #4011

Merged
sfeilmeier merged 23 commits into
developfrom
feature/fems-backports
Oct 2, 2026
Merged

sfeilmeier merged 23 commits into
developfrom
feature/fems-backports

Conversation

@sfeilmeier

Copy link
Copy Markdown
Contributor
  • UI

    • [UI] Fix picktime component Commit
    • [UI] NUI: Remove KEBA P40 from force new design Commit
    • [UI] KEBA EVCS/EVSE: add incompatibility warning message Commit
    • [UI] FENA: add messages Commit
    • [UI] Formatting Commit
    • [UI] Fix leaked intervals in modal components Commit
    • [UI] Add Alfen Wallbox Commit
    • [UI] Add EVCS to NUI Commit
  • Edge

    • [Edge] Meta: introduce GridBuyLimit with buffered Grid-Buy hard limit Commit
    • [Edge] Hekatron B9-X2 fire alarm system: implementation as standalone component Commit
    • [Edge] E-Mobility: Hardy Barth (Salia) Phase Switching Commit
    • [Edge] Industrial XL: Hydac Cooling unit as standalone component & improvements Commit
    • [Edge] EVSE: Added charge start/stop delays, improved states, fixed frequent charge restarts Commit
    • [Edge] Add configurable ESS SoC controller Commit
    • [Edge] App Manager: extend error codes and improve cardinality conflict handling Commit
    • [Edge] Alfen EVSE App Commit
  • Common

    • Backport EVSE statemachine and power distribution refactor; misc fixes Commit
    • [UI/Edge] Remove obsolete Heat forecast and Askoma cleanup Commit

sfeilmeier and others added 22 commits October 1, 2026 13:17
- [Admin] App für Alfen Ladepunkt

**Technical description**

- App for Alfen Evse Chargepoint (identical logic to Mennekes Evse App)
- App Class installs Chargepoint Single and Cluster
- App Sets vehicle as dependancy
- App has link to Vehicle to install new vehicle
- App requires check that energyscheduler is switched to v2 with install
- release only for admins

Reviewed-by: Franz Reiter <1498918+Howaner@users.noreply.github.com>
Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
- Evcs in new ui
- Evcs Cluster in new ui
- reduce router harness instance creation

---------

Co-authored-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Andreas Mur <102706922+DerMuaaa@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: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
Reviewed-by: Andreas Mur <102706922+DerMuaaa@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: Matthias Kreisel <77531390+mat-kreisel@users.noreply.github.com>
…ct handling

- implemented for every Checkable a unique OpenemsError with translations
- add an option to add a translation for OpenemsErrors
- move class TextProvider to the common bundle to use it in the OpenemsError file
- changed return type of the getErrorMessages of the Checkables from a String to an OpenemsNamedException
- add a Json serializer for the JsonrpcResponseError

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Leon Blenk <168936274+LaBlanko@users.noreply.github.com>
Reviewed-by: Michael Grill <59126309+michaelgrill@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>
- Remove obsolete Heat forecast route and chart components
- Simplify Heat navigation for Askoma and MyPV
- Drop unused Askoma JSON-RPC schedule endpoint
- Update app translation strings and related tests

---------

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: Alex Belke <233420507+alexbelkedev@users.noreply.github.com>
- Add configurable ESS state-of-charge controller
- Register the controller in the Edge application
- Remove obsolete KEBA-specific controller wiring and test coverage

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Fabian Brandtner <10850256+fabian94533@users.noreply.github.com>
…requent charge restarts

- Improvements to the delays for charge starting and stopping in the e-mobility beta test
- Improved displayed status in the e-mobility beta test

**Technical description**

- Added delay before EVSE charging starts and stops
  - There must be a SURPLUS for at least 60 seconds to start charging
  - There must be no SURPLUS for at least 20 seconds to stop charging
- Fixed frequent setPoint flips between 0 and 6 when charge is started
- Splitted RunUtils into multiple classes
  - Moved power distribution logic to PowerDistribution class for easy later replacement and simulator is now able to use it
  - Moved phase switch apply logic to EvsePowerDistributionApplyHandler
- Added states for paused/stopped charging and charge start

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Franz Reiter <1498918+Howaner@users.noreply.github.com>
`AbstractModal` and `AbstractModalLine` each create an "instant" (*[with limitation](https://developer.mozilla.org/de/docs/Web/API/Window/setInterval#verz%C3%B6gerungsbeschr%C3%A4nkungen)*) looping interval, but never clear it.

**Fix**
- Save the interval id and clear it on `ngOnDestroy()`
- Remove a redundant duplicate interval in the `AbstractModal` subclass  `Evcs.ModalComponent`
- bump interval from `0` to `100` ms to reduce unconditional CPU churn. (should not be noticable)

Reviewed-by: Lukas Rieger <73471197+lukasrgr@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Kai Jeschek <99220919+da-Kai@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: Leon Blenk <168936274+LaBlanko@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>
…provements

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Fabian Brandtner <10850256+fabian94533@users.noreply.github.com>
- EVSE Betatest: Phasenwechsel verfügbar für Hardy Barth Ladepunkte

**Technical description**

- Added new PhaseSwitch ability
  - MANUAL_WITHOUT_ZERO
  - Ensures that the cp is charging before iniating the switch in accordance with guidelines from HardyBarth
  - Sets Phaseswitch via apply phaseswitch (like Keba)
- Implemented needed Channels for Hardy Barth Api channels needed for Phaseswitching
- Added PhaseSwtich Ability to ChargePoint impl
- Tests

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Franz Reiter <1498918+Howaner@users.noreply.github.com>
Reviewed-by: Franz Reiter <1498918+Howaner@users.noreply.github.com>
Reviewed-by: Martin Wagner <175+martin.wagner@noreply.www.fenecon.de>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Johann Kaufmann <165755282+johannk24@users.noreply.github.com>
… component

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Hueseyin Sahutoglu <34771592+huseyinsaht@users.noreply.github.com>
Reviewed-by: Michael Grill <59126309+michaelgrill@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Fabian Brandtner <10850256+fabian94533@users.noreply.github.com>
- Adding FENA Messages for Grid, Peakshaving and GripOptimizedCharge
- ranslations for peakshaving
- FENA icon

---------

Co-authored-by: andreas.mur <Andreas Mur@fenecon.de>
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>
- GridBuyHardLimit enthält nun einen Puffer von mind. 6 kW (2 kW je Phase) oder 10 % des physikalischen Sicherungslimits
- Außerdem wurde MetaImpl umstrukturiert und die verschiedenen Limits in einem Record zusammengefasst

---

- Introduce GridBuyLimit record combining Grid-Buy Hard- and Soft-Limits
- Apply safety buffer (10%, minimum 6000 W) to Grid-Buy Hard-Limit, derived
  from GridConnectionPointFuseLimit
- Replace Meta.getGridBuyHardLimit() and getGridBuySoftLimit() with
  getGridBuyLimit()
- Remove GridBuySoftLimit class; use nested GridBuyLimit.Soft instead
- Update DummyMeta, FixActivePower, TimeOfUseTariff and Energy Scheduler
  to new API
- Update affected tests for new Grid-Buy Hard-Limit values

---------

Co-authored-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Leonhard Anderle <132663596+leonhardanderle@users.noreply.github.com>
Co-authored-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Reviewed-by: Martin Wagner <336528776+martin2o10@users.noreply.github.com>
Reviewed-by: Hanna Späth <198875998+HaSp97@users.noreply.github.com>
Reviewed-by: Andreas Mur <102706922+DerMuaaa@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <3515268+sfeilmeier@users.noreply.github.com>
Co-authored-by: Matthias Kreisel <77531390+mat-kreisel@users.noreply.github.com>
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>
- Der Button für die Uhrzeitauswahl funktioniert nun wieder korrekt

**Technical description**

- datetime-button now gets rendered after ngAfterViewInit to avoid missing id error
- added initial value for time-line formControl

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>
@codecov

codecov Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 54.82115% with 1162 lines in your changes missing coverage. Please review.

❌ Your patch check has failed because the patch coverage (54.83%) 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    #4011      +/-   ##
=============================================
- Coverage      55.53%   55.37%   -0.16%     
- Complexity     19639    19732      +93     
=============================================
  Files           3868     3902      +34     
  Lines         178567   179356     +789     
  Branches       14875    14980     +105     
=============================================
+ Hits           99154    99303     +149     
- Misses         75516    76113     +597     
- Partials        3897     3940      +43     
🚀 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 changed the title FEMS Backports 2026-10-01 FEMS Backports 2026-10-02 Oct 2, 2026
@sfeilmeier
sfeilmeier merged commit 8530916 into develop Oct 2, 2026
6 of 7 checks passed
@sfeilmeier
sfeilmeier deleted the feature/fems-backports branch October 2, 2026 11:18
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