Published April 1, 2026 | Version 2026.4.0
Software Open

OpenEMS/openems: 2026.4.0

  • 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)

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() and gridSellHardLimit() 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
    • Migrate odoo to use http bridge Commit
    • improve timedata querys Commit
    • Alerting: Extend logging Commit
    • Docker: fix build; update default ports Commit

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

Software