Skip to content

FEMS Backports 2025-11-25#3440

Merged
sfeilmeier merged 34 commits intodevelopfrom
feature/fems-backports
Nov 25, 2025
Merged

FEMS Backports 2025-11-25#3440
sfeilmeier merged 34 commits intodevelopfrom
feature/fems-backports

Conversation

@sfeilmeier
Copy link
Copy Markdown
Contributor

@sfeilmeier sfeilmeier commented Nov 25, 2025

  • UI

    • [UI] Sort translation files alphabetically Commit
    • [UI] Energy Scheduler v2: EVSE Cluster Commit
    • [UI] ActionSheet: remove initial breakpoint Commit
    • [UI] App.Cloud.EnerixControl: add mode CHARGE_FROM_GRID Commit
    • [UI] fix style of modal buttons Commit
    • [UI] EVSE: show phase-switching to Non-Admin users Commit
    • [UI] formly bugfix Commit
    • [UI] EVSE: add phase switching Commit
    • [UI] IBN: Address validation and Coordinates Commit
    • [UI] Add Button labels Commit
    • [UI] Fix selector in oe-controller-ess-gridoptimizedcharge-prediction-chart Commit
    • [UI] Overview: activate sort filter Commit
    • [UI] Clever-PV / EnerixControl: change config name Commit
    • [UI] Show SoC in Live Energymonitor Commit
  • Edge

    • [Edge] Energy Scheduler v2: EVSE Cluster Commit
    • [Edge] Shelly Plug: RelayContactFilter + smart invert Commit
    • [Edge] FENECON Commercial 92: add GridCode setting Commit
    • [Edge] Ess.Power: fixed PID filter Commit
    • [Edge] Plus Plug S, Plug S Gen3, Outdoor Plug S Gen3 Commit
    • [Edge] Energy Scheduler v2 improvements Commit
    • [Edge] EnergyScheduler v2: refactor EnergyFlow Commit
    • [Edge] EWS Schönau ToU: release for Admins Commit
    • [Edge] Clever-PV / EnerixControl: code cleanup and refactorings Commit
    • [Edge] Controller.Api.ModbusTcp: activate j2mod TCP Connection Idle timeout Commit
    • [Edge] OpenCage Geocoding: fix place name mapping Commit
    • [Edge] Update j2mod and jSerialComm Commit
    • [Edge] Evcs.HardyBarth: fix setting Heartbeat and Chargemode Commit
    • [Edge] App.Cloud.EnerixControl: add mode CHARGE_FROM_GRID Commit

sfeilmeier and others added 30 commits November 25, 2025 16:47
- Set heartbeat=on every 15 seconds to avoid fallback
- Set manual mode on afterProcessImageProcess if not manual yet and if NOT readonly
- unit test for manual mode

Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Victor Nagy <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
* Update j2mod to io.openems.j2mod:3.2.2-openems.1
* ModbusRTU: Disable rs485-Configuration

Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-committed-by: Kai Jeschek <[email protected]>
- In geocoding, we now use the place name provided by the OpenCage API and remove the custom mapping

Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Leonhard Anderle <[email protected]>
Co-committed-by: Leonhard Anderle <[email protected]>
…imeout

- Activates j2mod timeout. See steveohara/j2mod#108
- Add `LogVerbosity` to Modbus API Controllers. Count and display "Access" and "Write" to Registers.
- Refactor `CommonConfig` for all Modbus API Controllers

Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Reviewed-by: Kai Jeschek <[email protected]>
- added the current SoC above the icon

Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-committed-by: Andreas Mur <[email protected]>
- Breaking changes
  - RENAME EssDcDischargePower (also its now the actual value and not "powerStorageState")

Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-committed-by: Andreas Mur <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Andreas Mur <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
…n-chart`

- Chart was not shown because of a typo

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Victor Nagy <[email protected]>
Co-committed-by: Victor Nagy <[email protected]>
- following WCAG accessibility standards, buttons has to have labels for more easy user experience. Implementing translated keys as labels inside each button. "see settings page"
- Report download button in history energy-monitor view.

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Co-authored-by: Anas Shetla <[email protected]>
Co-committed-by: Anas Shetla <[email protected]>
- Add "accessToken" to App; including translations
- App only for ADMIN

Reviewed-by: Michael Grill <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Reviewed-by: Andreas Mur <[email protected]>
Reviewed-by: Hanna Späth <[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]>
New, much faster approach for EnergyFlow that avoid linear equation system

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Leonhard Anderle <[email protected]>
Co-committed-by: Leonhard Anderle <[email protected]>
- Drop `defaultMode`; first Mode is always considered default
- Split ESH for EVSE Single and Cluster: allows simulation of multiple EVSEs in parallel
- Use new EnergyFlow
Be aware: Phase-switching is now visible for everybody; even if phase-switching is not supported by hardware!

Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-committed-by: Andreas Mur <[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: Lukas Rieger <[email protected]>
Reviewed-by: Victor Nagy <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-committed-by: Andreas Mur <[email protected]>
- Find Shelly devices via mDNS in local LAN in app installation
- supports "Plus Plug S", "Plug S Gen3", "Outdoor Plug S Gen3"
- available only for admins

Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Victor Nagy <[email protected]>
- Solves the power fluctuation issue with PeakShaving and ToU controllers.

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-committed-by: Andreas Mur <[email protected]>
- Added GridCode for Kaco
- Added GridCode as property in Commercial92 Apps

Co-authored-by: Sebastian Asen <[email protected]>
Reviewed-by: Sebastian Asen <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- removed invert property in app and set it depending on the usecase
- (fix filter for all shellys in relay selection e. g. heatingelement)

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Move EnergyScheduleHandler entirely to Cluster; drop from Single
- Handle `GetSchedule` request in Cluster
- Define `Mode.Actual` as combination of Single-Config and Smart-Config
- Update `RunOptimizerApp`

Future TODO
[ ] Evaluate SmartConfig in Cluster
[ ] Serializer for History
[ ] Inform Cluster about Single modified/chargePointIsReady event
[ ] Implement initialPopulationsProvider
- Call `GetSchedule` request in EVSE Cluster
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 25, 2025

Codecov Report

❌ Patch coverage is 59.92239% with 723 lines in your changes missing coverage. Please review.

❌ Your patch status has failed because the patch coverage (59.93%) 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    #3440      +/-   ##
=============================================
- Coverage      59.80%   59.61%   -0.18%     
  Complexity       112      112              
=============================================
  Files           2870     2894      +24     
  Lines         124042   124658     +616     
  Branches        9298     9343      +45     
=============================================
+ Hits           74166    74305     +139     
- Misses         47086    47537     +451     
- Partials        2790     2816      +26     
🚀 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 169457a into develop Nov 25, 2025
6 of 7 checks passed
@sfeilmeier sfeilmeier deleted the feature/fems-backports branch November 25, 2025 20:35
@adorn adorn mentioned this pull request Nov 27, 2025
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