Published February 1, 2026 | Version 2026.2.0
Software Open

OpenEMS/openems: 2026.2.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

  • New implementations:
    • Janitza UMG806 (via UMG604 Master)
    • Hager ECR380D
  • Improved implementations:
    • Shelly IOs
    • Edge-2-Edge
    • Single-Threshold-Controller
    • Kostal Piko
  • UI improvements:
    • Better visualization on small screens (like a Tablet)
    • Improved Pull-to-Refresh
  • Backend improvements:
    • Split services to multiple servers - allows load-balancing Edge connections
    • OAuth authentication via KeyCloak (and Odoo)
  • Core improvements:
    • Integration-Tests framework (in python)
    • ESS distribution strategy "Optimize by keeping all near equal"
    • Improvements to EVSE E-Mobility Architecture, Energy Scheduler v2 and JSCalendar
    • Grid-Buy-Soft-Limit (specifically for Sweden)

Details

OpenEMS Edge

  • Add support for Janitza UMG806 (via UMG604 Master) by @schiegg in https://github.com/OpenEMS/openems/pull/3449

  • [Edge] Meter.Janitza.UMG806: cleanup after #3449 by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3502

  • Shelly Firmware: Check if stable version update is present by @sthhs in https://github.com/OpenEMS/openems/pull/3517

  • Edge2Edge: filter undefined integer modbus values by @tcdrop in https://github.com/OpenEMS/openems/pull/3479

  • Fix: Handle undefined SOC in solver strategy "Optimize by keeping all near equal" by @tsicking in https://github.com/OpenEMS/openems/pull/3516

  • ControllerIoChannelSingleThresholdImpl.java: Changed inputChannel fro… by @sjjh in https://github.com/OpenEMS/openems/pull/3510

  • Kostal Piko inverter: Corrected dayYield from kWh to Wh + Units of totalYield and dayYield by @sjjh in https://github.com/OpenEMS/openems/pull/3538

  • New energy meter of type Hager ECR380D by @hrohmer in https://github.com/OpenEMS/openems/pull/3336

  • FEMS Backports 2026-01-15 by FENECON in https://github.com/OpenEMS/openems/pull/3518

    • [Edge] Evse.Controller: implement "Minimum-with-Surplus" mode Commit
    • [Edge] App.Prediction.Weather: add components aliases Commit
    • [Edge] HTTP Bridge: improvements Commit
    • [Edge] JSCalendar: improvements Commit
    • [Edge] Battery.Fenecon.Home: update register types from INTEGER to LONG for energy channels Commit
    • [Edge] Evse.Controller: implement "Minimum-with-Surplus" mode Commit
    • [Edge] EnergyScheduler v2: Fix regular optimization schedule Commit
    • [Edge] JSCalendar: implement MONTHLY recurrence Commit
    • [Edge] BatteryProtection: support dynamic ForceCharge/Discharge current Commit
    • [Edge] XmlUtils: activate SECURE_PROCESSING feature Commit
    • [Edge] FENECON Commercial 100 App Commit
    • [Edge] JSCalendarApi: fix error Commit
    • [Edge] App.System.Fenecon.Home: Remove relay validation Commit
    • [Edge] EnergyScheduler v2 improvements Commit
    • [Edge] Move JSCalendar JSONRPC API-Routes to common Commit
    • [Edge] EnergyScheduler v2 improvements Commit
    • [Edge] QuarterlyValues: use Instant instead of ZonedDateTime Commit
    • [Edge] EnergyScheduler v2 improvements Commit
    • [Edge] Battery.Fenecon.Home: add registers Commit
    • [Edge] EnergyScheduler & TimeOfUseTariffController: resolve cyclic dependencies Commit
    • [Edge] EnergyScheduler: Add generations counter Commit
  • FEMS Backports 2026-01-24 by FENECON in https://github.com/OpenEMS/openems/pull/3540

    • [Edge] ESHv2: fix possible NPE Commit
    • [Edge] ESHv2 Time-of-Use-Tariff Ctrl DELAY_DISCHARGE fix charge from AC Commit
    • [Edge] Predictors: Implement better logging Commit
    • [Edge] Controller.Ess.SoH.Cycle: Implement State-of-Health Cycle Controller Commit
    • [Edge] JSCalendar: implement nthOfPeriod for monthly byDay Commit
    • [Edge] Implement Grid-Buy-Soft-Limit in _meta (2) Commit
    • [Edge] App.FENECON.Home*: Bugfix for LED Commit
    • [Edge] Implement Grid-Buy-Soft-Limit in _meta Commit
    • [Edge] JSCalendar: Add Api-Routes to existing Components Commit
    • [Edge] FENECON 100 battery inverter: add type Commit
    • [Edge] Battery.Fenecon.Home: fix register names Commit

OpenEMS UI

  • Adjust large screen widget size based on nav position by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3354
  • Fix: Pull-to-Refresh not working by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3531
  • [UI] Use Angular property binding for SVG fill attribute by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3542
  • Fixed copy-paste bug - was subWeeks instead of subMonths/subYears by @Sn0w3y in https://github.com/OpenEMS/openems/pull/3541
  • FEMS Backports 2026-01-15 by FENECON in https://github.com/OpenEMS/openems/pull/3518
    • [UI] formly-range-type: set default value Commit
    • [UI] IBN: add configuration for alerting Commit
    • [UI] Add validator for first- and last-name fields Commit
    • [UI] eslint-rule json-no-duplicate-keys Commit
    • [UI] App Center: fix display of registered keys Commit
    • [UI] fix redirects Commit
    • [UI] improve oauth flow Commit
    • [UI] Fix user back button Commit
    • [UI] Settings | Systemlog: fix toggle Commit
    • [UI] OAuth for android app Commit
    • [UI] OAuth implementation Commit
    • [UI] Spinner for excel export Commit
  • FEMS Backports 2026-01-24 by FENECON in https://github.com/OpenEMS/openems/pull/3540
    • [UI] Fixed style issue with formly serial number fields. Commit
    • [UI] EVSE: Only show Phase-Switch for KEBA P40 Commit
    • [UI] fix channels subscribe Commit
    • [UI] Fixes for mobile UI Commit
    • [UI] fix for missing sum state on live page Commit
    • [UI] /overview: release sort order for owner Commit

OpenEMS Backend

  • FEMS Backports 2026-01-15 by FENECON in https://github.com/OpenEMS/openems/pull/3518
    • [Backend] Fix setting AlertingSettings for customers Commit
    • [Backend] Backports Commit
      • Implement Edge.Manager; Drop EdgeWebsocket -> allows load balancing -> BREAKING: This requires changes to Backend infrastructure, as it allows separating Backend to multiple servers.
      • OAuth via KeyCloak -> This splits the authentication process into OAuth via KeyCloak and Odoo
      • Add settings to GetEdges
      • Moved role from user object to metadata
      • Extend Odoo Filter
      • Backend.Edge.App: add histogram metrics to requests
      • Aggregated-InfluxDB: increase allowed Component-IDs for EVSE and EVCS
      • Add ElectricityMeter Channels for ios
      • MetadataOdoo: handle uncached Edges
      • Remove UiWebsocketValidator
      • Dummy AppCenter Metadata
    • [Backend] Mitigate possible regex backtracking Commit
  • FEMS Backports 2026-01-24 by FENECON in https://github.com/OpenEMS/openems/pull/3540
    • [Backend] add executor for refresh token Commit
    • [Backend] update odoo refresh admin token Commit
    • [Backend] Metadata.Odoo: reuse session token Commit
    • [Backend] add tags to odoo user Commit

Common/General

  • Update architecture.adoc: fixed ul within section process image by @sjjh in https://github.com/OpenEMS/openems/pull/3490
  • Update device_service.adoc: corrected title & added services by @sjjh in https://github.com/OpenEMS/openems/pull/3489
  • extends docu on Dynamic Documentation Generation, Natures (incl. ESS & IO) by @janklostermann in https://github.com/OpenEMS/openems/pull/3488
  • Update readme.adoc: corrected formatting for ul by @sjjh in https://github.com/OpenEMS/openems/pull/3498
  • Fix GitHub link in readme.adoc by @janklostermann in https://github.com/OpenEMS/openems/pull/3508
  • Introduce integration tests by @parapluplu in https://github.com/OpenEMS/openems/pull/3319
  • Update readme.adoc: added link to documentation by @sjjh in https://github.com/OpenEMS/openems/pull/3511
  • Add explanation of abbrevation CHP in readme.adoc by @janklostermann in https://github.com/OpenEMS/openems/pull/3507
  • improve formatting in nature.adoc by @janklostermann in https://github.com/OpenEMS/openems/pull/3506
  • Update readme.adoc: added limitation regarding UI pwd by @sjjh in https://github.com/OpenEMS/openems/pull/3204
  • Update readme.adoc: added docu how to use (ancillary costs) by @sjjh in https://github.com/OpenEMS/openems/pull/3225
  • Update deploy.adoc: corrected ul formatting by @sjjh in https://github.com/OpenEMS/openems/pull/3543
  • FEMS Backports 2026-01-15 by FENECON in https://github.com/OpenEMS/openems/pull/3518
    • [Common] Checkstyle: check test files Commit
    • [Common] Tools: read version from package.json or OpenemsConstants.java Commit
    • [Common] Fix prepare-commit.sh script Commit
  • FEMS Backports 2026-01-24 by FENECON in https://github.com/OpenEMS/openems/pull/3540
    • [Edge/Backend] Various Cleanups Commit

Version Upgrades

  • [UI] Update to latest LTS: Node 24, NPM 11 Commit
  • Update bnd to 7.2.1 Commit
  • Update Gradle to 9.3.0 by @sfeilmeier in https://github.com/OpenEMS/openems/pull/3529
  • Bump org.jmdns:jmdns from 3.6.2 to 3.6.3 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3495
  • Bump org.jsoup:jsoup from 1.21.2 to 1.22.1 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3496
  • Bump org.rrd4j:rrd4j from 3.9 to 3.10 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3504
  • Bump org.junit.jupiter:junit-jupiter-api from 6.0.1 to 6.0.2 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3503
  • Bump net.bytebuddy:byte-buddy from 1.18.3 to 1.18.4 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3525
  • Bump com.google.protobuf:protobuf-java from 4.33.2 to 4.33.4 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3524
  • Bump the influxdb group in /cnf with 4 updates by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3519
  • Bump org.postgresql:postgresql from 42.7.8 to 42.7.9 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3523
  • Bump com.auth0:auth0 from 2.22.0 to 3.0.0 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3521
  • Bump com.fasterxml.jackson.core:jackson-annotations from 2.19.2 to 2.20 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3522
  • Bump @angular/core from 20.3.15 to 20.3.16 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3514
  • Bump com.fasterxml.jackson.core:jackson-annotations from 2.20 to 2.21 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3537
  • Bump urllib3 from 2.5.0 to 2.6.3 in /tools/integration_tests by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3528
  • Bump lodash from 4.17.21 to 4.17.23 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3536
  • Bump lodash-es from 4.17.21 to 4.17.23 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3535
  • Bump com.google.protobuf:protobuf-java from 4.33.4 to 4.33.5 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3549
  • Bump org.objenesis:objenesis from 3.4 to 3.5 in /cnf by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3548
  • Bump hono from 4.11.4 to 4.11.7 in /ui by @dependabot[bot] in https://github.com/OpenEMS/openems/pull/3546

New Contributors

  • @hrohmer made their first contribution in https://github.com/OpenEMS/openems/pull/3336

Full Changelog: https://github.com/OpenEMS/openems/compare/2026.1.0...2026.2.0****

Files

OpenEMS/openems-2026.2.0.zip

Files (79.7 MB)

Name Size Download all
md5:f2c61e4620eb228126ca89b4363830da
79.7 MB Preview Download

Additional details

Related works

Software