Skip to content

2025.2.0

Latest
Compare
Choose a tag to compare
@github-actions github-actions released this 02 Feb 12:34
· 5 commits to develop since this release
bd574ac

Details

Common/General

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
    • 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)
  • 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
[_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 to ionInput 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 and positive-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
  • 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 with ignoreRestSiblings: 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
    • Fix searchbar request overload
      • reducing calls of GetEdgesRequest and waiting for last requests response
      • avoids showing every response
      • introduce 1 second debounce
    • 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
    • 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
    • EVCS Cluster: remove slides from modal
      • Because of display errors after recent Angular & Ionic update.
  • 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