Skip to content

Releases: OpenEMS/openems

2024.10.0

01 Oct 19:24
0941db4
Compare
Choose a tag to compare

Last month we attended the OpenEMS Hackathon 2024 in OsnabrΓΌck, Germany, at Slashwhy. See the recording on YouTube for details: https://www.youtube.com/watch?v=9FWw0lQY4jc

Details

Upcoming PRs

  • Brand new 7-step advanced tutorial in #2791 and #2792
  • LSTM predictor in #2721
  • Energy Scheduler: refactored time-of-use tariff and energy schedule AI optimizer #2789

Common/General

OpenEMS Edge

  • FEMS Backports 2024-09 in #2788
    • AppCenter: handle hardware specifics via hardware Apps
    • AppCenter: App for Phoenix Contact Meter EEM-MB370-24DC
    • AppCenter: App for PqPlus Meter UMD96 & UMD97
    • Channels: allow translatable Channel descriptions
    • Controller.Api.ModbusTcp.ReadWrite: UI live and historic view
    • GoodWe: fix StateRegisters
    • Simulated Predictor

OpenEMS UI

  • add @Stylistic to style rules by @miettal in #2779
  • FEMS Backports 2024-09 in #2788
    • track connection State & add backend not accessible info

Version Upgrades

  • Build(deps): Bump org.dhatim:fastexcel from 0.18.1 to 0.18.2 in /cnf by @dependabot in #2772
  • Build(deps): Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.24 to 5.1.26 in /cnf by @dependabot in #2798
  • Build(deps): Bump net.java.dev.jna:jna from 5.14.0 to 5.15.0 in /cnf by @dependabot in #2799
  • Build(deps): Bump org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm from 1.8.1 to 1.9.0 in /cnf by @dependabot in #2796
  • Build(deps): Bump com.squareup.okio:okio-jvm from 3.9.0 to 3.9.1 in /cnf by @dependabot in #2797
  • Build(deps): Bump org.apache.felix:org.apache.felix.webconsole from 5.0.6 to 5.0.8 in /cnf by @dependabot in #2818
  • Build(deps): Bump com.google.guava:guava from 33.3.0-jre to 33.3.1-jre in /cnf by @dependabot in #2815
  • Build(deps): Bump the fastexcel group across 1 directory with 2 updates by @dependabot in #2816
  • Build(deps): Bump com.zaxxer:HikariCP from 5.1.0 to 6.0.0 in /cnf by @dependabot in #2817
  • Build(deps): Bump swiper from 11.1.11 to 11.1.14 in /ui by @dependabot in #2802
  • Build(deps): Bump @capacitor-community/file-opener from 6.0.0 to 6.0.1 in /ui by @dependabot in #2787
  • Build(deps): Bump serve-static and express in /ui by @dependabot in #2805
  • Build(deps): Bump vite and @angular-devkit/build-angular in /ui by @dependabot in #2808
  • Build(deps-dev): Bump the eslint group across 1 directory with 3 updates by @dependabot in #2812
  • Build(deps): Bump @angular/common from 18.0.5 to 18.2.5 in /ui in the angular group across 1 directory by @dependabot in #2811

Full Changelog: 2024.9.0...2024.10.0

2024.9.0

31 Aug 14:42
97417dd
Compare
Choose a tag to compare

Common/General

OpenEMS Edge

  • FEMS-Backports 2024-08 in #2740
    • BatteryProtection: actually apply soc-limit
  • FEMS-Backports 2024-08 (2) by in #2771
    • Rrd4j: Fix query for custom range
      • fix start for timeranges with not the first day of the month
      • fix readonly only worked with debugmode
    • GridOptimizedCharge: avoid fail state in OFF

OpenEMS UI

  • FEMS-Backports 2024-08 in #2740
    • Fix wrong displayed unit in energy chart for Soc
    • Extend subnavigation for consumption, production and grid history
      • Add total phases to subnavigation in consumption and production history
      • split charts
    • Add lastMessage to offline information
    • Fix "prod" build
    • Fix unit in asymmetric voltagecurrent chart
      • Fix wrong displayed unit for current in voltage/current chart
    • Realign xAxisLabels
      • Fixing xAxis labels in all not refactored charts
    • Fix channels error while on same dashboard
      • /channels: If you want to see the same dashboard for another fems and just replace the femsNumber in url, creates Errors
  • Apply formatting by @sfeilmeier in #2742
  • AppCenter Index: Refresh after install/delete of an App by @DerStoecki in #2533
  • Fix for Configuration & Status not populated Fully by @Sn0w3y in #2738
  • Fix percentagebar svg by @da-Kai in #2732
  • FEMS-Backports 2024-08 (2) by in #2771
    • Fix sum chart in consumption history
      • Wrong variable used in consumption detail html
    • Add routing guards for settings
      • Introduction of Routing Guards
      • Not visible routes could be accessed through manually going there
      • Adding edge role check before accessing this route
    • Center refresher-spinner
      • Center refresh-content-spinner
    • Migration to angular 18
      • Update Angular, Zone.js, Typescript
    • ESlint: no-multiple-empty-lines
    • Fix tooltip afterTitle display bug
    • Enforce double quotes
      • Enforce usage of double quotes
      • prohibit single quotes
      • backticks are still usable -> ref
    • Add exhaustive switch eslint rule
    • App: Update android api due to googles new policy
      • Updating android api level due to googles new policy, enforcing ANDROID_API_LEVEL=34 to be minimum version
    • Build android app
      • Add CI pipeline for building Android apps
    • Reduce history queries & overloading of chartData
      • If a history chart takes too long to load and the user switches the timerange, the old timerange will be shown instead of the actual one (at least for a few seconds, until the new chart is finished)
    • Replace setCurrentComponent with getCurrentEdge
      • setCurrentComponent is already deprecated and shouldnt be used anymore
    • Unify fixDigitalOutput & singlethreshold history (#1315)
      • Unify and refactor all FixDigitalOutputControllers and SingleThresholds in one widget in history
      • Refactoring them and using the new CumulatedLevelActiveTime-Channel
    • Fix TimeOfUseTariff powerSocChart
      • Fix TypeError: this.options.plugins is undefined

Version Upgrades

  • Build(deps): Bump swiper from 11.1.8 to 11.1.9 in /ui by @dependabot in #2734
  • Build(deps): Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 2.0.0 to 2.0.20 in /cnf by @dependabot in #2758
  • Build(deps): Bump io.reactivex.rxjava3:rxjava from 3.1.8 to 3.1.9 in /cnf by @dependabot in #2753
  • Build(deps): Bump com.influxdb:influxdb-client-core from 7.1.0 to 7.2.0 in /cnf by @dependabot in #2744
  • Build(deps): Bump @capacitor/core from 5.7.7 to 5.7.8 in /ui by @dependabot in #2741
  • Build(deps): Bump @capacitor/ios from 5.7.7 to 5.7.8 in /ui by @dependabot in #2748
  • Build(deps): Bump @capacitor/android from 5.7.7 to 5.7.8 in /ui by @dependabot in #2749
  • Build(deps-dev): Bump @capacitor/cli from 6.1.1 to 6.1.2 in /ui by @dependabot in #2750
  • Build(deps-dev): Bump axios from 1.6.8 to 1.7.5 in /ui by @dependabot in #2760
  • Build(deps): Bump webpack and @angular-devkit/build-angular in /ui by @dependabot in #2761
  • Build(deps): Bump org.postgresql:postgresql from 42.7.3 to 42.7.4 in /cnf by @dependabot in #2762
  • Build(deps): Bump org.owasp.encoder:encoder from 1.2.3 to 1.3.1 in /cnf by @dependabot in #2763
  • Build(deps): Bump com.google.guava:guava from 33.2.1-jre to 33.3.0-jre in /cnf by @dependabot in #2764
  • Build(deps-dev): Bump the eslint group in /ui with 2 updates by @dependabot in #2767
  • Build(deps): Bump swiper from 11.1.9 to 11.1.11 in /ui by @dependabot in #2768
  • Build(deps): Bump chart.js from 4.4.3 to 4.4.4 in /ui by @dependabot in #2769
  • Dependabot is now configured to create joint PRs for similar packages

Full Changelog: 2024.8.0...2024.9.0

2024.8.0

01 Aug 21:04
498e3b1
Compare
Choose a tag to compare

Release Highlights

  • Backend performance improvements
  • Controller and UI for "dimming" of an energy storage system according to German law Β§14a EnWG
  • Lots of code quality improvements in UI
  • Not yet in this release, but in the final review: Long short term memory (LSTM) prediction models for Time series Data by @Bishalghimire1997 and @pooran-c

Details

Common/General

  • Correct references to build.adoc by @HarmOtten in #1150
  • Update build actions by @da-Kai in #2697
  • FEMS Backports 2024-07 in #2727
    • Gradle: automate version update for android build.gradle
    • Controller.Ess.Limiter14a: Edge Controller and UI visualization for "dimming" according to German law Β§14a EnWG

OpenEMS Backend

  • FEMS Backports 2024-07 in #2727
    • Performance optimizations
      • Drop PerMessageDeflate because it has bad effects on performance with a high number of connected Edges
      • Add a copy of Draft6455 which does not throw an exception internally
      • Reduce Exceptions
      • OnOpen: no unnecessary parsing of handshake + do not throw Exception
      • Parse JsonrpcMessage inside Executor Thread
      • sendMessage by default never throws Exception
      • use StringBuilders where feasible
      • throw the same Exception for all disposed requests in WsData
    • InfluxDB: remove filter for sunspec channels
    • Metadata: add handling of "ems type"
    • Aggregated Influx: add channels for ctrlEssLimiter14a0
    • Cleanup logs:
      • "No measurement provided for zoneId"
      • "Channels missing in Current-Data "
    • WsData:
      • handle failed send message
      • set WsData.WebSocket via constructor
    • Change debugLog interval to 5 seconds
    • Replace run() with standard method names
    • Add internal WebsocketPerformanceTestApp
    • Drop now unused Websocket DebugMode
  • Backend Metadata: reuse getPageDevice method for MetadataFile and MetadataDummy by @sfeilmeier in #2728

OpenEMS Edge

  • Unit Tests: Add test case for alphabetical scheduler by @parapluplu in #2698
  • SimulatorApp: fix bug related to creation of Ess.Power component by @parapluplu in #2722
  • Fix documentation for allowed charge power of managed symmetric ess by @parapluplu in #2714
  • FEMS Backports 2024-07 in #2727
    • Home Battery:
      • fix calculation of number of towers
      • handle tower exceptionally not 0/null for some bms versions
      • downgrade uncritical states to INFO
    • Battery-Protection: add SoC-to-Percent characteristics & implement for FENECON Home Battery
    • KACO Battery-Inverter: optimize state machine handling
    • MR Gridcon: move obsolete bundle to archive
    • Translation keys for timedata category

OpenEMS UI

  • fix: resolve ts-strict and angular compatibility by @miettal in #2687
  • fix: decrease using type of any to get typing benefit by @miettal in #2704
  • fix: add type to test code by @miettal in #2702
  • fix: add null type to null initialization variables by @miettal in #2701
  • fix: add types to edgeconfig.ts by @miettal in #2699
  • FEMS Backports 2024-07 in #2727
    • Fix Nullpointer thrown through chart.js after failed query.
      • Apparently chartjs not having completely rendered datasets and property borderColor was missing
    • Extend vscode extensions with 18n ally
      • add i18n ally to vscode extensions
    • Fix ChartJs yAxis scaling for only 0 values in data series
      • Chartjs y-axis Scaling for only null or/and 0 values in data series results in doing negative and positive scaling
    • Add missing redirect after token expired
      • Token expired, old route got reloaded, no redirection to /login
    • Add Power-Assistant
      • Add Power-Assistant to UI Settings
      • Show relevant channels for power constraints; sorted by Scheduler
      • Cleanup Settings + separate ADMIN widgets
    • Add subnavigation to consumption history
      • restructured overdue shared folder
      • added current and voltage chart (only visible for Role.INSTALLER to consumption and production history
      • added subnavigation to consumption history
    • Add missing module for angular date picker
      • Add missing import for pickdatepopovercomponent, unittest will follow soon
    • Fix live modal visualization of meters
    • Add Unittest for angular-my-date-picker
      • Testing if button click is opening calendar or rather if this component exists in the DOM after button click
    • Move Helpbutton to its right module
    • Prepare platform check to login page
    • Fix other consumption calculation
      • Adding unittest for calculation of other consumption
      • Fixing wrong calculation of other consumption for multiple evcs and consumptionMeters
    • Refactor gridOptimizedCharge history
    • Replace global role with edge role check
      • /settings: replacing check for global Role with edge Role
      • Add unittest for role in /settings
    • Live-EnergyMonitor: use new sum Max/Min ESS DischargePower channels
    • refactor variables and methods in right order
      • Refactors every variable and method to member-ordering rule.
      • See: [https://typescript-eslint.io/rules/member-ordering/]

Version Upgrades

  • Bump peaceiris/actions-gh-pages from 3 to 4 in /.github/workflows by @dependabot in #2690
  • Bump docker/build-push-action from 5 to 6 in /.github/workflows by @dependabot in #2689
  • Build(deps): Bump org.apache.felix:org.apache.felix.webconsole from 5.0.4 to 5.0.6 in /cnf by @dependabot in #2713
  • Build(deps): Bump de.bytefish:pgbulkinsert from 8.1.3 to 8.1.4 in /cnf by @dependabot in #2712
  • Build(deps): Bump org.jsoup:jsoup from 1.17.2 to 1.18.1 in /cnf by @dependabot in #2711
  • Build(deps): Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.22 to 5.1.24 in /cnf by @dependabot in #2710
  • Build(deps): Bump swiper from 11.1.4 to 11.1.5 in /ui by @dependabot in #2709
  • Build(deps): Bump @ngx-formly/ionic from 6.3.5 to 6.3.6 in /ui by @dependabot in #2708
  • Build(deps): Bump capacitor-blob-writer from 1.1.16 to 1.1.17 in /ui by @dependabot in #2707
  • Build(deps): Bump @capacitor/core from 5.2.3 to 5.7.6 in /ui by @dependabot in #2695
  • Build(deps-dev): Bump @capacitor/cli from 5.2.3 to 6.1.0 in /ui by @dependabot in #2696
  • Build(deps-dev): Bump @capacitor/cli from 6.1.0 to 6.1.1 in /ui by @dependabot in #2720
  • Build(deps): Bump @capacitor/ios from 5.2.3 to 5.7.7 in /ui by @dependabot in #2719
  • Build(deps): Bump compare-versions from 6.1.0 to 6.1.1 in /ui by @dependabot in #2718
  • Build(deps): Bump @capacitor/core from 5.7.6 to 5.7.7 in /ui by @dependabot in #2716
  • Build(deps): Bump swiper from 11.1.5 to 11.1.8 in /ui by @dependabot in #2726
  • Update Gradle to 8.9 by @sfeilmeier in #2706
  • Build(deps-dev): Bump @stylistic/eslint-plugin from 2.3.0 to 2.4.0 in /ui by @dependabot in #2725
  • Build(deps): Bump org.dhatim:fastexcel from 0.18.0 to 0.18.1 in /cnf by @dependabot in #2724
  • Build(deps): Bump @capacitor/android from 5.2.3 to 5.7.7 in /ui by @dependabot in #2717

New Contributors

Full Changelog: 2024.7.0...2024.8.0

2024.7.0

01 Jul 13:51
Compare
Choose a tag to compare

Release Highlights

  • New Time-of-Use tariff implementations for Stadtwerk Haßfurt and Groupe-E
  • Backend performance improvements, e.g. by reducing size of EdgeConfig
  • New Edge2Edge Meter
  • New Shelly compatibilities
  • New implementation of Samsung SDI energy storage system
  • UI: improved multi-step navigation in footer
  • Continuous improvement of code quality with Codecov and ESlint

Details

Common/General

  • FEMS Backports 2023-06 in #2664
    • EdgeConfig: remove Channels
      • Normal EdgeConfig does not contain Channels anymore
      • Added separate Requests to get channels for:
        • Component Status View
        • Component Channels View
        • Subscribe only needed Channels in Soltaro ServiceAssistent
        • Get Channel Units for variable channel for singlethreshold history & live
        • Get DigitalInputChannels with separate request and fixed subscription
  • Implement Codecov by @da-Kai in #2685 and #2693
  • CI: Update docs build by @da-Kai in #2686
  • Update github-actions using dependabot by @da-Kai in #2688
  • FEMS Backports 2024-06 (2) in #2692
    • Prepare build for native Android App
    • Tools: add internal tool to convert between JSONRPC and XLSX
    • EdgeConfig: remove unused factories & properties
      • Removed unused factories & factory properties from EdgeConfig
      • Added separate request to get all factories and properties for component update / installation
    • Debian package: implement apt purge
    • CI: Improve java build

OpenEMS Backend

  • FEMS Backports 2023-06 in #2664
    • Remove edges from authenticate
  • FEMS Backports 2024-06 (2) in #2692
    • Add logging for certain commands
    • Improve Metadata Odoo performance
    • Improve Postgres performance
      • reduce update time from 120 to 30 seconds
      • fix Sum-State update bug
    • InfluxDB:
      • extract channel filter to separate class; add unit tests
      • add configurable channel blacklist
      • improve FieldTypeConflictHandler; add unit tests
    • StringUtils: drop matchesIntegerPattern and matchesFloatPattern; replace with Guava
    • ThreadPoolUtils: fix possible NullPointerException

OpenEMS Edge

  • FEMS Backports 2023-06 in #2664
    • Hardy Barth: correct Phase URL mapping
      • Wrong mapping of Phase 3 current
    • BridgeHttp: added support for http code & message
      • added support for http code & message
      • changed DelayTimeProvider to also be able to handle errors and success responses
      • improved testing
      • added common class HttpStatus with all official Http status codes as constants
      • added lazy endpoint construction to define unique params for each call
    • Time-of-Use Tariff Stadtwerk Haßfurt implementation
    • Time-of-Use Tariff Groupe-E implementation
      • Added new provider Groupe-E.
      • Added new currency CHF (Swiss francs) to the list of currencies in core meta.
      • Moved the exchangerate API to Utils so it is common for both ENTSO-E and Groupe-E providers.
  • Implement a new Edge2Edge Meter by @Sn0w3y in #2621
  • InfluxDB Edge Timedata: handle persistence priority by @DerWahreKlinki in #2663
  • Controller.Api.MQTT: reconnect on connection failure by @Sn0w3y in #2602
  • Implement Samsung SDI ESS System (legacy) by @Sn0w3y in #2638
  • Implement ShellyPro3Em by @Sn0w3y in #2567
  • Implement ShellyPlus1PM by @Sn0w3y in #2571
  • Implement Shelly 3 Pro Relais-"Board" by @Sn0w3y in #2572
  • FEMS Backports 2024-06 (2) in #2692
    • SymmetricEss: add Min-/MaxCellVoltage-/Temperature channels to modbus slave table
      • Added the following register to the Modbus slave table
      • MIN_CELL_VOLTAGE
      • MAX_CELL_VOLTAGE
      • MIN_CELL_TEMPERATURE
      • MAX_CELL_TEMPERATURE
    • HeatingElement: added JUnit test
    • Apps for DiscovergyMeter and TimeInfluxDb
    • SunSpec: set persistence priority VERY_LOW
    • Replace StringUtils.matches*Pattern

OpenEMS UI

  • Fix docker ui builds by @da-Kai in #2662
  • FEMS Backports 2023-06 in #2664
    • Added metric field in 'Network configuration'
    • fix tab title
      • setting web-app tab title to environment.edgeShortName
    • Split user and company related information
      • Splitting user and company related data, only user data is editable, non company assigned users are still seeing the same and are able to change all userInformation
    • set secure=https property in Cookie
      • this fixes an issue where a token value could be exposed when redirecting from http to https
  • Adding stylistic eslint plugin by @miettal in #2671
  • Fix ion-row css-syntax-error by @Sn0w3y in #2628
  • Improve select channels view by @Sn0w3y in #2599
  • Fix: remove ts-strict-ignore for env files and add typing by @miettal in #2683
  • Update eslint rules and refactoring types. by @miettal in #2676
  • FEMS Backports 2024-06 (2) in #2692
    • Add footer subnavigation
      • New subnavigation in /history/production
    • Allow SNAPSHOT update for OWNER/INSTALLER
      • Remove special handling for SNAPSHOT versions in update handler
    • Add loading screen during authentication
      • Introduction of loading screen, shown during authentification process
      • Skip "Login"-screen if a valid authentication token exists
    • Fix error messages shown in status.component
      • fix display of error message in status.component, was showing property channels as well
    • Channels fix setting values
      • Bug: "Cannot read properties of undefined (reading 'componentId')" when setting a value in the channels view

Version Upgrades

  • Bump com.google.guava:guava from 33.2.0-jre to 33.2.1-jre in /cnf by @dependabot in #2661
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.14 to 5.1.16 in /cnf by @dependabot in #2669
  • Bump org.apache.felix:org.apache.felix.scr from 2.2.10 to 2.2.12 in /cnf by @dependabot in #2668
  • Bump swiper from 11.1.1 to 11.1.4 in /ui by @dependabot in #2659
  • Bump typescript-strict-plugin from 2.4.3 to 2.4.4 in /ui by @dependabot in #2665
  • Bump @ngx-formly/ionic from 6.3.0 to 6.3.4 in /ui by @dependabot in #2667
  • Bump uuid from 9.0.1 to 10.0.0 in /ui by @dependabot in #2666
  • Bump braces from 3.0.2 to 3.0.3 in /ui by @dependabot in #2670
  • Bump chart.js from 4.4.2 to 4.4.3 in /ui by @dependabot in #2643
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.16 to 5.1.20 in /cnf by @dependabot in #2673
  • Bump @stylistic/eslint-plugin from 2.1.0 to 2.2.1 in /ui by @dependabot in #2674
  • Bump @types/uuid from 9.0.8 to 10.0.0 in /ui by @dependabot in #2682
  • Bump @stylistic/eslint-plugin from 2.2.1 to 2.2.2 in /ui by @dependabot in #2681
  • Bump @ngx-formly/ionic from 6.3.4 to 6.3.5 in /ui by @dependabot in #2680
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.20 to 5.1.22 in /cnf by @dependabot in #2679
  • Bump org.apache.felix:org.apache.felix.webconsole from 5.0.2 to 5.0.4 in /cnf by @dependabot in #2678

Full Changelog: 2024.6.0...2024.7.0

2024.6.0

01 Jun 19:51
Compare
Choose a tag to compare

Release Highlights

  • Time-Of-Use-Tariff: implement rabot.charge in #2656
  • Improvements to Modbus-SunSpec compatibility in #2656

Details

Common/General

  • Generate jacoco xml report by @parapluplu in #2652
  • FEMS Backports 2023-05 in #2656
    • Adding fix messages for retrofit bnd
    • Update Debian settings
      • Do not install man-pages, locales, docs
    • CI: Improve gradle scripts
  • fix: ./gradlew buildEdge error by @katsuya in #2651
  • Gradle: update to version 8.8 by @sfeilmeier in #2657

OpenEMS Backend

  • FEMS Backports 2023-05 in #2656
    • Send ON_SET_SUM_STATE Event only on change (#1195)
    • b2bwebsocket: fix tests
      • Gradle builds end with a warning: Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0.
      • This is due to this error
    > Task :io.openems.backend.b2bwebsocket:test
    No test executed. This behavior has been deprecated. This will fail with an error in Gradle 9.0. There are test sources present but no test was executed. Please check your test configuration. Consult the upgrading giude for further information: https://docs.gradle.org/8.7/userguide/upgrading_version_8.html#test_task_fail_on_no_test_executed
    
    • Alerting: fix NPE, general improvements
      • make local variables final
      • remove public from interface methods
      • add null check to Message.compareTo

OpenEMS Edge

  • FEMS Backports 2023-05 in #2656
    • TimeOfUseTariff rabot.charge implementation
    • Battery improvements
      • Adds DC_MIN_VOLTAGE and DC_MAX_VOLTAGE to BatteryInverter; implemented in KACO.
      • Adds ESS-Protection on Generic-ESS
      • Adds Voltage Regulation in ESS
    • Modbus/SunSpec: implement BitWords
      • Refactor SunSpecCodeGenerator
      • Handle BITFIELD16 and BITFIELD32 properly
      • Allow overriding BITFIELD mapping, e.g. for "Vendor defined events"
    • ESS Power Solver: improve KEEPING_ALL_EQUAL strategy
      • Add OPTIMIZE_BY_KEEPING_ALL_NEAR_EQUAL strategy; automatically applied as fallback to OPTIMIZE_BY_KEEPING_ALL_EQUAL.
    • Systemd-Networkd: parse [Gateway] in [Route] block
    • GoodWe: fix sorting of diagnostic bit registers
    • Power Solver: OPTIMIZE_BY_KEEPING_ALL_NEAR_EQUAL
    • GoodWe: fix impossible high Battery Power values
    • FENECON Home Battery add stop functionality
      • STOP Home battery on very low cell voltage. Adds Channels:
        • LOW_MIN_VOLTAGE_WARNING: Low min voltage warning | Niedriger Ladezustand der Batterie, da die Batterie nicht durch den Wechselrichter beladen werden kann. Ohne Beladung schaltet sich die Batterie demnΓ€chst ab, um sich selbst zu schΓΌtzen
        • LOW_MIN_VOLTAGE_FAULT: Low min voltage fault | Niedriger Ladezustand. Die Batterie schaltet sich demnΓ€chst ab, um sich selbst zu schΓΌtzen
        • LOW_MIN_VOLTAGE_FAULT_BATTERY_STOPPED: Low min voltage fault - Battery stopped | Batterie wurde wegen zu niedrigem Ladezustand abgeschaltet. Bitte kontaktieren Sie Ihren Installateur
    • WeidmΓΌller IO: fix reading of CurrentModuleList
      • Fixed hidden ClassCastException in readCurrentModuleList()
  • Refactored Shelly 2.5 to use HttpBridge by @Sn0w3y in #2573

OpenEMS UI

  • FEMS Backports 2023-05 in #2656
    • add notification infrastructure
    • add warning for systemupdate
      • Confirmation alert for systemupdate
      • Standardizing alert for update and EMS restart
    • adjust translations of alert
    • Adjust translations of confirmation alert of system update
    • improve systemLog
      • Adding searchbar to be able to filter systemlog (case-insensitive)
      • Adding debug level filter
      • Enable Copying of systemlog
      • Improved filter for Non condensed output -> splitting debugLog string if line-breaks provided
      • add toggle to reconfigure condensedOutput
    • fix duplicate legend item generation for same aliases
    • Extend Eslint
      • Extend EsLint to make implementing lifecycle interfaces mandatory
    • Hide Menu in login page

Version Upgrades

  • Bump com.google.guava:guava from 33.1.0-jre to 33.2.0-jre in /cnf by @dependabot in #2632
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.10 to 5.1.12 in /cnf by @dependabot in #2631
  • Bump @ngx-translate/core from 14.0.0 to 15.0.0 in /ui by @dependabot in #2626
  • Bump typescript-strict-plugin from 2.4.1 to 2.4.3 in /ui by @dependabot in #2634
  • Bump ejs from 3.1.9 to 3.1.10 in /ui by @dependabot in #2629
  • Bump vite and @angular-devkit/build-angular in /ui by @dependabot in #2624
  • Bump eslint-plugin-unused-imports from 3.1.0 to 3.2.0 in /ui by @dependabot in #2633
  • Update dependencies: influx, kotlin, gson by @dependabot in #2647
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.12 to 5.1.14 in /cnf by @dependabot in #2654
  • Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 1.9.24 to 2.0.0 in /cnf by @dependabot in #2653

New Contributors

Full Changelog: 2024.5.0...2024.6.0

2024.5.0

02 May 11:37
Compare
Choose a tag to compare

Release Highlights

  • New implementations
  • UI: optional strict mode for improved code quality in #2623
  • WebSocket: improved communication performance by @miettal in #2616

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2023-04 in #2623
    • Add API for Simulation-Engine Component
      • In future this should be used for scenario simulations, like what would have been the benefit of using an additional battery module

OpenEMS Edge

  • MQTT API Controller: add optional config parameter to specify a topic prefix by @samuelBloch in #2553
  • SunSpec: Channel values synchronized by @tsicking in #2609
  • Implement new Shelly Plus Plug S by @Sn0w3y in #2529
  • Updates Microcare / Eastron and Implements Meter SDM120 by @Sn0w3y in #2554
  • FEMS Backports 2023-04 in #2623
    • Modbus-Bridge:

      • Improve SunSpec handling for SMA PV-Inverter: certain versions do not provide END_OF_MAP but throw ILLEGAL_ADDRESS_EXCEPTION instead, causing the previous SunSpec implementation to get stuck while parsing
      • Remove unnecessary throws OpenemsException and try...catch in certain places (defineModbusProtocol(), new ModbusProtocol(), addTask(),...)
      • Optionally provide ExecuteState of an entire ModbusTask; this allows for more fine-grained evaluation of read errors
    • Switch to updated readElementOnce and/or improve brevity of CompletableFuture by using thenCompose instead of thenAccept in...

    • RRD4j: correctly postprocess queried data

      • fix querying data with different resolution than 5 Minutes
    • Time-of-Use: split Optimizer and Controller

      • Introduce new Bundles for Energy and Energy API
      • Time-of-Use-Controller and EnergyScheduler are still tightly coupled for now, as this is an ongoing refactoring. Eventually they should only communicate via EnergySchedulable
      • Move Optimizer (i.e. all Jenetics related code) to Energy
      • New Channel _sum/GridBuyPrice
      • UI: show data in [kW] and cleanup code
      • Tibber: Homes-Filter could not be unset
    • KACO Blueplanet Gridsave BatteryInverter: state-machine improvement

      • Update Kaco Blueplanet Gridsave state-machine
      • Add grid disconnection failure state channel
      • Replace MAX_START_ATTEMPTS with MAX_START_TIMEOUT
    • GoodWe

      • Optionally show values per MPPT; not per String
        • GoodWeChargerTwoStringImpl was used to represent one string from a GoodWe MPPT tracker that is responsible for two strings (GoodWe ET-Systems).
        • Possible values given by GoodWe are: MPPT Current, MPPT Power, String Current, String Voltage
        • As the current values of one string are incorrect (so far DSP-Version 12, ARM-Version 27) the power cannot be calculated as expected.
        • A new Component GoodWeChargerMpptTwoStringImpl is mirroring the GoodWe values to get the important values from: MPPT Current, MPPT Power, String Voltage (One of the two strings)
      • Update BMS Registers ChargeMaxVoltage & DischargeMinVoltage
        • Set ChargeMaxVoltage & DischargeMinVoltage
        • Handle inverter specific behaviour on empty/full battery

OpenEMS UI

  • Center Text in Footer by @Sn0w3y in #2594
  • FEMS Backports 2023-04 in #2623
    • Add optional strict mode
    • Update to Angular Version 16.
    • Revert calculating stepSize for charts
      • Removing stepSize calculation due to chartjs breaking style in some circumstances
      • keeping max ticks limit at 6
    • Change resolution from 20 to 15 minutes
    • Remove dead link from ChpSoc (BHKW) Widget in history
    • Settings|Channels: fix Persistence Priority warning
      • Warning for persistencePriority lower than backends global priority, was also shown for equals
    • Hide FooterComponent for history Children due to overlapping on different heights
    • Footer: fix esLint autofix mistake; hide for history detail views
    • Revert adding detail navigation to production history (this is a planned feature that was accidentially merged)
    • Fix Page count of edges pagination on initial search

Version Upgrades

  • Bump com.squareup.retrofit2:retrofit from 2.10.0 to 2.11.0 in /cnf by @dependabot in #2606
  • Bump org.dhatim:fastexcel from 0.17.0 to 0.18.0 in /cnf by @dependabot in #2620
  • Bump org.apache.felix:org.apache.felix.webconsole from 5.0.0 to 5.0.2 in /cnf by @dependabot in #2619

Full Changelog: 2024.4.0...2024.5.0

2024.4.0

31 Mar 16:09
Compare
Choose a tag to compare

Release Highlights

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • Janitza UMG 511: fix inverted active power by @tsicking in #2587
  • FEMS Backports 2023-03 by @sfeilmeier, @venu-sagar, @lukasrgr, @michaelgrill, @da-Kai, @huseyinsaht, @hydroid7, @sebastianasen, @AnasShetla, @mlang97 in #2593
    • Improvements to ESS Time-of-Use-Tariff-Controller
      • Optionally show Grid-Buy in UI forecast and history chart (in a third y-axis)
        • Improve calculation of charge power in CHARGE_GRID mode
        • More and smarter Genotypes in initialPopulation
        • Improved error handling
        • New EnergyFlow calculation + fix previsou calculation bugs
        • Be default always apply Β§14a EnWG limit of 4.2 kW (configurable)
    • Tibber: implement handling for rate limit (HTTP code 429), differentiate warnings based on HTTP status codes
    • AppCenter Tibber: Access Token will be displayed as "xxx" if set, hide "homes" filter and improve description
    • AppCenter: add fixStateOfCharge App
    • AppCenter: Add definition to set min Role to delete an App & validation
    • AppCenter: Add popover to notify about unused keys
    • FENECON Home Battery: improve calculation for number of towers
    • Edge/UI: add persistencePriority to EdgeConfig + warning in /channels
    • Improve Controller ESS Cycle: fix Standby Time
    • GoodWe: Disable ShadowManagement
    • HeatingElement: Changed Persistence Priority for LEVEL to HIGH

OpenEMS UI

  • Install/Update Component filter to lower case by @DerStoecki in #2531
  • Update user.component.html to handle "null" cases by @Sn0w3y in #2527
  • modal-line element INPUT with optional unit by @JosefRick in #2489
  • Add japanese language support by @miettal in #2538
  • Fix Translations by @Sn0w3y in #2595
  • add eslint:recommended and plugin:@typescript-eslint/recommended by @miettal in #2577
  • FEMS Backports 2023-03 by @sfeilmeier, @venu-sagar, @lukasrgr, @michaelgrill, @da-Kai, @huseyinsaht, @hydroid7, @sebastianasen, @AnasShetla, @mlang97 in #2593
    • Improvements to ESS Time-of-Use-Tariff-Controller
      • Optionally show Grid-Buy in UI forecast and history chart (in a third y-axis)
    • Change chartjs resolution for mobile view
    • Implement system reboot in new maintenance view (/system)
    • Edge/UI: add persistencePriority to EdgeConfig + warning in /channels
    • Extend unittest for pickdatepopover
    • EVCS: fix possible NPE
    • Add footer for EMS-Nr., installed version and comment
    • add edgeShortName to browser title

Version Upgrades

  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.8 to 5.1.10 in /cnf by @dependabot in #2564
  • Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 1.9.22 to 1.9.23 in /cnf by @dependabot in #2574
  • Bump com.ghgande:j2mod from 3.2.0 to 3.2.1 in /cnf by @dependabot in #2575
  • Bump com.squareup.okio:okio-jvm from 3.8.0 to 3.9.0 in /cnf by @dependabot in #2585
  • Bump de.bytefish:pgbulkinsert from 8.1.2 to 8.1.3 in /cnf by @dependabot in #2582
  • Bump com.google.guava:guava from 33.0.0-jre to 33.1.0-jre in /cnf by @dependabot in #2579
  • Bump org.postgresql:postgresql from 42.7.2 to 42.7.3 in /cnf by @dependabot in #2580
  • Bump d3 from 7.8.5 to 7.9.0 in /ui by @dependabot in #2586

Full Changelog: 2024.3.0...2024.4.0

2024.3.0

03 Mar 16:42
Compare
Choose a tag to compare

Release Highlights

  • New implementations:
    • Shelly 3EM by @Sn0w3y in #2519
    • Spelsberg SMART PRO charging station by @REdelhoff in #2402
    • Generic LinuxFs GPIO (for Modberry) by @hydroid7 in #2560
    • SumState-Alerting by @da-Kai in #2260: Be aware that this is a breaking change in UI, Backend and Odoo implementation for Alerting. Previously Alerting only worked for offline devices. This new features adds alerting also in error state.

Details

Common/General

OpenEMS Backend

OpenEMS Edge

  • Time-of-Use improvements by @sfeilmeier in #2547 and #2559
  • HTTP-Bridge add support for time based subscribes by @michaelgrill in #2539
  • FEMS Backports 2024.3.0 in #2560
    • GoodWe Grid-Meter: add support for "Commercial Meter
    • Sum: improvements to max-ever-values
      • Calculate min/max ever ESS discharge power (will eventually replace MaxApparentPower in UI Live)
        • add EssMinDischargePower and EssMaxDischargePower channels to _sum
        • calculate _sum/EssDischargePower also from non-hybrid ESS
      • improve parsing of _sum config: parse String values to int
      • Prediction: fix possible NoSuchElementException if all predictions are empty
    • AppCenter: App for EZA-Regler
    • Implement generic LinuxFs GPIO (for Modberry)
    • AppCenter: Home 20 & 30 added modbus for external meters
    • AppCenter: ToU only compatibility with Home 10, 20 or 30 (this shows compatibility restrictions in AppCenter; for proprietary distributions of OpenEMS change this accordingly)
    • Implement system SOFT/HARD restart (Edge JsonRPC)
      • Add JSON-RPC handler for system restart (ExecuteSystemRestart)
        • HARD: reboot system
        • SOFT: restart OpenEMS service
      • Extract handling of system commands to common SystemRecord record
    • AppCenter: fix AlpitronicEvcs wrong scheduler factory id
    • GoodWe 20 & 30: handle Voltage & Current for DSP version
    • AppCenter: refactor pvInverter apps to use "new" props
      • Refactored PV-Inverter Apps to use "new" Props
      • Added selection of Phase to SolarEdge App
      • Changed description text of tibber token
    • RRD4j/Backend-Api: avoid exception during deactivate
      • Fix bug in ControllerApiBackend or TimedataRrd4jImpl which required a restart.

OpenEMS UI

  • Implementation of SumState-Alerting by @da-Kai in #2260
  • UI: fixed some translations by @Sn0w3y in #2546
  • FEMS Backports 2024.3.0 in #2560
    • UI: change "Installateurszugang anlegen" to "Account anlegen"
    • UI: Refactoring of translations
    • UI: chartjs-migration
    • UI: Fix Time-of-use bugs

Version Upgrades

  • Bump com.influxdb:influxdb-client-core from 6.12.0 to 7.0.0 in /cnf by @dependabot in #2521
  • Bump com.squareup.okio:okio-jvm from 3.7.0 to 3.8.0 in /cnf by @dependabot in #2536
  • Bump org.dhatim:fastexcel from 0.16.6 to 0.17.0 in /cnf by @dependabot in #2535
  • Bump ip from 2.0.0 to 2.0.1 in /ui by @dependabot in #2551
  • Bump org.postgresql:postgresql from 42.7.1 to 42.7.2 in /cnf by @dependabot in #2552
  • Bump eslint-plugin-unused-imports from 3.0.0 to 3.1.0 in /ui by @dependabot in #2549
  • Bump org.jetbrains.kotlinx:kotlinx-coroutines-core-jvm from 1.7.3 to 1.8.0 in /cnf by @dependabot in #2548

New Contributors

Full Changelog: 2024.2.0...2024.3.0

2024.2.0

01 Feb 16:51
Compare
Choose a tag to compare

Release Highlights

Details

Common/General

  • Docs: minor corrections to the edge component implementation guide by @samuelBloch in #2493

OpenEMS Backend

OpenEMS Edge

  • Refactor Shelly Plug S to HTTP-bridge in #2381
  • Added TLS support for MQTT connections. by @samuelBloch in #2459
  • Meter B Control: improvements by @tsicking in #2494
  • KACO Battery Inverter: quicker control behaviour by @pooran-c in #2509
  • Max-Ever-Value: update config only once every 24 hours by @sfeilmeier in #2509
  • EmergencyController & TimeslotPeakshaving: Set PersistencePriority @michaelgrill in #2509
  • Time-of-Use-Tariff Controller in #2509
    ** Calculate essMaxChargePower from usable Capacity
    ** Reset efficiency factor to 1.2
    ** Set state machine to BALANCING in OFF mode (fixes historic view in OFF mode)
    ** Zone selection for Awattar Austria (see #2469)

OpenEMS UI

  • Handle en-US language for US browsers by @ebram-tw in #2483
  • Fix: add no-trailing-spaces:error setting to eslintrc by @miettal in #2488
  • Add TOTAL to history periods in #2509
  • Time-of-Use-Tariff: refactor widgets in #2509
  • Adjust Ion-Fab button in modal in #2509
  • Fix EVCS status not being updated in #2509
  • Show Company-Name in UserInformation in #2509

Version Upgrades

  • Update j2mod dependency to 3.2.0 by @dependabot in #2364
    -> this still causes some RS485 bus errors on certain elder devices. Use with caution
  • Bump org.jsoup:jsoup from 1.17.1 to 1.17.2 in /cnf by @dependabot in #2478
  • Bump org.apache.felix:org.apache.felix.webconsole from 4.9.6 to 5.0.0 in /cnf by @dependabot in #2482
  • Bump org.apache.felix:org.apache.felix.scr from 2.2.6 to 2.2.10 in /cnf by @dependabot in #2491
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.6 to 5.1.8 in /cnf by @dependabot in #2502
  • Bump fr.turri:aXMLRPC from 1.13.0 to 1.14.0 in /cnf by @dependabot in #2501
  • Bump org.dhatim:fastexcel from 0.16.5 to 0.16.6 in /cnf by @dependabot in #2500

New Contributors

Full Changelog: 2024.1.0...2024.2.0

2024.1.0

01 Jan 22:48
Compare
Choose a tag to compare

Release Highlights

  • OEM Bundle

    • This significantly improves the workflow for the development of OpenEMS OEM distributions. Configure App-Center website URLs, secret tokens, etc. on one central place.
    • Details: #2428 and #2477
  • Time-of-Use Controller for Energy Storage System

    • Further improvements to the charge-from-grid logic, visualization, stability of price providers, etc.
    • Details: #2475 and #2477

Details

Common/General

  • Docs: reproduce single_document.adoc from nav.adoc and sed script by @miettal in #2468

OpenEMS Backend

  • Metadata: Refactored Name of AlertingSetting to UserAlertingSettings by @DerStoecki in #2414
  • FEMS Backports by @sfeilmeier in #2477
    • User: adding JsonObject for UI "settings"
    • Use static import for Dummy-Users

OpenEMS Edge

  • Core.Sum: persist maximum ever values by @sfeilmeier in #2476

    • This fixes the problem that the maximum values in the Energy-Monitor in UI would always start from zero on restart
  • FEMS Backports by @sfeilmeier in #2477

    • GoodWe Grid-Meter: if HAS_NO_METER is set, set values to 'null'
    • GoodWe BatteryInverter: write certain Channels only on activate/modified
    • Modbus Bridge TasksSupplier: avoid ConcurrentModificationException
    • StateChannels: always set initial value to false
    • ESS Power: handle other possible Exceptions
    • Debug-Log Controller: avoid Exception on non-existing Channel

OpenEMS UI

  • Specify eslint as vscode workspace default formatter by @miettal in #2470
  • FEMS Backports by @sfeilmeier in #2477
    • Refactor channelthreshold history; use factory instead of nature
    • User: adding JsonObject for UI "settings"; this will be used in future to store user specific settings like UI Dark-Mode
    • Add notifcation component

Version Upgrades

  • Upgrade gradle version 8.4 to 8.5 by @miettal in #2471
  • Bump com.influxdb:influxdb-client-java from 6.10.0 to 6.11.0 in /cnf by @dependabot in #2451
  • Bump org.postgresql:postgresql from 42.7.0 to 42.7.1 in /cnf by @dependabot in #2453
  • Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.4 to 5.1.6 in /cnf by @dependabot in #2452
  • Bump net.java.dev.jna:jna from 5.13.0 to 5.14.0 in /cnf by @dependabot in #2454
  • Bump commons-io:commons-io from 2.15.0 to 2.15.1 in /cnf by @dependabot in #2449
  • Bump com.influxdb:influxdb-client-java from 6.11.0 to 6.12.0 in /cnf by @dependabot in #2465
  • Bump com.squareup.okio:okio-jvm from 3.6.0 to 3.7.0 in /cnf by @dependabot in #2464
  • Bump com.google.guava:guava from 32.1.3-jre to 33.0.0-jre in /cnf by @dependabot in #2460
  • Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 1.9.21 to 1.9.22 in /cnf by @dependabot in #2473
  • Bump org.dhatim:fastexcel from 0.16.4 to 0.16.5 in /cnf by @dependabot in #2474

Full Changelog: 2023.12.0...2024.1.0