Skip to content

FEMS Backports 2025-11-09#3403

Merged
sfeilmeier merged 77 commits intodevelopfrom
feature/fems-backports
Nov 8, 2025
Merged

FEMS Backports 2025-11-09#3403
sfeilmeier merged 77 commits intodevelopfrom
feature/fems-backports

Conversation

@sfeilmeier
Copy link
Copy Markdown
Contributor

@sfeilmeier sfeilmeier commented Nov 8, 2025

  • Backend

    • [Backend] Extend Odoo Filter Commit
    • [Backend] Aggregated-InfluxDB: increase allowed Component-IDs for EVSE and EVCS Commit
    • [Backend] Add ElectricityMeter Channels for ios Commit
    • [Edge/Backend] OAuth2 Registry support Commit
  • UI

    • [UI] fix formly-select with exactly one item Commit
    • [UI] EVCS Controller: fix readOnly modal Commit
    • [UI] filter addition Commit
    • [UI] Add Filter to App Center Main Page Commit
    • [UI] IBN: Add images to "select" options in Feed-In-Limit fields Commit
    • [UI] Display Battery / Inverter in storage live Commit
    • [UI] Overview: add filter Commit
    • [UI] Enforce 4 indentation on ts files Commit
    • [UI] Weather popover: use different images per language Commit
    • [UI] add unit test for stringutils.isNotInArr Commit
    • [UI] UPPER_SNAKE_CASE for translation keys Commit
    • [UI] fix consumption filter for evcs cluster Commit
    • [UI] Weather Widget: fix for zero sunhours Commit
    • [UI] formly-field-modal: add missing fields Commit
    • [UI] New Navigation: refactor Consumption Commit
    • [UI] Weather widget standalone Commit
    • [UI] Weather App UI Popover Commit
    • [UI] Add Weather popover Commit
    • [UI] App Center: fix key preview Commit
    • [UI] handle chunk loading failed exception Commit
    • [UI] Fix arrow buttons background Commit
    • [UI] New Navigation: refactoring of common navigation nodes Commit
    • [UI] [WCAG 3.2.2] Refactor evcs cluster modal Commit
    • [UI] EVCS: fix calculation of history total other consumption Commit
    • [UI] Help buttons for formly Modals Commit
    • [UI] Fix subscribes/unsubscribes Commit
    • [UI] Off-Grid History: fix display Commit
    • [Edge/UI] TimeOfUseTariff LUOX Energy Commit
  • Edge

    • [Edge] App Manager: ComponentTask with Component Record Commit
    • [Edge] DynamicDocText: fix failed Test Commit
    • [Edge] Evcs.Abl: implement ABL eM4 charging station (read-only) Commit
    • [Edge] TimeOfUseTariff.OctopusGo/Heat: add ancillaryCosts (variable Netzentgelte) Commit
    • [Edge] Ess.Generic.ManagedSymmetric: Add State Runtime Channels Commit
    • [Edge] Standardise ErrorAcknowledgeRpc & implement for Industrials Commit
    • [Edge] fix component not found for default id Commit
    • [Edge] Temporary fix for failing JUnit test Commit
    • [Edge] Evcs.HardyBarth: improvements Commit
    • [Edge] GoodWe.BatteryInverter: adjust notification in State Commit
    • [Edge] update translation key Commit
    • [Edge] JSCalendar for Time-of-Use-Tariffs: fix clock issue Commit
    • [Edge] Controller.IO.HeatingElement: fix NPE in JUnit test Commit
    • [Edge] EnergyScheduler v2: temporary fix for JUnit tests Commit
    • [Edge] JSCalendar improvements Commit
    • [Edge] FENECON Commercial 50: update grid mode mapping Commit
    • [Edge] Weather.OpenMeteo: fix channel persistence after restart Commit
    • [Edge] App.TimeOfUseTariff: add compatibility with App.FENECON.Commercial.92.ClusterMaster Commit
    • [Edge] FENECON Industrial L: Extend System Component with Janitza Grid-Meter (TCP) Commit
    • [Edge] TimeOfUseTariff.ENTSO-E: improve parsing Commit
    • [Edge] EVSE + KEBA P40 / P30+S10: implement forced Phase-Switching Commit
    • [Edge] App.Prediction.Weather: move to 'API' category + do not require owner role Commit
    • [Edge] Core.AppManager: improve timeouts & error messages Commit
    • [Edge] Predictor.ProfileClusteringModel: improve error handling Commit
    • [Edge] TimeOfUseTariff.ENTSO-E: fix query for DE_LU and AT Commit
    • [Edge] Core.SerialNumber: decrease timeout for persisting serial numbers Commit
    • [Edge] GoodWe Max Charge/Discharge Power bugfix for old devices Commit
    • [Edge] AppCenter: Weather App Commit
    • [Edge] Improve App installation speed Commit
    • [Edge] Energy-Scheduler v2: improvements Commit
    • [Edge] Battery.Fenecon.Home: fix software versions Commit
    • [Edge] Weather.OpenMeteo: fix timezone handling Commit
    • [Edge] ENTSO-E: default to QUARTERLY resolution Commit
    • [Edge] App.FENECON.ProHybrid.10 Commit
    • [Edge/UI] TimeOfUseTariff LUOX Energy Commit
    • [Edge] Kostal + Samsung: update usage of HTTP Bridge Commit
    • [Edge/Backend] OAuth2 Registry support Commit
  • Common

    • [CI] Add explicit common_test command Commit
    • [CI] Update build scripts Commit
    • [Common] VSCode: specify default indentation Commit
    • [Common] Update build scripts Commit
    • [Common] Update build scripts Commit

sfeilmeier and others added 30 commits November 8, 2025 14:08
- Add OAuth 2 Authorization Code Flow (& PKCE)
- Add Backend OAuthRegistry to register clients which can be used by edges to get a access token
- moved http to a common packages
- added services for http bridge to separate e. g. cycle service only for edge

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Shelly IOs are also ElectricityMeters. Add Channels to AllowedChannels

Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
- adding an App for Pro Hybrid Series 10 Systems
- creating tasks for the components ess0, meter0, charger0, kacoCore0

Co-authored-by: Leon Blenk <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Leon Blenk <[email protected]>
Co-committed-by: Leon Blenk <[email protected]>
- Trading has switched to quarterly, so we adjust the default as well

Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-committed-by: Kai Jeschek <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-committed-by: Kai Jeschek <[email protected]>
- Off Grid time has been displayed as kWh instead of hours.
- This is due to wrong configuration of chart axis.
- Solution: changed the chart axis and also made the channel visible in the key if there has been at least an one minute off grid period

Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-committed-by: Fabian Brandtner <[email protected]>
- Due to order of array params not being enforced, params were provided in wrong order
- fixed by enforcing order through providing object

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]>
- Open-Meteo returns all timestamps with a single fixed offset, even if a daylight saving time change occurs during the period.
- Parsing the timestamps into ZonedDateTime previously resulted in incorrect offsets for times before or after the DST transition.
- Fixed the issue by using the offset provided by Open-Meteo (utc_offset_seconds) and converting the timestamps into the target timezone correctly.

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]>
Co-authored-by: Sebastian Asen <[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]>
-  Introduce possible ModeCombinations

Reviewed-by: Leonhard Anderle <[email protected]>
- improved installation speed by passing a filter to ConfigurationAdmin

Reviewed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- added luox energy TimeOfUseTariff api and app
- added common backend client code to handle oauth
- add appcenter installation steps
- add oauth as a possible installation step

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Creates Component for WeatherApi & Predictor
- Update PredictorManager to use new Predictor first
- third party usage acceptance

Co-authored-by: Leonhard Anderle <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Leonhard Anderle <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Reviewed-by: Hanna Späth <[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]>
Change power in Default Impl from MaxValue to Null to avoid overflow.

Co-authored-by: Sebastian Asen <[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]>
fix history total other consumption calculation for new EVCS (non DeprecatedEvcs)

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Refactoring for WCAG and fixing of evcs cluster chart

Reviewed-by: Sebastian Asen <[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]>
Decreased timeout for saving serial numbers to faster get the change in the edgeconfig and therefore the protocol can be created faster

Reviewed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Refactored autarchy, selfconsumption and grid live and history and Integration into new navigation

Co-authored-by: Stefan Feilmeier <[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]>
…E and EVCS

increased max for active power, current and voltage channels for evcs and evseChargePoint to 12 in order to support Ladeparks

Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
Improve visibility of back arrow buttons

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]>
Prevent chunk loading exception from freezing ui, which happens in production after release 2025.10.1
See https://medium.com/fieldcircle/error-loading-chunk-xx-failed-with-angular-lazy-loaded-modules-6c5b1b6f8b8d

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
- fix syntax error because of migration

Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Changed ENTSO-E API query method from POST to GET for improved compliance and stability.
- Refactored ENTSO-E parsePrices test cases to use generic data validation instead of hardcoded static values.
- Refactor to HTTP Bridge

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
- Add Weather popover for role `OWNER`

Co-authored-by: Leonhard Anderle <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Andreas Mur <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-committed-by: Lukas Rieger <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Leonhard Anderle <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
sfeilmeier and others added 20 commits November 8, 2025 18:59
- Added clock to the ManualHelper to synchronize clocks between JsCalendar and TouManualHelper.
- Fixed test cases regarding ManualHelper and AncillaryCosts.

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
- temporarily disabled till backend release has happenend @michael.grill

Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Michael Grill <[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]>
- update Janitza GridMeter translation key

Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- new Builder class DocText for mapping enum values to a specific text
- implemented  textByChannel method in AbstractDoc to subscribe a onChange listener for a channel to apply the builder
- changed Channel-ID State_14 of GoodWe to call the textBYChannel method and transfer the ChannelId GoodWe_Type

Co-authored-by: Leon Blenk <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Leon Blenk <[email protected]>
Co-committed-by: Leon Blenk <[email protected]>
- adding items (Wechselrichter & Battery) and data displayed to the live storage widget, according to the intended requirements.
- this feature is only available for ADMINs

Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Hanna Späth <[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]>
- Add `LogVerbosity` config parameter for detailed debugging
- Replace outdated docs with link to latest Swagger documentation
- Do not disable Heartbeat (TODO: activate automatically)
- Apply charge-current every 15 seconds (instead of 30 seconds) to comply with default heartbeat
- Removed calls to `salia/pausecharging`
- Remove setting `salia/chargemode` to `manual`

Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Reviewed-by: Victor Nagy <[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: 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: Lukas Rieger <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Reviewed-by: Hanna Späth <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
- fix translation key for `/settings`
- add fallback to app center filters

Reviewed-by: Hanna Späth <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
- change null check of controller in evcs modal

Co-authored-by: Lukas Rieger <[email protected]>
Reviewed-by: Lukas Rieger <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
- Organize Imports
- Cleanup Eclipse Warning
- Fix error "Unable to apply configuration"
- add separate component which sets the default ids if they are not persistet in their configurations
- removed fallback method to default id in listConfigurations

Reviewed-by: Kai Jeschek <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
- Added interface EssErrorAcknowledge and ErrorAcknowledgeRequest
- This pr adds the possiblity to implement an interface that executes a component reset via JSON-RPC
- Each component can define an own set of channels to be reset
- Renaming of the interfaces BatteryTimeoutClear and BatteryInverterTimeoutClear because they now store more functionality
- This can be done on System and Ess layer
  - if applied on system, it resets every ess and the common fault channels of the system component + everything below that is mentioned
  - on ess layer it clears the battery and batteryinverter errors (by default only the timeout channels)

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-committed-by: Fabian Brandtner <[email protected]>
* Add: `common_test`, `commont_test_edge` and `common_test_backend`
* Fix CI-Builds to run unit-tests
* Fix `TouEntsoeTest`

Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-committed-by: Kai Jeschek <[email protected]>
- Runtime Channels for EssGenericManagedSymmetric
- Accumulates the time an ess spent in a certain State ("OK","INFO","WARNING","FAULT")

Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-committed-by: Fabian Brandtner <[email protected]>
…etzentgelte)

Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-committed-by: Sagar Venu <[email protected]>
- eM4 Controller (Single/Twin)
- eM4 Extender (Single/Twin)

Co-authored-by: Thomas Sicking <[email protected]>
Co-authored-by: Christian Lehne <[email protected]>
Co-authored-by: Christian Lehne <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Christian Lehne <[email protected]>
Reviewed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Victor Nagy <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Tim Stöcker <[email protected]>
Co-committed-by: Tim Stöcker <[email protected]>
Co-authored-by: Leon Blenk <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Leon Blenk <[email protected]>
Co-committed-by: Leon Blenk <[email protected]>
- ComponentDef for ComponentAggregateTask instead of EdgeConfig.Component;
- ComponentDef has "Configuration" Enum that allows to define how the Component shall be installed
- ComponentDef has infos for properties etc.

Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Stefan Feilmeier <[email protected]>
Reviewed-by: Michael Grill <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-committed-by: Johann Kaufmann <[email protected]>
Reviewed-by: Sagar Venu <[email protected]>
Reviewed-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-committed-by: Michael Grill <[email protected]>
@codecov
Copy link
Copy Markdown

codecov bot commented Nov 8, 2025

Codecov Report

❌ Patch coverage is 61.19349% with 1073 lines in your changes missing coverage. Please review.

❌ Your patch status has failed because the patch coverage (61.20%) 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    #3403      +/-   ##
=============================================
- Coverage      59.82%   59.73%   -0.09%     
  Complexity       112      112              
=============================================
  Files           2787     2866      +79     
  Lines         121037   123905    +2868     
  Branches        9061     9289     +228     
=============================================
+ Hits           72400    73999    +1599     
- Misses         45932    47112    +1180     
- Partials        2705     2794      +89     
🚀 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.

cd ui
npm ci --prefer-offline --cache ~/.npm
node_modules/.bin/ng config cli.cache.path "~/.ng"
npm run lint:i18n
Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Is there a Reason for this getting removed? :)

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

This should be covered by calling npm run lint here and having "lint": "ng lint && npm run lint:i18n", in package.json

@sfeilmeier sfeilmeier changed the title FEMS Backports 2025-11-08 FEMS Backports 2025-11-09 Nov 8, 2025
@sfeilmeier sfeilmeier merged commit 842ce35 into develop Nov 8, 2025
6 of 7 checks passed
@sfeilmeier sfeilmeier deleted the feature/fems-backports branch November 8, 2025 23:18
iseeberg79 pushed a commit to iseeberg79/openems that referenced this pull request Nov 15, 2025
* Backend
  * [Backend] Extend Odoo Filter [Commit](OpenEMS@621f1b3)
  * [Backend] Aggregated-InfluxDB: increase allowed Component-IDs for EVSE and EVCS [Commit](OpenEMS@0631719)
  * [Backend] Add ElectricityMeter Channels for `io`s [Commit](OpenEMS@05b9929)
  * [Edge/Backend] OAuth2 Registry support [Commit](OpenEMS@83a43ba)

* UI
  * [UI] fix formly-select with exactly one item [Commit](OpenEMS@11f4a52)
  * [UI] EVCS Controller: fix readOnly modal [Commit](OpenEMS@ad0b5df)
  * [UI] filter addition [Commit](OpenEMS@97bf6c5)
  * [UI] Add Filter to App Center Main Page [Commit](OpenEMS@26a5a6a)
  * [UI] IBN: Add images to "select" options in Feed-In-Limit fields [Commit](OpenEMS@9684aaa)
  * [UI] Display Battery / Inverter in storage live [Commit](OpenEMS@0459bb2)
  * [UI] Overview: add filter [Commit](OpenEMS@81d3b8c)
  * [UI] Enforce 4 indentation on ts files [Commit](OpenEMS@0fa4564)
  * [UI] Weather popover: use different images per language [Commit](OpenEMS@2eec01b)
  * [UI] add unit test for stringutils.isNotInArr [Commit](OpenEMS@3228f47)
  * [UI] UPPER_SNAKE_CASE for translation keys [Commit](OpenEMS@c1149f6)
  * [UI] fix consumption filter for evcs cluster [Commit](OpenEMS@9956fc5)
  * [UI] Weather Widget: fix for zero sunhours [Commit](OpenEMS@dcfe2d8)
  * [UI] formly-field-modal: add missing fields [Commit](OpenEMS@38a34c8)
  * [UI] New Navigation: refactor Consumption [Commit](OpenEMS@19b8af1)
  * [UI] Weather widget standalone [Commit](OpenEMS@2efeff6)
  * [UI] Weather App UI Popover [Commit](OpenEMS@f5fbfa4)
  * [UI] Add Weather popover [Commit](OpenEMS@d0b8e22)
  * [UI] App Center: fix key preview [Commit](OpenEMS@f5c917f)
  * [UI] handle chunk loading failed exception [Commit](OpenEMS@fcece16)
  * [UI] Fix arrow buttons background [Commit](OpenEMS@ddb0835)
  * [UI] New Navigation: refactoring of common navigation nodes [Commit](OpenEMS@9fdd3c0)
  * [UI] [WCAG 3.2.2] Refactor evcs cluster modal [Commit](OpenEMS@96738e0)
  * [UI] EVCS: fix calculation of history total other consumption [Commit](OpenEMS@5bc03ec)
  * [UI] Help buttons for formly Modals [Commit](OpenEMS@eb516e1)
  * [UI] Fix subscribes/unsubscribes [Commit](OpenEMS@3f6b9b8)
  * [UI] Off-Grid History: fix display [Commit](OpenEMS@26c1cec)
  * [Edge/UI] TimeOfUseTariff LUOX Energy [Commit](OpenEMS@bfacb5e)

* Edge
  * [Edge] App Manager: ComponentTask with Component Record [Commit](OpenEMS@596551f)
  * [Edge] DynamicDocText: fix failed Test [Commit](OpenEMS@eaa75ff)
  * [Edge] Evcs.Abl: implement ABL eM4 charging station (read-only) [Commit](OpenEMS@789cabf)
  * [Edge] TimeOfUseTariff.OctopusGo/Heat: add ancillaryCosts (variable Netzentgelte) [Commit](OpenEMS@354cf3d)
  * [Edge] Ess.Generic.ManagedSymmetric: Add State Runtime Channels [Commit](OpenEMS@e7cba4f)
  * [Edge] Standardise ErrorAcknowledgeRpc & implement for Industrials [Commit](OpenEMS@c441bae)
  * [Edge] fix component not found for default id [Commit](OpenEMS@c77ad05)
  * [Edge] Temporary fix for failing JUnit test [Commit](OpenEMS@94ec204)
  * [Edge] Evcs.HardyBarth: improvements [Commit](OpenEMS@f46c51f)
  * [Edge] GoodWe.BatteryInverter: adjust notification in State [Commit](OpenEMS@9ac4201)
  * [Edge] update translation key [Commit](OpenEMS@ac7a7c1)
  * [Edge] JSCalendar for Time-of-Use-Tariffs: fix clock issue [Commit](OpenEMS@ed1190c)
  * [Edge] Controller.IO.HeatingElement: fix NPE in JUnit test [Commit](OpenEMS@36dc837)
  * [Edge] EnergyScheduler v2: temporary fix for JUnit tests [Commit](OpenEMS@9273f74)
  * [Edge] JSCalendar improvements [Commit](OpenEMS@90a60d9)
  * [Edge] FENECON Commercial 50: update grid mode mapping [Commit](OpenEMS@7552f1b)
  * [Edge] Weather.OpenMeteo: fix channel persistence after restart [Commit](OpenEMS@b255fa0)
  * [Edge] App.TimeOfUseTariff: add compatibility with App.FENECON.Commercial.92.ClusterMaster [Commit](OpenEMS@2a95c25)
  * [Edge] FENECON Industrial L: Extend System Component with Janitza Grid-Meter (TCP) [Commit](OpenEMS@d989b62)
  * [Edge] TimeOfUseTariff.ENTSO-E: improve parsing [Commit](OpenEMS@2924cec)
  * [Edge] EVSE + KEBA P40 / P30+S10: implement forced Phase-Switching [Commit](OpenEMS@23db377)
  * [Edge] App.Prediction.Weather: move to 'API' category + do not require owner role [Commit](OpenEMS@1155cc2)
  * [Edge] Core.AppManager: improve timeouts & error messages [Commit](OpenEMS@7004948)
  * [Edge] Predictor.ProfileClusteringModel: improve error handling [Commit](OpenEMS@73a3e35)
  * [Edge] TimeOfUseTariff.ENTSO-E: fix query for DE_LU and AT [Commit](OpenEMS@3e6d74d)
  * [Edge] Core.SerialNumber: decrease timeout for persisting serial numbers [Commit](OpenEMS@469fb73)
  * [Edge] GoodWe Max Charge/Discharge Power bugfix for old devices [Commit](OpenEMS@b064b67)
  * [Edge] AppCenter: Weather App [Commit](OpenEMS@625b57c)
  * [Edge] Improve App installation speed [Commit](OpenEMS@b08f3eb)
  * [Edge] Energy-Scheduler v2: improvements [Commit](OpenEMS@c92986e)
  * [Edge] Battery.Fenecon.Home: fix software versions [Commit](OpenEMS@603bc72)
  * [Edge] Weather.OpenMeteo: fix timezone handling [Commit](OpenEMS@1745285)
  * [Edge] ENTSO-E: default to QUARTERLY resolution [Commit](OpenEMS@e6597f1)
  * [Edge] App.FENECON.ProHybrid.10 [Commit](OpenEMS@180a268)
  * [Edge/UI] TimeOfUseTariff LUOX Energy [Commit](OpenEMS@bfacb5e)
  * [Edge] Kostal + Samsung: update usage of HTTP Bridge [Commit](OpenEMS@f2b3854)
  * [Edge/Backend] OAuth2 Registry support [Commit](OpenEMS@83a43ba)

* Common
  * [CI] Add explicit `common_test` command [Commit](OpenEMS@d4fd100)
  * [CI] Update build scripts [Commit](OpenEMS@615872e)
  * [Common] VSCode: specify default indentation [Commit](OpenEMS@307c15e)
  * [Common] Update build scripts [Commit](OpenEMS@20d9b8e)
  * [Common] Update build scripts [Commit](OpenEMS@cae466b)

---------

Co-authored-by: Stefan Feilmeier <[email protected]>
Co-authored-by: Michael Grill <[email protected]>
Co-authored-by: Leon Blenk <[email protected]>
Co-authored-by: Kai Jeschek <[email protected]>
Co-authored-by: Fabian Brandtner <[email protected]>
Co-authored-by: Lukas Rieger <[email protected]>
Co-authored-by: Leonhard Anderle <[email protected]>
Co-authored-by: Sebastian Asen <[email protected]>
Co-authored-by: Johann Kaufmann <[email protected]>
Co-authored-by: DerMuaaa <102706922+Andreas [email protected]>
Co-authored-by: Andreas Mur <[email protected]>
Co-authored-by: Sagar Venu <[email protected]>
Co-authored-by: Anas Shetla <[email protected]>
Co-authored-by: Johannes Haller <[email protected]>
Co-authored-by: Thomas Sicking <[email protected]>
Co-authored-by: Christian Lehne <[email protected]>
Co-authored-by: Tim Stöcker <[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.

2 participants