Skip to content

Releases: OpenEMS/openems

2023.7.0

04 Jul 13:05
Compare
Choose a tag to compare

Release Highlights

  • Refactor: apply best practices and coding guidelines globally (#2209)
  • Introduce ElectricityMeter as replacement for SymmetricMeter & AsymmetricMeter (#2144)
  • UI: introduce type-safe and testable Views (#2123)

Details

Common/General

  • Java: generate code coverage report (#2234)

OpenEMS Edge

  • Add 'CumulatedActiveTime' Channel for Controllers with Relay (#677) (#2230)
  • Kaco.BlueplanetHybrid10.PvInverter: add phase values (#2232)
  • SunSpec PV-Inverters + Meters: improve implementation (#2231) Applies to
    • PV-Inverter.Fronius
    • PV-Inverter.KACO.blueplanet
    • PV-Inverter.Kostal
    • PV-Inverter.SMA.SunnyTripower
    • SolarEdge.PV-Inverter

OpenEMS UI

  • add ESlint rule for unused imports (#2221)
  • add new eslint rule to remove unused commas (#2219)
  • replace PNG-Icons with SVG-Icons (#2210)
  • FEMS UI Backport 2023-06 (#2235)
  • FEMS UI Backport 2023-06 - part 2 (#2243)
  • fix typos (#2244)
  • inject globalRouteChangeHandler (#2242)

Version Upgrades

  • Bump influxdb-client-core from 6.8.0 to 6.9.0 in /cnf (#2217)
  • Bump fastexcel from 0.15.3 to 0.15.4 in /cnf (#2211)
  • Bump checker-qual from 3.34.0 to 3.35.0 in /cnf (#2216)
  • Bump d3 from 7.8.4 to 7.8.5 in /ui (#2213)
  • Bump guava from 32.0.0-jre to 32.0.1-jre in /cnf (#2223)
  • Bump kotlin-osgi-bundle from 1.8.21 to 1.8.22 in /cnf (#2222)
  • Bump commons-io from 2.12.0 to 2.13.0 in /cnf (#2224)
  • fix fallback for SymmetricMeter (#2228)
  • Bump fastexcel from 0.15.4 to 0.15.5 in /cnf (#2240)
  • Bump kotlinx-coroutines-core-jvm from 1.7.1 to 1.7.2 in /cnf (#2251)
  • Bump checker-qual from 3.35.0 to 3.36.0 in /cnf (#2250)
  • Bump guava from 32.0.1-jre to 32.1.1-jre in /cnf (#2248)
  • Update to Gradle 8.2

Full Changelog: 2023.6.0...2023.7.0

2023.6.0

01 Jun 21:39
Compare
Choose a tag to compare

Release Highlights

Details

Common/General

OpenEMS Edge

  • Solar-Log PV-Inverter: cumulate production energy by @mlang97 in #2167
  • Battery Protecteion: Fix units by @pooran-c in #2168
  • Electric Vehicle Charging (EVCS) Controller: cleanup by @sebastianasen in #2188
  • Off-Grid Generic ESS: Implementation Optimization (#550) by @huseyinsaht in #2190
  • ESS Balancing Controller: modernize Code by @sfeilmeier in #2142
  • Code Cleanup & Refactoring
    • Channel-ID: provide convenience methods on declaration by @sfeilmeier in #2192
    • PersistenceModel predictor: fix broken URL in readme.adoc by @Byonnem in #2184
    • Channel: introduce explicit CUMULATED Channel Unit; never reset cumulated Channels to null by @sfeilmeier in #2202
    • ElementToChannelConverter: use static imports & add mathematical operators by @huseyinsaht, @sfeilmeier in #2197
    • Edge Common ChannelId: Add ChannelIdImpl record for component dynamic channels definition by @huseyinsaht in #2196

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: 2023.5.0...2023.6.0

2023.5.0

01 May 21:25
Compare
Choose a tag to compare

Release Highlights

  • Support for dezony IQ x electric vehicle charging station
  • New ESS Fix-SoC/Prepare-Battery-Extension-Controller
  • Enhancements for ESS Fix Active Power Controller

Details

Common/General

OpenEMS Backend

OpenEMS Edge

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: 2023.4.0...2023.5.0

2023.4.0

04 Apr 14:39
Compare
Choose a tag to compare

Release Highlights

  • update to Java 17 LTS
  • support for the Webasto Unite and Webasto Next electric vehicle charging stations
  • a brand new documentation about how to use IntelliJ IDEA for OpenEMS development

Details

Common/General

  • Java 17
    • Update to Java 17 in #1685
    • Fix OpenEMS Docs for Java 17 in #2119
  • IntelliJ IDEA
  • Apache Felix File Install: Added dynamic loading of components by @chrblabla in #2085
  • App-Center: FEMS-Backports in #2120

OpenEMS Edge

OpenEMS UI

Version upgrades

New Contributors

Full Changelog: 2023.3.0...2023.4.0

2023.3.0

03 Mar 13:57
Compare
Choose a tag to compare

The first OpenEMS Hackathon in 2023 took place on 23rd and 24th February at the headquarter of FENECON. Apart from extremely valuable discussions and brainstormings, more than 6400 lines of code were written on these two days. Most of the Pull-Requests are still in the review phase, so please feel to leave your comments there: https://github.com/OpenEMS/openems/pulls. We summarized our results at the OpenEMS Networking Friday. See the video here: https://www.youtube.com/watch?v=xCY4bv-of8M

Common/General

  • Update Gradle to 8.0.1 (#2070)
  • Docs Getting Started: add guide for IntelliJ IDEA (#2077) Thanks @wimmerp
  • Docs Getting Started: add hosted UI (#2080) Thanks @wimmerp
    • Add link to hosted UI for OpenEMS Edge, provided by Consolinno
    • Extract Setup UI IDE doc to separate document
  • JsonUtils: simplify getAsOptional... methods (#2093)

OpenEMS Backend

  • Improvements to Backend Timedata services (#2045)
    • Introduce TimedataManager
    • InfluxDB:
      • add possibility for predefined FieldTypeConflictHandlers
      • add MergePointsWorker and configurable PoolSize
      • drop unused Influx interface
      • limit queue
    • Timedata:
      • drop getChannelValues
      • Add Component-IDs for Timedata-Backend-Components
  • EdgeWebsocket
    • move EdgeCache
    • fix EdgeCacheTest for 15 minutes
    • move getChannelValues()
    • remove 'complementDataFromCache' feature to improve performance
  • Backend Alerting: bugfixes and improvements (#2072) Thanks @da-Kai
    • Add Executor with one Thread
    • Handle Events in Queue
    • Check validity again just before sending an alert (when queue is very long)
    • Fix typos/naming

OpenEMS Edge

  • Tibber: add filter for multiple 'Homes' (#2055)
    • The TIbber API allows accessing multiple 'Homes'. This PR introduces a 'filter' config property, that allows filtering for the correct one.
    • Also add State-Channels:
      • UnableToUpdatePrices: general HTTP error
      • FilterIsRequired: multiple Homes where retreived from the API and it is not possible to identify without filter (i.e. more than one valid 'Home' was parsed)
  • KACO PV-Inverter: make Unit-ID configurable for Modbus/RTU (#2056) Thanks @SebastianRinger
    • Made Modbus ID configurable, since previous hardcoded modbus ID of 1 did not work for Modbus RTU.
  • SunSpec compatibility:
  • Implement the Alpitronic Hypercharger DC charging station (#2071) Thanks @hydroid7, @sebastianasen
    • The charging station comes with up to four physical connectors. This implementation is designed in a way, that each connector is represented by an individual OpenEMS Component. So if you have a Alpitronic with two connectors, please configure two "EVCS Alpitronic Hypercharger" with the connector configuration property set to SLOT_0 and SLOT_1 respectively.
    • Supported Firmware versions: 1.7.2 and higher.
  • Virtual Meters:
    • VirtualMeterAdd: bugfix for ActiveConsumptionEnergy and Min-/MaxActivePower (#2058) Thanks @tsicking
    • Virtual Add Meter: improvements (#2062) Thanks @pooran-c
      • Add Asymmetric Virtual Add Meter
      • Move common parts of Symmetric and Asymmetric Meters to abstract class
  • EVCS: Add manual for implementing an evcs (#2073) Thanks @sebastianasen
  • ESS Fix Active Power: handle Hybrid-ESS (BREAKING CHANGE) (#2092)
    • Add a configuration setting hybridEssMode, that allows defining the DC-side power set-point
    • BREAKING CHANGE: the default mode for Hybrid-ESS changed from setting the AC-side (Battery + PV) to DC-side power (Battery Charge/Discharge)

Version upgrades

  • Bump postgresql from 42.5.1 to 42.5.3 in /cnf (#2050)
  • Bump kotlin-osgi-bundle from 1.8.0 to 1.8.10 in /cnf (#2053)
  • Bump fastexcel from 0.14.4 to 0.14.17 in /cnf (#2051)
  • Bump jszip from 3.7.1 to 3.10.1 in /ui + fix Checkstyle (#2048)
  • Bump fastexcel from 0.14.17 to 0.14.18 in /cnf (#2063)
  • Bump commons-fileupload from 1.4 to 1.5 in /cnf (#2065)
  • Bump postgresql from 42.5.3 to 42.5.4 in /cnf (#2067)
  • Bump jsoup from 1.15.3 to 1.15.4 in /cnf (#2066)
  • Bump checker-qual from 3.29.0 to 3.31.0 in /cnf (#2068)

2023.2.0

01 Feb 19:44
Compare
Choose a tag to compare

Common/General

OpenEMS Backend

  • Backend: set data-directory and disable Event-Handler timeout (#2021) Thanks @clehne

OpenEMS Edge

  • REST-Api: fix RegEx for Component-ID in /channel endpoint (#2046)
  • FENECON Commercial 40 Chargers: fix Config case sensitivity (#1781) Thanks @simonfey

OpenEMS UI

  • Remove limit to node version < 17 c9b5f7b
    • this used to break the build, but is not required anymore

Version upgrades

  • Bump @ngx-formly/ionic from 6.0.4 to 6.1.0 in /ui (#2031)
  • Bump jna from 5.12.1 to 5.13.0 in /cnf (#2032)
  • Bump d3 from 7.8.0 to 7.8.1 in /ui (#2033)
  • Bump org.apache.felix.scr from 2.2.4 to 2.2.6 in /cnf (#2038)
  • Bump rxjava from 3.1.5 to 3.1.6 in /cnf (#2037)
  • Update UI dependencies c9b5f7b
    • Angular 15.1.2
    • ionic/angular
    • ngx-formly
    • d3
    • tslib
    • eslint

2023.1.0

11 Jan 21:51
Compare
Choose a tag to compare

Common/General

OpenEMS Edge

  • GoodWe Grid-Meter: fix unit of Frequency (#2008)
  • KACO Bp10: move communication failure to individual components (#2009)
    • Errors become clearer visible to the user (not "kacoCore0" failed, but "ess0" failed)
    • Pure PV-Inverter is not reachable during night. New structure allows to avoid/delay the error
    • Introduce BpData record to merge all DataSet classes from KACO library
  • REST-Api: handle WRITE_ONLY channels properly #2026. Thanks @MatthiasRossmann

OpenEMS UI

  • Fix css import for ngx-spinner (#2000)
  • Cleanup angular.json (#2000)

Version upgrades

  • Bump kotlin-osgi-bundle from 1.7.21 to 1.7.22 in /cnf (#1994)
  • Bump checker-qual from 3.27.0 to 3.28.0 in /cnf (#2005)
  • Update main UI dependencies (#2000)
    • Angular 15
    • ngx-cookie-service
    • Bump @ngx-formly/ionic from 6.0.2 to 6.0.4 in /ui (#2000)
    • Bump ngx-spinner from 14.0.0 to 15.0.0 in /ui #2019 (#2000)
    • Bump d3 from 7.6.1 to 7.8.0 in /ui #2014 (#2000)
    • Bump @types/uuid from 8.3.4 to 9.0.0 in /ui #1998 (#2000)
    • Bump json5 from 1.0.1 to 1.0.2 in /ui (#2027)
    • Bump compare-versions from 5.0.1 to 5.0.3 in /ui (#2011)
  • Bump fastexcel from 0.14.0 to 0.14.3 in /cnf (#2018)
  • Bump org.osgi.service.component from 1.5.0 to 1.5.1 in /cnf (#2017)
  • Bump org.osgi.service.jdbc from 1.0.1 to 1.1.0 in /cnf (#2016)
  • Bump org.osgi.util.promise from 1.2.0 to 1.3.0 in /cnf (#2015)
  • Bump org.osgi.service.component.annotations from 1.5.0 to 1.5.1 in /cnf (#2013)
  • Bump kotlin-osgi-bundle from 1.7.22 to 1.8.0 in /cnf (#2022)
  • Bump okio-jvm from 3.2.0 to 3.3.0 in /cnf (#2030)
  • Bump checker-qual from 3.28.0 to 3.29.0 in /cnf (#2029)
  • Bump gson from 2.10 to 2.10.1 in /cnf (#2028)
  • Bump fastexcel from 0.14.3 to 0.14.4 in /cnf (#2024)
  • Bump pax-logging / slf4j-api from 1.7.36 to 2.0.6 in /cnf (#2003)

2022.12.0

14 Dec 21:28
Compare
Choose a tag to compare

OpenEMS Edge

  • OpenemsComponent: do not auto-generate a Component-ID; throw IllegalArgumentException instead (#1985)
  • Soltaro Battery: adjust protection parameters (#2004)
  • Modbus/TCP Api: general improvements (#2004)
  • HeatPump Controller: fix min SoC handling (#2004)
  • App-Center: general improvements, configure IP addresses (#2004)
  • GoodWe Grid-Meter: fix voltage and current channels (#2004)
  • Simulated EVCS: fix power calculation (#2004)
  • Backend-Controller: improve reconnect (#2004)

OpenEMS Backend

  • Improve handling of many connected OpenEMS Edges - mainly improve performance and reduce logging (#2004)
    • Configure SIMPLE or DETAILED logging; reduce excessive logging on individual UI/Edge events
    • Use String instead od ChannelAddress → avoids conversion of String to ChannelAddress and vice versa
    • Avoid parsing EdgeConfig → avoids conversion of JSON to EdgeConfig and vice versa
    • Use ConcurrentHashMap as WebSocket collection → as suggested by https://github.com/TooTallNate/Java-WebSocket/blob/master/src/main/java/org/java_websocket/server/WebSocketServer.java#L195-L202
    • InfluxDB: parse values without relying on Exceptions → avoids throwing Exceptions in normal control flow
    • Do not block Threads for waiting JSONRPC Requests → avoids filling of reserved ThreadPools
    • Fix possible NullPointerExceptions in certain places
  • TimescaleDB beta: refactoring of database Schema and implementation (#2004)
  • Alerting: refactoring for Code cleanup and prepare for more alerting functions (#2004)
  • Odoo.Metadata: improve Odoo API implementation (#2004)

OpenEMS UI

  • UI: Login improvements (#2007)
  • Subscribe to Edge in Backend → avoids sending unnecessary Notifications from Backend to UI (#2004)
  • Add help buttons; fully OEM-able (#2004)
  • Unify visualization of power, voltage and current (#2004)
  • Show "Offline Since" in overview for Edges (#2004)
  • Better handling of empty history charts (#2004)
  • Fix timing issue with translations: load JSON statically (#2004)

Common

  • Fix Gradle buildAntoraDocs (#2006)
  • Unit: make Symbols unique (#2004)
  • Gradle Build files: faster build (#2004)

Version upgrades

  • Bump fastexcel from 0.12.15 to 0.14.0 in /cnf (#1975)
  • Bump flux-dsl from 6.5.0 to 6.7.0 in /cnf (#1974)
  • Bump rrd4j from 3.8.1 to 3.8.2 in /cnf (#1973)
  • Bump org.apache.felix.webconsole.plugins.ds from 2.1.0 to 2.2.0 in /cnf (#1971)
  • Bump aXMLRPC from 1.12.0 to 1.12.1 in /cnf (#1970)
  • Bump influxdb-client-core/utils from 6.5.0 to 6.7.0 in /cnf (#1979)
  • Bump org.apache.felix.configadmin from 1.9.24 to 1.9.26 in /cnf (#1983)
  • Bump org.apache.felix.http.servlet-api from 2.0.0 to 2.1.0 in /cnf (#1982)
  • Bump loader-utils from 2.0.3 to 2.0.4 in /ui (#1984)
  • Bump aXMLRPC from 1.12.1 to 1.13.0 in /cnf (#1988)
  • Bump postgresql from 42.5.0 to 42.5.1 in /cnf (#1990)

2022.11.0

06 Nov 22:43
Compare
Choose a tag to compare

Highlights

  • Add TimescaleDB timeseries database support to OpenEMS Backend (BETA test quality) (#1964)
  • Implementation of Weidmüller fieldbus coupler UR20-FBC-MOD-TCP-V2 (#1964)
  • Implementation of Meter Ziehl EFR4001IP (#1964)
  • Implementation of KACO Blueplanet Hybrid 10 (#1966)
    • NOTE: implementation is open source, but requires a proprietary identkey. See Pull-Request for details.

Bug Fixes and Other Changes

Version upgrades

FEMS Backports 2022-10 (#1948)

  • OpenEMS Edge

    • Improve startup time/behaviour via @Activate/@Modifed/@deactivate
    • Soltaro Battery: remove non-required info
    • Sinexcel Battery-Inverter: improve control speed
    • Time-Of-Use-Discharge Controller: properly handle emergency reserve SoC
    • Sell-To-Grid-Limit PV-Inverter: add asymmetric control
    • Improvements to App-Center
    • Improvements to Network Configuration
    • Add Modbus/TCP definitions for GoodWe ESS
  • OpenEMS UI

    • Add linting check to Github Workflow/CI
    • Improvements to Alerting
    • Improvements to Network Configuration
    • ngx-translate: switch to async translations and json file format; Translations are now compatible with i18n-ally Visual Studio Code extension
    • General improvements
  • OpenEMS Backend

    • Add TimescaleDB implementation (BETA test quality)
    • Handle SerialNumber of EMS in Odoo
    • Improvements to Alerting
    • Improve handling of subscribes to Channels
    • Move EdgeCache (caching of current data) to EdgeWebsocket.WsData
    • Metadata.Odoo: code cleanup
    • General performance improvements - analyzed via JDK Mission Control
  • Common

    • JsonUtils: performance improvements + JUnit tests
    • Improve automated Websocket reconnect on error
    • Add @Modifed to all Singletons
    • Handle @Modifed in JUnit tests

FEMS Backports 2022.11 (#1964)

  • OpenEMS Edge

    • Implementation of Weidmüller fieldbus coupler UR20-FBC-MOD-TCP-V2
      • Configuration is dynamically read from Modbus and Channels are created accordingly in the same format as for the existing WAGO fieldbus coupler.
    • Implementation of Meter Ziehl EFR4001IP
    • GoodWe Grid-Meter: implement ModbusSlave, improve code, HIGH modbus priority
    • Modbus-Bridge Cleanup
      • Prepare for bigger changes in Modbus-Bridge implementation
      • Rename Thread inside AbstractWorker to thread and make it protected
      • Drop priority ONCE, because it has no feasible use the way it is implemented currently. Use LOW instead. It makes sure the value is actually going to be read, even if e.g. the connection cannot be established from the beginning
      • Simplify TasksManager and move unused parts to Kostal Piko implementation
    • Structural changes in EVCS. Thanks @sebastianasen
      • AbstractManagedEvcs
        • Write handler no longer needed in every Evcs Component
        • Abstract Methods to ensure the minimum required information
        • Calculating the flexible hardware power limits depending on the hardware limits and current used phases
        • Handles the current ChargeState (Additionally to a normal State "CHARGING", it is aware if the limit is increasing, decreasing, normal or not charging)
        • This State is important because an evcs and the car itself need from 5 to 40 seconds (round about), till a limit is taken
      • Changed:
        • Phases stored as Enum
        • MaximumHardwarePower set by the component changed to FixedMaximumHardwarePower
        • MaximumHardwarePower still present (for boundaries in UI), but calculated automatically mentioned in AbstractManagedEvcs
        • EvcsCluster ClusterState depending on ChargeStates of each evcs.
        • Blocking new distribution if there was a regulation before and one or more evcss still increasing or decreasing.
        • Limit for each evcs is set with a filter
        • Fallback solution if the grid meter is above the limit
        • Evcs Comonents
        • Extending AbstractManagedEvcs & changes according to that
    • Improvements in App-Center
  • OpenEMS UI

    • Wait for App till translations are loaded
  • Common

    • Fix TypeUtils multiply

2022.10.0

04 Oct 20:12
Compare
Choose a tag to compare

Highlights

FEMS Backports 2022-08 (#1921)

  • Backend.Api.Controller
    • Improve reconnection speed
    • Fix problems if initial connection fails with timeout
    • Disable JUnit test as it sometimes breaks CI
  • Modbus-TCP-Api Controller:
    • Add implementation of 'cycleValue'
    • Return actual ESS limits at the Controller position in the Scheduler (instead of just AllowedCharge/DischargePower)
  • Heating Element Controller
    • Add Status information
    • Runtime fixes
  • Timeslot-Peakshaving ("Hochlastzeitfenster")
    • Fix parsing of times
    • Add PeakShavedPower Channel
  • App-Center
    • Improve Javadoc and minor improvements to App definitions and App-Manager service
  • Shelly IO
    • Implement 'Meter' Nature. Now Shelly Plugs are shown as Consumption in OpenEMS UI
  • Meters by Carlo Gavazzi, Janitza, Siemens, SOCOMEC, Schneider
    • Add invert feature
  • Simulated ESS
    • Derive AllowedCharge/DischargePower from Capacity (simulate a C-Rate of 1)
  • UI
    • Add ES-Lint and Unit tests
    • Continue migration to oe-modal-line etc.

Version upgrades

  • Bump uuid from 8.3.2 to 9.0.0 in /ui (#1922)
  • Bump org.apache.felix.eventadmin from 1.6.2 to 1.6.4 in /cnf (#1919)