Releases: OpenEMS/openems
2024.11.0
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
- Add docker deploy documentation by @da-Kai in #2829
- Add hint to README to fix an error with building a Docker image by @j-eissler in #2833
- FEMS Backports 2024-10-19 in #2846
- Update gradle to 8.10.2
- Update Checkstyle to 10.18.2 by @sfeilmeier in #2847
- HardyBarth Wallbox: full refactoring, using HTTP-Bridge
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
- WsData:
- FEMS Backports 2024-10-19 in #2846
- Extend export to Excel file
- Added detailed data for the excel export of historic data
- Extend export to Excel file
OpenEMS Edge
- FEMS Backports 2024-10-11 in #2835
- FFR: Fast Frequency Response Controller
- Includes:
-
- Fast Frequency request controller.
-
- Junit test cases.
-
- 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()
- Invalidate (i.e. set UNDEFINED/null) Elements on
- 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:
- 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
- FFR: Fast Frequency Response Controller
[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
- EVCS HardyBarth: communicate via HTTP-Bridge
- 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
) andController.Ess.Time-Of-Use-Tariff
to the same Version!
- Attention: be sure to set EnergyScheduler (
- Introduce new implementation of
EnergyFlow
that uses linear constraint validation and optimization - Implement ESHs for
Controller.Ess.Time-Of-Use-Tariff
,- `Controller.E...
- Introduce generically usable EnergyScheduleHandler (ESH) for executing energy simulations and applying schedules
2024.10.0
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
- Update contributing guidelines by @da-Kai in #2780
- Fix various typos by @luzpaz in #2730
- Codecov: Set flags and components by @da-Kai in #2810
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
Common/General
- Docs: use openems.io-theme repository in openems by @saeedniko in #2754
- Docs: fix build by @da-Kai in #2759
- Docs: fix docs by @Sn0w3y in #2752
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
- Rrd4j: Fix query for custom range
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
- Fix wrong displayed unit in energy chart for
- 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
- Add eslint rule
switch-exhaustiveness-check
- Add 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
- Updating android api level due to googles new policy, enforcing
- 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
withgetCurrentEdge
- 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
- Fix
- Fix sum chart in consumption history
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
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
- Performance optimizations
- 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
- Home Battery:
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
- add
- 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
- Token expired, old route got reloaded, no redirection to
- 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/]
- Fix Nullpointer thrown through chart.js after failed query.
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
- @HarmOtten made their first contribution in #1150
- @JonasE99 made their first contribution in #2727
- @johannk24 made their first contribution in #2727
- @fabian94533 made their first contribution in #2727
Full Changelog: 2024.7.0...2024.8.0
2024.7.0
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
- EdgeConfig: remove Channels
- 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.
- Hardy Barth: correct Phase URL mapping
- 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
- SymmetricEss: add Min-/MaxCellVoltage-/Temperature channels to modbus slave table
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
- setting web-app tab title to
- 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
- Add footer subnavigation
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
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
- Gradle builds end with a warning:
> 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
andDC_MAX_VOLTAGE
to BatteryInverter; implemented in KACO. - Adds ESS-Protection on Generic-ESS
- Adds Voltage Regulation in ESS
- Adds
- Modbus/SunSpec: implement BitWords
- Refactor SunSpecCodeGenerator
- Handle
BITFIELD16
andBITFIELD32
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 toOPTIMIZE_BY_KEEPING_ALL_EQUAL
.
- Add
- 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
- STOP Home battery on very low cell voltage. Adds Channels:
- WeidmΓΌller IO: fix reading of CurrentModuleList
- Fixed hidden ClassCastException in
readCurrentModuleList()
- Fixed hidden ClassCastException in
- 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
- @Bishalghimire1997 made their first contribution in #2656
- @manojniit made their first contribution in #2656
- @saeedniko made their first contribution in #2656
- @parapluplu made their first contribution in #2652
- @katsuya made their first contribution in #2651
Full Changelog: 2024.5.0...2024.6.0
2024.5.0
Release Highlights
- New implementations
- Shelly Plus Plug S by @Sn0w3y in #2529
- Eastron SDM120 Meter by @fanass-dev in #2554
- UI: optional strict mode for improved code quality in #2623
- WebSocket: improved communication performance by @miettal in #2616
Details
Common/General
- Docs: update implementing a device by @Sn0w3y in #2601
- WebSocket: enable permessage-deflate to communication by @miettal in #2616
- Apply Eclipse Format & Organize Imports; fix resource leak by @Sn0w3y in #2617
- Refactor RPC handling by @michaelgrill in #2610
- FEMS Backports 2023-04 in #2623
- Change Unit
EUROS_PER_MEGAWATT_HOUR
toMONEY_PER_MEGAWATT_HOUR
- Prepare-commit: add UI build+test to script
- "Coding Guidelines" should also cover UI development (https://openems.github.io/openems.io/openems/latest/contribute/coding-guidelines.html#_openems_edge_backend)
- CI: Update node to v20 LTS
- Change Unit
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
- Add API for Simulation-Engine Component
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
andtry...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 ofCompletableFuture
by usingthenCompose
instead ofthenAccept
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
andEnergy 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
- Introduce new Bundles for
-
KACO Blueplanet Gridsave BatteryInverter: state-machine improvement
- Update Kaco Blueplanet Gridsave state-machine
- Add grid disconnection failure state channel
- Replace
MAX_START_ATTEMPTS
withMAX_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
- Optionally show values per MPPT; not per String
-
OpenEMS UI
- Center Text in Footer by @Sn0w3y in #2594
- FEMS Backports 2023-04 in #2623
- Add optional strict mode
- Another step towards strict mode in UI
- Add
typescript-strict-plugin
-> https://github.com/allegro/typescript-strict-plugin - Add
tsc
andtsc-strict
to CI build - Add
// @ts-strict-ignore
comment in non-compliant code files
- Update to Angular Version 16.
- Replacing kekeh/angular-mydatepicker with its fork nodro7/angular-mydatepicker
- 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
- Footercomponent overlapping content.
- Chartjs -> responsive charts approach of setting fixed height is causing the problem,
onZoom
event doesnt resize the charts canvas and chart canvas gets moved down into the footer
- 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
- Add optional strict mode
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
Release Highlights
- Official Docker containers: https://hub.docker.com/u/openems. Thanks @da-Kai!
- Significant improvements to ESS Time-of-Use-Tariff-Controller by @sfeilmeier
Details
Common/General
- CI: Update actions by @da-Kai in #2570
- Update coding-guidelines.adoc by @Sn0w3y in #2576
- Docker Workflow by @da-Kai in #2568
- Fix docker workflows Failing by @da-Kai in #2591
- Update gradle to 8.7 by @sfeilmeier in #2590
- Gitpod: add names+descriptions to ports by @sfeilmeier in #2600
OpenEMS Backend
- Bugfix: Alerting: periodic onSetSumState doesn't override SumStateSchedule by @DerStoecki in #2561
- FEMS Backports 2023-03 by @sfeilmeier, @venu-sagar, @lukasrgr, @michaelgrill, @da-Kai, @huseyinsaht, @hydroid7, @sebastianasen, @AnasShetla, @mlang97 in #2593
- General performance improvements
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)
- Optionally show Grid-Buy in UI forecast and history chart (in a third y-axis)
- 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
- Improvements to ESS Time-of-Use-Tariff-Controller
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
- Improvements to ESS Time-of-Use-Tariff-Controller
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
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
- Update Workflows to use JDK 21 by @da-Kai in #2550
- Docs: Contribution Guidelines: add section about Eclipse Version by @clehne in #2542
- Fix Gitpod for Java 21 by @sfeilmeier in #2555
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
- Calculate min/max ever ESS discharge power (will eventually replace MaxApparentPower in UI Live)
- 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
- Add JSON-RPC handler for system restart (
- 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
- @Sn0w3y made their first contribution in #2546
- @REdelhoff made their first contribution in #2402
Full Changelog: 2024.2.0...2024.3.0
2024.2.0
Release Highlights
-
New implementations:
- Siemens PAC1600 meter by @JosefRick in #2396
- Camille Bauer APLUS meter by @pooran-c and @Bishalghimire1997 in #2509
-
Introduce HTTP-bridge by @sebastianasen and @michaelgrill in #2381
- This standardizes access to webservices. First application is refactoring of Shelly Plug S
Details
Common/General
- Docs: minor corrections to the edge component implementation guide by @samuelBloch in #2493
OpenEMS Backend
- Metadata Dummy: fix filter for product types by @sfeilmeier in #2479
- Backend-to-Backend API: fix implementation by @sfeilmeier in #2484
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
- @JosefRick made their first contribution in #2396
- @ebram-tw made their first contribution in #2483
- @samuelBloch made their first contribution in #2459
Full Changelog: 2024.1.0...2024.2.0