Published April 1, 2026
| Version 2026.4.0
Software
Open
OpenEMS/openems: 2026.4.0
Authors/Creators
- Stefan Feilmeier1
- wgerbl
- ebakir
- fabianfnc
- Hüseyin Sahutoglu
- pooran-c2
- Hannes
- da Kai3
- Max Obermeier
- Sebastian Asen
- Sagar4
- Lukas Rieger5
- Hiromasa Ihara6
- sjjh
- Thomas Sicking7
- Kyle8
- Felix S9
- Christian Lehne
- luzpaz
- dependabot-support
- Michael Grill
- DerWahreKlinki
- Lisa Kaindl2
- janklostermann
- parapluplu
- sthhs
- ahummelsberger10
- Jing Lee
- 1. FENECON GmbH, OpenEMS Association e.V.
- 2. FENECON GmbH
- 3. @OpenEMS
- 4. Fenecon
- 5. University Deggendorf
- 6. @girasolenergy
- 7. opernikus GmbH
- 8. Microcare
- 9. @opernikus-common
- 10. KATEK
Description
Release Highlights
- Improved implementations:
- Victron
- Shelly
- FENECON Home 6, 10 & 15, Commercial 50, 92 & 100
- RRD4j
- Hardy Barth
- Mennekes
- Controller.IO.ChannelSingleThreshold
- Bosch.BPTS5Hybrid:
- UI improvements:
- New tree-based navigation is shaping
- Time-of-Use-Tariff: support for Peak-Shaving mode
- Documentation improvements:
- Improved Device & Service documentation and Docs navigation; example: https://openems.github.io/openems.io/openems/latest/edge/device_service.d/io.openems.edge.meter.carlo.gavazzi.html
- Updated IntelliJ IDEA guide
- Core improvements:
- For Energy Storage Systems
- PID- and PT1-Filter improvements
- ESS.Power: faster Power Distribution v2
- E-Mobility new architecture (EVSE)
- Central location for grid buy & sell limits
- TariffManager prepares for grid buy & grid sell tariffs
- Support for grid-forming GenSet (as supported by FENECON Commercial 50 and 100)
- For Energy Storage Systems
Details
OpenEMS Edge
- Victron ESS: Refactor AC-in setpoint calculation by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3584
- Bosch.BPTS5Hybrid: Update Jetty by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3647
- FEMS Backports 2026-03-21 by @FENECON in https://github.com/OpenEMS/openems/pull/3624
- Shelly Pro 3EM: implement App Commit
- Shelly: add support for more devices Commit
- ManagedSymmetricEss/GoodWe: refactor how (PID-)filter is applied Commit
- EVSE Electric Vehicle: add configurable battery capacity Commit
- Ess.Power: distribution prepare for different handlers Commit
- FEMS App EWS Schönau: public release Commit
- Meta: add
gridBuyHardLimit()andgridSellHardLimit()Commit - Meta: improve Grid-Buy-Soft-Limit Commit
- Add new TariffManager Commit
- Add Time-of-Use Feed-In Tariffs Commit
- ENTSO-E: refactor + prepare fetch via Backend Commit
- FENECON Commercial 50/100: Genset Component Commit
- Cycle Worker: add Log Verbosity Commit
- Meta: Refactor Grid-Feed-In-Limit Commit
- Vehicle: Add Battery Capacity to component config Commit
- Vehicle: Add Battery Capacity to App and Switch Commit
- JSCalendar: fix problem with two overlapping fallback tasks Commit
- Managed(As|S)ymmetricEss cleanup Commit
- _Property-Channels: fix duplicated channels of component in same bundle Commit
- handleExecuteSystemCommandRequest for Docker Commit
- ModbusTcp: fix timeout config Commit
- App Center: App for FENECON Pro Hybrid 9-10 Commit
- FENECON Commercial 100: Add GoodWe 100 Type Commit
- Energy Scheduler v2: Model production curtailment in EnergyFlow Commit
- Commercial 92 Cluster (Master): set default power strategy Commit
- App Center: Vehicle fix install always Commit
- RRD4j: improve handling of unused files Commit
- GoodWe and Kdk Grid-Meter Apps Commit
- FENECON Commercial 50 VDE4110 Commit
- App Center: fix scheduler order for switch EVSE/EVCS Commit
- App Center: improve switching between EVCS and EVSE Commit
- Hardy Barth: fix properties of second charge point Commit
- EVSE: improve calculation of combined abilities Commit
- Meta
MaximumGridFeedInLimit& HardyBarth NPE Commit - EVSE Switch App: synchronize Apps with Backend after Fallback Commit
- FENECON Home 6,10 (Gen2) & 15: "dynamischer Rundsteuerempfänger" Commit
- Controller.IO.ChannelSingleThreshold: add configurable fallback for undefined state by @janklostermann in https://github.com/OpenEMS/openems/pull/3646
- Controller.Ess.GridOptimizedCharge: fix IndexOutOfBoundsException in DelayCharge.calculateAvailEnergy by @rishabhvaish in https://github.com/OpenEMS/openems/pull/3645
- Add ManagedEvcsCluster, make ESS optional, configurable guaranteed charge power by @chpoulter in https://github.com/OpenEMS/openems/pull/3084
- Bosch.BPTS5Hybrid: refactor to HttpBridge by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3650
- Victron: fix link to source code in readme.adoc by @janklostermann in https://github.com/OpenEMS/openems/pull/3630
- FEMS Backports 2026-03-28 by @FENECON in https://github.com/OpenEMS/openems/pull/3660
- Ess.Power: add tree map solver to PowerDistribution v2 Commit
- EVSE Mennekes: Improvements Commit
- AppCenter: i18n for links Commit
- FENECON Commercial 92: enable deinstallation of SelfConsumptionOptimization Commit
- App.Evcs.HardyBarth: use Correct Alias for second CP Commit
- Mennekes EVSE Implementation Commit
- FENECON Commercial 50/100: Genset bugfixes Commit
OpenEMS UI
- Local UI: Use browser Language as Default by @da-Kai in https://github.com/OpenEMS/openems/pull/3415
- AppComponent: fix missing onActivate method (#3591) by @rishabhvaish in https://github.com/OpenEMS/openems/pull/3597
- FEMS Backports 2026-03-21 by @FENECON in https://github.com/OpenEMS/openems/pull/3624
- New Navigation: desktop tree view Commit
- EVSE: show charge power Commit
- SoH Cycle Controller: show ESS Modal Commit
- Time-of-Use-Tariff: show Peak-Shaving mode [Commit](https://github.com/OpenEMS/openems/commit/ cf62ec605bbd2cfc5d840d65edf1920e9fbe66e4)
- Add support for JSCalendar Scheduler Commit
- NUI: align tree view to top Commit
- NUI: Refactor production Commit
- SoH-Controller: fix channel subscribe Commit
- fix subscribe bug Commit
- Fix missing User.language Commit
- remove duplicated evcss in consumption Commit
- fix NPE in global route change handler Commit
- fix app oauthcallback Commit
- fix local OpenEMS login Commit
- Fix Formly Navigation Commit
- fix for chart height Commit
- Improve state handling & websocket reconnect Commit
- add missing assignment for filteredEdges Commit
- Cleanup Commit
- fix develop UI tests Commit
- FEMS Backports 2026-03-28 by @FENECON in https://github.com/OpenEMS/openems/pull/3660
- NUI Refactor heatpump Commit
- Fix formly-field-navigation Commit
- Forecast Charts: improve readability with dashed lined Commit
- fix tree navi Commit
- OAuth: fix compatibility with iOS Commit
- JSCalendar + EVSE + NUI improvements Commit
- EnergyMonitor: Icon for Genset Commit
- WsData: remove requiredMinState from request object Commit
OpenEMS Backend
- Docker: publish backend-edge image by @da-Kai in https://github.com/OpenEMS/openems/pull/3619
- Docker: fix build; update default ports by @da-Kai in https://github.com/OpenEMS/openems/pull/3622
- FEMS Backports 2026-03-21 by @FENECON in https://github.com/OpenEMS/openems/pull/3624
Common/General
- Implement Java ContextLogger; Improve logger by @da-Kai in https://github.com/OpenEMS/openems/pull/3590
- Update IntelliJ IDEA setup guide for OpenEMS by @alexbelkedev in https://github.com/OpenEMS/openems/pull/3600
- FEMS Backports 2026-03-21 by @FENECON in https://github.com/OpenEMS/openems/pull/3624
- Gradle: standardize Wrapper Structure Commit
- Add Ona devcontainer environment setup by @Jan-ebb in https://github.com/OpenEMS/openems/pull/3643
- Update README files by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3649
- FEMS Backports 2026-03-28 by @FENECON in https://github.com/OpenEMS/openems/pull/3660
- Migrate from JUnit 4 to JUnit 6 Jupiter Commit
Version Upgrades
- Bump basic-ftp from 5.1.0 to 5.2.0 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3592
- Bump actions/download-artifact from 7 to 8 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3593
- Bump actions/upload-artifact from 6 to 7 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3594
- Bump @angular/core from 20.3.16 to 20.3.17 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3598
- Bump the openems-ui group across 1 directory with 28 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3599
- Bump the fastexcel group in /cnf with 2 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3606
- Bump @hono/node-server from 1.19.9 to 1.19.10 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3604
- Bump hono from 4.11.10 to 4.12.5 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3603
- Bump immutable from 5.1.4 to 5.1.5 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3605
- Bump org.mockito:mockito-core from 5.21.0 to 5.22.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3607
- Bump net.bytebuddy:byte-buddy from 1.18.5 to 1.18.7 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3608
- Bump com.google.protobuf:protobuf-java from 4.33.5 to 4.34.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3609
- Bump org.apache.felix:org.apache.felix.http.jetty12 from 1.1.6 to 1.1.8 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3610
- Bump docker/setup-qemu-action from 3 to 4 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3611
- Bump docker/setup-buildx-action from 3 to 4 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3612
- Bump docker/metadata-action from 5 to 6 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3613
- Bump docker/login-action from 3 to 4 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3614
- Bump docker/build-push-action from 6 to 7 in /.github/workflows by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3615
- Update to Gradle 9.4.0 by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3621
- Update to Gradle 9.4.1 by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3648
- Bump black from 24.10.0 to 26.3.1 in /tools/integration_tests by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3620
- Bump hono from 4.12.5 to 4.12.7 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3618
- Bump org.mockito:mockito-core from 5.22.0 to 5.23.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3628
- Bump de.bytefish:pgbulkinsert from 8.1.8 to 9.0.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3627
- Bump com.auth0:auth0 from 3.2.0 to 3.3.0 in /cnf in the auth0 group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3626
- Bump com.squareup.okio:okio-jvm from 3.16.4 to 3.17.0 in /cnf in the squareup group by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3625
- Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 2.3.10 to 2.3.20 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3644
- Bump biz.aQute.bnd:biz.aQute.bnd.gradle from 7.2.1 to 7.2.3 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3654
- Bump com.google.protobuf:protobuf-java from 4.34.0 to 4.34.1 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3655
New Contributors
- @rishabhvaish made their first contribution in https://github.com/OpenEMS/openems/pull/3597
- @Jan-ebb made their first contribution in https://github.com/OpenEMS/openems/pull/3643
Full Changelog: https://github.com/OpenEMS/openems/compare/2026.3.0...2026.4.0
Files
OpenEMS/openems-2026.4.0.zip
Files
(81.1 MB)
| Name | Size | Download all |
|---|---|---|
|
md5:a2c2a8b3322c811354bf11623e4fdea6
|
81.1 MB | Preview Download |
Additional details
Related works
- Is supplement to
- Software: https://github.com/OpenEMS/openems/tree/2026.4.0 (URL)
Software
- Repository URL
- https://github.com/OpenEMS/openems