·
5 commits
to develop
since this release
Details
Common/General
- General Cleanup by @sfeilmeier in #2949
OpenEMS Edge
- Siemens Logo as network relay board by @DerWahreKlinki in #2350
- Shelly: common executeWrite() method & many JUnit tests by @Sn0w3y in #2658
- Controller IO Heating Room by @sfeilmeier in #2950
- FEMS Backports 2025-01-16 in #2969
- JsonUtils: Update switch cases with pattern matching
- HttpBridge: add detailed Logger
- Moved DebugMode to Common
- Added DebugMode to BridgeHttp
- Added parameter of type DebugMode to NetworkEndpointFetcher
- Added Detailed log of result in fetchEndpoint if DebugMode is DETAILED
- Set DebugMode to DETAILED in HardyBarthEvcsImpl if debug is true in config
- Sum + ESS: update Modbus table descriptions
- Adds and changes descriptions of the modbus tables
- KEBA: fix issue with SessionEnergy
- Add KEBA specific R2State-enum (for "Report 2")
- KEBA: drop CHARGING_REJECTED
- SessionEnergy is set to 0 on UNPLUGGED event
- Modbus-Api-Controller: add RTU and unify controllers to abstract superclass
- Implementation of ModbusRTU
- Refactoring of ModbusTCP to avoid redundant classes
- Implementation of ModbusRTU App
- Added "Download Protocol" button for ModbusRtu
- AppCenter Home: NA-Protection changed text
- changed na-protection text
- IO Weidmüller: Added UR20_16DI_P module
- Symmetric Battery Inverter: add cabinet temperature channel
- Added a "TEMPERATURE_CABINET" channel in the Battery inverter interface.
- HardyBarth: temporary fix for
null
responses- This fixes an issue with interrupted charging sessions due to
null
values. - added check for null values in HardyBarthReadUtils
- The first 3 null values are ignored and no values are written in these cycles
- Afterwards null values are written in channels as usual
- This fixes an issue with interrupted charging sessions due to
- AppCenter: add estimated configuration endpoint for IBN
- Added endpoint to retrieve estimated installation configuration
- AppCenter: Meta App + Update Component via apps
- Added core app for meta component
- Added Logic for updating component config via their apps
- EmergencyReserveFromGrid: start charging without delay from ramp
- Added check with previous state that ignores ramp for 1 cycle
- FEMS Backports 2025-01-20 in #2976
- Code Cleanup for Java 21
- Migrate Switch-Case-Expressions to Switch-Case-Statements
- General code cleanup (using Eclipse "Clean up" tool)
- EVCS Mennekes: cleanup
- Cleanup Eclipse warning (#2971)
- Code Cleanup for Java 21
- Correct FENECON Home Battery Unit for Cell Voltages by @Sn0w3y in #2974
- Fix VerifyError in EdgeConfigWorker by @sfeilmeier in #2987
- FEMS Backports 2025-02-02 in #2997
- Host: extend getIpAddresses Request
- Extended jsonRpc request for getIpAddresses with more data for networkInterfaces and IP routing table
- Mennekes Relase: Remove AppPermissions
- Remove App Permissions from Mennekes for upcoming release
- SunSpec: set correct OpenemsType for floating point values
- See commit details for an example of the changes for a Fronius PV Inverter with SunSpec Block 113
- Originally we tried to avoid floating point in favour of integer numbers to avoid very frequent sending of changed values. This has been solved in the meantime with a DEFAULT_PERSISTENCE_PRIORITY of VERY_LOW for SunSpec channels.
- ModbusTcp Read-Only: add modified handling
- Adds modified method to ModbusTcp Read-Only
- AppCenter: fix bug where all array properties cant be modified
- Modifying array properties results in an error "expected array length 1 not 3"
- "fixed" by changing order of checks to first check if property can be modified and then check if they are the same value
- TODO future if access check on a array based property happens it needs to be modified to handle array values
- remove excessive log if component does not exist in
ComponentManager#getComponentProperties
- Energy Optimizer: fix possible NPE
- This fixes
- Host: extend getIpAddresses Request
[_energy ] ERROR [s.common.worker.AbstractWorker] Worker error. NullPointerException: Cannot invoke "io.jenetics.Genotype.get(int)" because "bestGt" is null
java.lang.NullPointerException: Cannot invoke "io.jenetics.Genotype.get(int)" because "bestGt" is null
- According to docs the Collector can indeed return `null`: https://github.com/jenetics/jenetics/blob/master/jenetics/src/main/java/io/jenetics/engine/EvolutionResult.java#L475-L476
- ElectricityMeter: added calculateCurrentsFromActivePowerAndVoltage and calculatePhasesFromVoltage
- ElectricityMeter enhancement for more easier integration of future EVCSs. Method may be useful for general ElectricityMeter implementations as well. That's why it was placed in ElectricityMeter and not in Evcs.
- Windows Fix for IP Validation in Apps
- IP Validation Regex is now Compatible with Windows again. (Currently when OpenEMS is run locally apps with IP Validation can't be installed)
- GoodWeGridMeter: ElementToChannelConverter NP-Fix
- Null check in element to channel converter
- GoodWe: improve Battery Power Settings
- Some of the Power settings for the goodwe were not applied correctly (Per default disabled, wrong scale factors, wrong register mapping cosPhiF != PU)
- GoodWe: ignore impossible power values
- The DcActivePower resgister of GoodWe is giving 20-40 watt values when the SoC is 0 or 100 and there is no real charge/discharge of the battery happening. This values will be ignored to avoid wrong energy values, as the energy is calculated based on the active power.
- The same occurs when the battery is getting a 0 charge/discharge set point. If the SoC is between 0 and 100 it is also ignoring this low power values when the current EmsPowerMode is Charge/Discharge Bat & the EmsPowerSet is 0 W
OpenEMS UI
- Dynamic numberformat conversion by using current locale by @miettal in #2757
- Overview search: trigger on every input change by @Sn0w3y in #2935
- Add defaultLanguage setting to src/environments by @miettal in #2756
- Fix component.update View by @Sn0w3y in #2958
- Fix formly form styles by @lukasrgr in #2962
- Switch from
ionChange
toionInput
for Real-Time Filtering in Search Bar by @Sn0w3y in #2963 - FEMS Backports 2025-01-16 in #2969
- Prepare Login Improvements
- Added template to override the default formly behaviour bugs
- fix styling of
negative-values
andpositive-values
info
- FEMS Backports 2025-01-20 in #2976
- use user language instead of browser lang for locale
- replace locale being overwritten with browserlang to be using the user lang
- fix czech locale,
cz
throwing errors for - piping (using angular pipes)
- formatting of numbers
- replacing it with
cs
-> Ref
- Improve Modbus Widget
- fixes name of channel in ModbusTCP widget (e.g. Ess1SetActivePowerEquals was shown as SetActivePowerEquals/706 in OM)
- Several ess lead to repeating register names in ModbusTcp widget.
- Dark mode pick-date improvements
- Enhancing styles of popover in accordance with dark-mode feature.
- Add handling for
Controller.IO.Heating.Room
- use user language instead of browser lang for locale
- migrate .eslintrc to eslint.config.mjs by @miettal in #2675
- FEMS Backports 2025-02-02 in #2997
- Change display color of currency axes
- fix coloring of yAxes for currency
- extending eslint rule
no-unused-vars
withignoreRestSiblings
: destructuring throws otherwise an error for unused sibling
- Adjust custom time range chart display
- Adjust time-range picker in mode
Custom
to display only the months queried for monthly resolution, before if start and endpoint are in a different year, it would fill up both years to show 12 months per year
- Adjust time-range picker in mode
- Fix searchbar request overload
- reducing calls of
GetEdgesRequest
and waiting for last requests response - avoids showing every response
- introduce 1 second
debounce
- reducing calls of
- Refactor heat pump history
- Using
Time
-channels for bar charts - creating refactored standalone unit tested lazy loaded history for heatpump
- sanitizing data for io time channels if they are not adding up to
- 24h (1 day - month view) -> rounding if only one minute missing
- 744h (31 day month - year view) ... -> rounding if only one hour missing
- -> increasing
RegularStateTime
by the missing diff
- Attention: There still could be some deviation due to OpenEMS Edge being offline during systemupdate
- Using
- Improve styling
- Remove unused imports in GetNetworkInfo and MennekesEvcs
- Controller.IO.Heating.Room: add UI Live widget
- Add UI Live Flat and Modal for
Controller.IO.Heating.Room
- This implementation could in future serve as a proof of concept for new JSCalendar configurations
- Add UI Live Flat and Modal for
- EVCS Cluster: remove slides from modal
- Because of display errors after recent Angular & Ionic update.
- Change display color of currency axes
- UI: Refactor Info Text Blocks into a Reusable Template by @Sn0w3y in #2961
Version Upgrades
- Bump com.squareup.okio:okio-jvm from 3.9.1 to 3.10.0 in /cnf by @dependabot in #2951
- Bump @typescript-eslint/types from 8.19.0 to 8.19.1 in /ui in the eslint group by @dependabot in #2952
- Bump @awesome-cordova-plugins/file-opener from 6.13.0 to 6.14.0 in /ui by @dependabot in #2953
- Bump @awesome-cordova-plugins/core from 6.13.0 to 6.14.0 in /ui by @dependabot in #2955
- Bump swiper from 11.1.15 to 11.2.0 in /ui by @dependabot in #2956
- Bump uuid from 11.0.3 to 11.0.4 in /ui by @dependabot in #2957
- Bump the eslint group in /ui with 2 updates by @dependabot in #2967
- Bump swiper from 11.2.0 to 11.2.1 in /ui by @dependabot in #2968
- Bump com.squareup.okio:okio-jvm from 3.10.0 to 3.10.2 in /cnf by @dependabot in #2965
- Bump org.postgresql:postgresql from 42.7.4 to 42.7.5 in /cnf by @dependabot in #2983
- Bump the pax-logging group in /cnf with 2 updates by @dependabot in #2982
- Bump the bouncycastle group in /cnf with 2 updates by @dependabot in #2981
- Bump @types/qs from 6.9.17 to 6.9.18 in /ui by @dependabot in #2980
- Bump org.apache.felix:org.apache.felix.http.jetty from 5.1.26 to 5.1.28 in /cnf by @dependabot in #2994
- Bump org.jetbrains.kotlin:kotlin-osgi-bundle from 2.1.0 to 2.1.10 in /cnf by @dependabot in #2993
Full Changelog: 2025.1.0...2025.2.0