Skip to content

Releases: OpenEMS/openems

2021.20.0

18 Nov 22:24
1837bf0
Compare
Choose a tag to compare

Thank you to all the members of the OpenEMS Association for the networking at the yearly general meeting. And also thanks to the Community for joining us in the OpenEMS Conference 2021 on 16th November. The recordings will be available soon on https://openems.io/.


Highlights

  • Time-Of-Use Tariff Corrently: switch to 15 minutes resolution
  • Add Time-Of-Use Tariff Tibber (#1663)

Bug Fixes and Other Changes

  • Ess-Cluster: fix calculation of channels (#1666)
    • Certain Channels like 'Capacity' or 'ActivePowerL1/L2/L3' had not been calculated at all or correctly.
  • Fix DESS Chargers: change Config1 to Config2 (#1665)
  • Ess Cycle Controller Final Soc State Charge Bug Fix
  • FEMS Backports #1658
    • Improvements for Time-Of-User Tariffs
      • Implement generic Time-of-Use tariff service.
      • Implement Awattar TOU tariff provider implementation.
      • Implement Corrently by STROMDAO TOU tariff
    • Checkstyle: do not required Javadoc for build() method in builder pattern
    • Add System-Update feature (if OpenEMS Edge is installed via Debian package)
      • Add ExecuteSystemUpdateRequest and GetSystemUpdateStateRequest
    • Add Password-only sudo authentication for system execute
    • Add exitcode to ExecuteSystemCommandResponse
    • Add global .gitignore patterns
    • Update gradle bnd version to 6.0.0
    • Increase number of Threads in ThreadPools to avoid pending tasks
    • Add handling of BundleContext in activate (without DummyBundleContext, because that had caused Resolve errors)
    • UI: improve detection of isOnline
    • Set default port 8085 in edge-dev.ts
    • TypeUtils: fix conversion from Double to Float
      • This fixes a bug where a double "0.0" could not be converted to float, with following error: "Cannot convert. Double [0.0] is not fitting in Float range."
      • Also applied Checkstyle on TypeUtils.
    • Keba KeContact: trim configured IP address
      • This avoids "evcs0[Failed activation java.net.UnknownHostException: xxx.xxx.xxx.xxx]
    • Introduce OpenemsOEM class which simplifies creating custom distributions of OpenEMS
    • Soltaro Battery Improvement
    • Sinexcel Battery Inverter New Modbus Protocol Implementation
    • Allow SymmetricEss in EvcsClusterPeakshaving
      • EvcsClusterPeakshaving was not able to start with a SymmetricEss like Fenecon Dess. (No Reference for component ess0 ...)
    • UI register: Remove zip validator
      • Austria has only 4 digits; other countries... who knows?!
    • PQ Plus UMD96 Meter Implementation
    • Remove Predictive Delay Charge Controller
      • It was replaced by the more advanced "ESS Grid Optimized Charge" Controller (io.openems.edge.controller.ess.gridoptimizedcharge).
    • Hardy Barth Salia: implementation improvements
      • Small things like heartbeat were changed in the hardy barth software especially for the newer salia cpµ pro 2 (single charger).
      • Another problem was the external meter that is used internally in the hardy barth to provide the current charge values.
      • This meter also measures the standby consumption of the salia itself and is disabled by default - The function to enable it automatically is on hold for now, as we need a proper update process first.
    • GoodWe: add missing Write-Registers

2021.19.0

04 Nov 21:52
dfabd25
Compare
Choose a tag to compare

Bug Fixes and Other Changes

  • Fixed Reactive power listener in AsyncMeter (#1646). Thanks @kscholty
  • Update Getting Started-Docs for UI (#1650). Thanks @lukasrgr
  • UI: Fix default Port in Environment (#1651). Thanks @lukasrgr
  • InfluxDB: write data with milliseconds precision (#1644)
  • Dependency updates:
    • Bump gson from 2.8.8 to 2.8.9 in /cnf (#1656)
    • Bump postgresql from 42.3.0 to 42.3.1 in /cnf (#1655)
    • Bump org.osgi.service.jdbc from 1.0.0 to 1.0.1 in /cnf (#1649)
    • Bump date-fns from 2.24.0 to 2.25.0 in /ui (#1638)
    • Bump d3 from 7.0.3 to 7.1.1 in /ui (#1632)
    • Bump influxdb-java from 2.17 to 2.22 in /cnf (#1626)

2021.18.0

21 Oct 17:08
17c5e12
Compare
Choose a tag to compare

Highlights/New implementations

  • Time-of-use-Tariff Discharge Controller
    • Schedules the discharging of an AC or DC energy storage system in the night based on time-of-use prices, predicted production and consumption. Thanks @venu-sagar
  • ESS Cycle Controller: executes charge/discharge cycles on an ESS. Thanks @huseyinsaht
  • Generic Off-Grid ESS Implementation
    • Similar to the existing Generic-ESS, this Off-Grid variant takes any off-gridable battery inverter (like Sinexcel), any battery and an external device that manages grid-switching and off-grid detection to seamlessly transfer between public- and micro-grid. Thanks @huseyinsaht

Bug Fixes and Other Changes

these improvements are mainly backports from FENECON Energy Management System (FEMS) #1637

  • Generic/Build/...

    • Extract wrapper for OK HTTP library so that it can be used easier by other Components
    • Improve Modbus Communication errorhandling
      • In case of a modbus communication error there used to be a Fault state on the Modbus Bridge. This improvement moves the Fault state to the actual Modbus device instead.
      • New Fault state ModbusCommunicationFailed inside the ModbusComponent Nature
      • Properly implement ModbusComponent Nature in all Modbus device implementations
      • In Modbus Bridge: use global Cycle-Time
      • Add JUnit tests for Modbus-Bridge
    • Channel: refactor handling of initial value
    • Ramp-Filter: refactor
    • State-Machine: store the previous state and make it available via getPreviousState() method
    • Add feature to ignore Component Warnings and Faults in Sum
      • If you are aware that certain Components currently have an error (e.g. a Modbus-Device is not connected, KEBA charging station is turned off, etc.) you can add the Component-ID to Sum, so that it does not appear in the overall system State (_sum/State)
      • Example without ignore: [ctrlDebugLog0] _sum[State:Fault] ctrlApiRest1[State:FAULT: Unable to start REST-Api Server]
      • Example with ignore configured: [ctrlDebugLog0] _sum[State:Info|State:INFO: Component Warnings or Faults are being ignored] ctrlApiRest1[State:FAULT: Unable to start REST-Api Server]
    • TypeUtils: improve logic in case of null
    • DebugLogController: add config setting to print Component Alias and implement @Modified to apply changed configuration faster
    • Improve process of restarting defective Components via OsgiValidateWorker
    • ESS Power-Constraints: improve log messages and avoid unnecessary tests
  • UI:

    • Continue refactoring of Widgets
    • many bug fixes
  • Batteries/Energy Storage Systems

    • Battery-Protection: increase force-charge to 2 A by default
    • FENECON Home: add startup procedure to Battery
    • Soltaro Cluster B: Set StateChannels only if the corresponding racks are used
    • Grid-Optimized-Charge: improve logic
    • Implement Sinexcel as Battery-Inverter; drop ESS implementation
    • GoodWe:
      • implement smart-mode also for GoodWe ESS
      • implement meter that measures emergency power
    • Remove Predictive Delay Charge Controller (#1643)
      • It was replaced by the more advanced "ESS Grid Optimized Charge" Controller (io.openems.edge.controller.ess.gridoptimizedcharge).
  • Input/Output

    • IO Single Channel Threshold: refactor + allow multiple outputs
    • JSON/REST-Api: improve permission handling
  • Dependencies

    • Bump org.osgi.util.function from 1.1.0 to 1.2.0 in /cnf (#1642)
    • Bump org.osgi.util.promise from 1.1.1 to 1.2.0 in /cnf (#1641)
    • Bump postgresql from 42.2.23 to 42.3.0 in /cnf (#1640)
    • Bump jsoup from 1.14.2 to 1.14.3 in /cnf (#1633)
    • Bump guava from 30.1.1-jre to 31.0.1-jre in /cnf (#1630)

2021.17.0

07 Oct 23:43
e048c39
Compare
Choose a tag to compare

With this release we add a production-ready Backend integration with the Odoo ERP system. It serves as an authentication provider as well as IoT device management platform.

Try it in the OpenEMS GitPod Demo: https://gitpod.io/#https://github.com/OpenEMS/openems/tree/develop

For more information see: https://openems.github.io/openems.io/openems/latest/backend/gitpod.html

The OpenEMS module for Odoo is located at https://github.com/OpenEMS/odoo-openems

Thank you @mlang97 for the contribution!

2021.16.0

23 Sep 10:26
7966617
Compare
Choose a tag to compare

This release comes with minor bug fixes and changes

Bug Fixes and Other Changes

  • DebugLogController: add config setting to print Component Alias (#1627)
  • Bump org.apache.felix.scr from 2.1.20 to 2.1.30 in /cnf (#1623)
  • Bump fastexcel from 0.12.11 to 0.12.12 in /cnf (#1622)
  • Update Gradle to v7.2 369d047

2021.15.0

09 Sep 20:58
bc282db
Compare
Choose a tag to compare

Highlights

  • ESS Standby-Controller (#1158)
  • FEMS Backports #1617 - see below for details

Bug Fixes and Other Changes

  • TypeUtils: fix conversion bugs and improve type safety (#1611)
  • REST-Api: handle regex pattern syntax exception properly (#1616)
  • Modbus/TCP Api Controller: improve error handling (#1613)
  • FEMS Backports (#1617)
    • Generic/Build/...
      • Gradle: activate more detailed logs
      • Host: allow Network Configuration for Role 'owner'
      • Test-Framework and Simulator: improvements
      • Controller SG Ready Heatpump: fix persistence priority
      • Janitza meters: fix voltage and energy
    • UI
      • add support for theming
      • refactoring
      • Update Github Actions
    • Backend
      • Backend: handle User Language
    • Batteries/Energy Storage Systems
      • ManagedEss: add 'isManaged()' method for runtime detection
      • Generic-ESS is now a Hybrid-ESS
      • Battery Protection: require BMS data
      • BYD Battery Box Commercial: set state levels
      • FENECON Home Battery: numerous improvements
      • Soltaro Batteries: numerous improvements
      • Grid-Optimized-Charge-Controller: numerous improvements
      • GoodWe: numerous improvements
    • Electric Vehicle Charging
      • EVCS Controller: bugfixes
      • EVCS Hardy Barth: numerous improvements
      • EVCS Keba: fix energy limit
  • OpenEMS Backend as Docker container with InfluxDB preconfigured (#1298). Thanks @zoernert
  • KACO blueplanet gridsave 50: drop obsolete ESS implementation (#1452)
  • Update dependencies
    • Bump OCPP-J and v1_6 from 1.0 to 1.0.1 in /cnf (#1598)
    • Bump gson from 2.8.7 to 2.8.8 in /cnf (#1600)
    • Bump jna from 5.8.0 to 5.9.0 in /cnf (#1601)
    • Bump jsoup from 1.10.2 to 1.14.2 in /cnf (#1609)
    • Bump pax-logging-log4j1 from 2.0.9 to 2.0.10 in /cnf (#1607)
    • Bump org.apache.felix.webconsole from 4.6.2 to 4.6.4 in /cnf (#1608)
    • Bump org.apache.felix.webconsole from 4.6.4 to 4.7.0 in /cnf (#1615)
    • Fix compatibility with Apache WebConsole 4.7.0 (#1618)
    • Bump org.apache.felix.http.jetty from 4.1.10 to 4.1.12 in /cnf (#1614)
  • CI build fixes
    • Set UTF-8 for Javadoc (#1610)
    • Fix build of OpenEMS Docs (#1612)

2021.14.0

26 Aug 20:40
56d037e
Compare
Choose a tag to compare

Highlights

Bug Fixes and Other Changes

  • Refactor Channel-Source and Target information (#1595, #1597)
  • Refactor Ess-Cluster (#1590)
    • Refactor implementation, use ChannelManager for immediate updates to channel values, calculate weighted SoC and add JUnit tests
  • Go-e Charger: Fix minimum and maximum hardware power calculation (#1582), Fixes #1580
  • RevolutionPi improvements (#1562) Thanks @clehne
    • improved debugLog() format, added some debug write channels and improved event process handling (read on BEFORE_PROCESS_IMAGE, write on EXECUTE_WRITE)
    • also: Simulator BatteryDummy - added missing StartStoppable channels
  • Backend implementation for installation assistent (#1589) Thanks @mlang97
    • See also #1588 for UI development efforts for an OpenEMS installation assistant by @raphael-piller
  • Improve handling of OSGi References and target filters (#1603). Thanks @sebastianasen for your valuable inputs
    • Try to restart Components if they are unavailable
      • Due to a race condition on startup, sometimes Components are unavailable to the ComponentManager. The related error message is [Core.ComponentManager(1)] : Could not get service from ref. We are fixing this by restarting (i.e. 'reconfiguring') the Component in such a case.
    • Increase ComponentManager 'ConfigNotActivated' level to 'FAULT'
    • On UpdateComponent via ComponentManager: reset target properties
      • Before if a Component was referencing 'modbus0' and you would update it to 'modbus1', there were two possible behaviours. (1) if 'modbus0' was still existing, the update would work and the target filter would be set properly. (2) otherwise the target filter could not be set, because the Component would not reactivate. This would leave the Component in an error state. We are fixing this by always resetting the target properties.
    • Set non-empty default target filter by default
      • If the target filter is made available via 'Config.java' and the configuration property is left as an empty string, the error Invalid syntax in target property for dependency arises on activate, which showed to also cause wrong behaviour later. We fix this by setting a default target filter of (enabled=true) - which is always true, but avoids the error
  • Backports from FEMS (#1583)
    • HybridManagedSymmetricBatteryInverter: set persistence priority for DC power/energy channels
    • JsonUtils: add parser for JsonObject and JsonArray to OpenemsType.String:
      • This fixes io.openems.edge.common.component.AbstractOpenemsComponent] ERROR : [ctrl0] Unable to parse Property [property] value [[""]] to [STRING]: JSON [[""]] is not a JSON-Primitive
  • Array-Properties: handle datatype properly (#1586)
    • Tries to extract 'one' value of the array, falls back to 'STRING' if there are more two or more values and handle 'IllegalArgumentException' instead of fail
  • TypeUtils: fix possible NullPointerException 78f0b42
  • Dependency updates
    • Bump slf4j-api from 1.7.30 to 1.7.32 in /cnf (#1578)
    • Bump date-fns from 2.22.1 to 2.23.0 in /ui (#1576)
    • Update UI dependencies (#1584)
    • Bump slf4j-api from 1.7.30 to 1.7.32 in /cnf (#1578)
    • Bump d3 from 7.0.0 to 7.0.1 in /ui (#1594)
    • Bump ngx-cookie-service from 12.0.2 to 12.0.3 in /ui (#1593)
    • Bump angular-mydatepicker from 0.11.4 to 0.11.5 in /ui (#1592)

2021.13.0

29 Jul 22:00
e7f9186
Compare
Choose a tag to compare

Highlights

Bug Fixes and Other Changes

  • Documentation: add SMA TRIPOWER 8 / 10 as compatible PV inverter (#1561)
  • Add energy register mapping on Janitza UMG511 & UMG604 (#58)
  • Update dependencies
    • Bump org.eclipse.osgi from 3.16.200 to 3.16.300 in /cnf (#1536)
    • Bump gson from 2.8.5 to 2.8.7 in /cnf (#1485)
    • Bump postgresql from 42.2.22 to 42.2.23 in /cnf (#1567)
    • Bump ng2-charts from 2.4.2 to 2.4.3 in /ui (#1565)
    • Bump @ngx-formly/ionic from 5.10.21 to 5.10.22 in /ui (#1564)
    • Bump angular-mydatepicker from 0.11.3 to 0.11.4 in /ui (#1559)
    • Bump @types/uuid from 8.3.0 to 8.3.1 in /ui (#1555)
  • Fix deprecation warnings for gson 204e7a7
  • Switch to official eu.chargetime.ocpp via maven (#1574)
    • eu.chargetime.ocpp now deploys artifacts to maven central repository. This commit switches to these libraries, instead of building them ourselves.

2021.12.0

01 Jul 15:04
8543174
Compare
Choose a tag to compare

Highlights

  • Export Channels to Excel (#1526)
    • This very helpful new feature adds a link in UI Profile to download an Excel file with all Channels and their current value. Also adds information about the 'source' of a Channel, e.g. the modbus register address. See #1526 for details

Bug Fixes and Other Changes

  • UI: Flatwidget for selfconsumption (#1475)
  • Backports from FENECON FEMS 4788e05
    • ease implementation of @Modified with ModbusComponents
    • improve Channels concurrency in AbstractOpenemsComponent
    • improve error log message on updateReferenceFilter
    • improve error log message in websocket OnNotification
    • improve exception handling in websocket OnRequest
    • improve exception handling in Rest-API handler
    • Soltaro Single Rack battery: downgrade fault to warning
    • TypeUtils: add fitWithin() and abs() methods
  • ESS Fix Active Power Controller: apply new set-point faster using @Modified 77f872e
  • Check duplicated Modbus Register to Channel mappings (#1543)
    • This automatically checks and throws an error if there are multiple Modbus registers mapped to the same Channel
  • Bump postgresql from 42.2.21 to 42.2.22 in /cnf (#1538)
  • UI: drop deprecated angular2-uuid bf7d67d

2021.11.0

17 Jun 20:24
852257f
Compare
Choose a tag to compare

Highlights

  • Implement Controller.Ess.GridOptimizedCharge 03ba135 988688a
    • Combination of the PredictiveDelayCharge and the SellToGridPowerLimit controllers:
    • Delays the charging of the AC or DC storage system based on predicted production and consumption given by the PredictorManager.
    • Even during the delayed charging, the battery is able to force charge when the sell-to-grid power exceeds the configured "Sell-To-Grid maximum power limit".
    • This is mainly used when only 70 percent of the maximum production is allowed to feed in to the grid.

Bug Fixes and Other Changes

  • JsonUtils: improve parsing of Strings as booleans d2ba7b0
  • UI: Flatwidget for consumption (#1472)
  • SoC estimation improvement in simulator. (#1487)
    • Improved the Soc calculation by using the double value instead of float and estimating the soc through current energy value in the battery.
  • Upgrade to GitHub-native Dependabot (#1462)
  • Fix parsing of empty string properties to Integer 2629601
  • Simulator: remove obsolete min/maxActivePower config 39e76a1
  • FENECON DESS: use unfiltered SoC value from Modbus 03022b4
  • Update gradle to version 7.1 81c9f66
  • Add ESS-Discharge-Power Channels to the Modbus registers (#1518)
  • Merge Hybrid-Generic-ESS with Symmetric-Generic-ESS (#1519)
    • This simplifies configuration in scenarios where you do not need to care if there is a DC-PV system connected to a Hybrid inverter or not. Example: GoodWe ET (hybrid) can be used without a DC-PV system.
  • Bump org.apache.felix.http.jetty from 4.1.6 to 4.1.10 in /cnf (#1517)
  • Bump postgresql from 42.2.20 to 42.2.21 in /cnf (#1515)
  • Bump msgpack-core from 0.8.22 to 0.9.0 in /cnf (#1513)
  • Drop obsolete bundles Refu.ESS and Streetscooter.ESS bb5c809
  • Update UI dependencies (#1520)
  • Bump fastexcel from 0.12.9 to 0.12.11 in /cnf (#1483)
  • Bump org.apache.felix.inventory from 1.0.6 to 1.1.0 in /cnf (#1516)
  • Bump org.apache.felix.webconsole from 4.6.0 to 4.6.2 in /cnf (#1514)