Skip to content

Releases: OpenEMS/openems

2024.11.0

01 Nov 17:50
61eb66f
Compare
Choose a tag to compare

Release Highlights

  • Improved Excel Export in #2846
  • FFR: Fast Frequency Response Controller in #2835
  • Improved State-Machine for Energy Storage Systems; this includes downgrading many FAULT states to WARNING! in #2835
  • Modbus-Bridge: fix seldom but critical race condition in #2835
  • HardyBarth Wallbox: full refactoring based on HTTP-Bridge in #2846
  • EVCS implements ElectricityMeter; includes per-phase measuring of charging power and configurable PhaseRotation in #2835
  • Improvements to JUnit test framework + possibility to test raw modbus reads in #2846 and #2863
  • First iteration of new Energy Scheduler for time-of-use tariffs in #2789
  • New channel _host/OsVersion: read os version as string in #2863
  • Time-of-use-Tariff: new provider Swisspower; improvements to ENTSO-E in #2839 and #2863
  • Lots of UI bugfixes and improvements

Details

Common/General

OpenEMS Backend

  • FEMS Backports 2024-10-11 in #2835
    • WsData:
      • reduce logging noise
      • Instead of [ctrlBackend0] [BackendApi.WsData []] Unable to send message:
      • Only: [ctrlBackend0] Unable to send message:
      • Extend payload from 100 to 200 chars
  • FEMS Backports 2024-10-19 in #2846
    • Extend export to Excel file
      • Added detailed data for the excel export of historic data

OpenEMS Edge

  • FEMS Backports 2024-10-11 in #2835
    • FFR: Fast Frequency Response Controller
      • Includes:
        1. Fast Frequency request controller.
        1. Junit test cases.
        1. Step Response Tester changes in the simulated meter. To test FFR with the simulator meter's frequency.
    • EVCS HardyBarth: set "No meter values available" as WARN + translate
      • Changed StateChannel "METER_NOT_AVAILABE" of the HardyBarth component to level WARNING
      • Added translation files for bundle and channel
    • Batteries/Battery-Inverters: downgrade FAULT states to WARNING
      • Downgrade of all possible FAULT states to WARNING states
      • Whenever one of these states would be true, the EssGeneric will stop the battery and the inverter. If this is necessary, it must be specifically mentioned and the state should have a proper description of the fault.
    • EVCS KEBA: downgrade fault for Dip Switch 2.6, because it is now used for Β§14a
    • ModbusBridge: invalidate Elements on removeProtocol()
      • Invalidate (i.e. set UNDEFINED/null) Elements on removeProtocol()
      • JUnit test shows behaviour. REGISTER_100 is null after removeProtocol()
    • ModbusTcpApi: improvements
      • Fixes error taking alias (of ess) instead of Component ID. This will fix dynamically generating channel addresses.
      • ActivePowerLimit and ReactivePowerLimit result in NaN if null
      • Improved reusability of code through methods
      • Removed constant strings
    • KACO Battery Inverter: fix state transition ERROR to UNDEFINED, Frequency channel
      • Return from Error Handling to Undefined
      • Fix Hz channel name
    • Updates for FENECON Home battery
      • Adjust modbus task priority level
      • Reduce number of tasks
      • Improve stopping process
      • Improve contains task check in Modbus Bridge
    • EVCS: Hystereses with info in UI
      • Hystereses for Charging stations two config values are now shown in the ui for the evcs controller
    • Generic-ESS state machine improvement
      • The main approach is to have a statemachine which can be run all our current systems and avoiding retry start process.
      • Related to any 'Error Handling' topic should be improved or implemented seperately and required a defined generic 'Error handling' concept, which can be applied for all systems.
      • Instead of maximum start or stop time attempts, starting or stopping timeouts are taken care of and shown in UI as an failure. By doing this, its aimed to let the service or engineers to analyze the failure, and forbid to harm the battery by taking an action without know-how knowledge.
    • KACO BatteryInverter: component activate improvements + ModbusSlave
      • Removed second activate annotation
      • always set configuration in activate
    • EssPower: handle Exceptions in handleEvent()
    • Fix critical race condition in Modbus Bridge
      • Modbus-Bridge: fix criticial race condition! If ON_EXECUTE_WRITE was called before ON_BEFORE_PROCESS_IMAGE, the forever()-loop could get stuck forever, because cycleTasks was never initialized.
      • A usual cycle looks like this: ON_BEFORE_PROCESS_IMAGE -> other events -> ON_EXEUCTE_WRITE -> long wait -> ON_BEFORE_PROCESS_IMAGE -> ...
      • The time between ON_BEFORE_PROCESS_IMAGE and ON_EXEUCTE_WRITE is typically very short, especially before all Controllers are activated. This applies for the time when usually a Modbus Bridge gets activated, because this happens before all Devices and Controllers. As a result it was very unlikely, that Modbus-Bridge would receive ON_EXEUCTE_WRITE before ON_BEFORE_PROCESS_IMAGE. During activating and modifying of many components at the same time after initial setup (IBN via App Center) it seems it was much more likely for this race condition to happen.
      • In this very unlikely case, unfortunately the CycleTasksManager would get stuck, as can be seen in this log:
[modbus1] State: FINISHED -> WRITE (onExecuteWrite)
[modbus1] WRITE -> WRITE (onExecuteWrite)
[modbus1] WRITE unchanged (in onBeforeProcessImage) Delay [0] (time is invalid)
[modbus1] WRITE -> WRITE (onExecuteWrite)
[modbus1] WRITE unchanged (in onBeforeProcessImage) Delay [0] (time is invalid)
...
- This problem was solved by initializing `this.cycleTasks` from `tasksSupplier`.
- New behaviour is proven to work in `CycleTasksManagerTest.java`, `testExecuteWriteBeforeNextProcessImage()` which would fail with previous code.
  • Modbus-Bridge:
    • ignore events before activate
    • renew logging to show Component-ID everywhere
  • RRD4j: reduce log warnings; remove stacktrace; add channelAddress
  • EnergyScheduler:
    • remove unnecessary log message
    • add log verbosity
    • cleanup config
  • AbstractWorker:
    • synchronized activate/modified code
    • before calling activate twice would result in an error
    • it's still not possible to stop and restart a worker (e.g. when enabling/disabling a component that uses a worker)
  • AbstractOpenemsModbusComponent:
    • combine common code of activate() and modified()
    • removeProtocol and retryModbusCommunication are handled internally by ModbusBridge
    • fix modbusReference in modified()
  • Home Battery:
    • wait for activate to set hardware type default
    • ComponentManager is required; otherwise ClockProvider is null during init
  • Ess.Power:
    • fix ArrayIndexOutOfBoundsException
    • fix ConcurrentModificationException when ESS are added/removed
  • GoodWe Battery-Inverter: fix handleEvent called before activate. Possible NPE.
  • GridOptimized charge requires a production power to run properly
    • Avoid exception and inform user about unexpected behaviour of controller
  • FEMS Backports 2024-10-19 in #2846
    • EVCS HardyBarth: communicate via HTTP-Bridge
      • Implemented BridgeHttp in Impl of HardyBarthEvcs
      • All Api Calls now flow through that Bridge
      • Api Calls (esp. setHeartBeat that previously was synchronous) are now asynchronous
      • Add JUnit tests
    • EVCS: implement ElectricityMeter
      • Migrate all EVCS to ElectricityMeter Nature
      • Add DeprecatedEvcs Nature to mark EVCS that have to be migrated and still support old Channels ChargePower and ActiveConsumptionEnergy
      • Implement generic evaluatePhaseCount() method
      • Implement configurable PhaseRotation in configuration and Apps (copied and adjusted from #2047)
      • Fix AbstractManagedEvcs deactivate()
    • Sum: do not ignore ExtremeEverValues in EdgeConfig
    • Java JUnit tests: improve framework + cleanup
      • Improve OpenEMS JUnit test framework
      • Apply best practices to JUnit tests
  • Energy Scheduler by @sfeilmeier in #2789
    • Introduce generically usable EnergyScheduleHandler (ESH) for executing energy simulations and applying schedules
      • Provide nice debugLog output and channel "SimulationsPerQuarter" to detect performance issues
      • Use Cache for cost of Genotypes
    • Add config property "Version" to be able to switch between old (only ESS, but fast and well tested) and new (generic ESH but slower) implementation.
      • Attention: be sure to set EnergyScheduler (Core.Energy) and Controller.Ess.Time-Of-Use-Tariff to the same Version!
    • Introduce new implementation of EnergyFlow that uses linear constraint validation and optimization
    • Implement ESHs for
      • Controller.Ess.Time-Of-Use-Tariff,
      • `Controller.E...
Read more

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