# OpenEMS Release 2020.17.0

**URL:** <https://community.openems.io/t/openems-release-2020-17-0/275>\
**Category:** Releases\
**Created:** [August 13, 2020, 7:06pm UTC](https://community.openems.io/t/openems-release-2020-17-0/275 "2020-08-13T19:06:54Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![stefan.feilmeier](https://community.openems.io/user_avatar/community.openems.io/stefan.feilmeier/32/2585_2.png) [@stefan.feilmeier](https://community.openems.io/u/stefan.feilmeier)\
**Post date:** [August 13, 2020, 7:06pm UTC](https://community.openems.io/t/openems-release-2020-17-0/275/1 "2020-08-13T19:06:54Z")

</div>

## Highlights

- Improvements on energy values ([#1187](https://github.com/OpenEMS/openems/pull/1187))
  - Adjust driver components for GoodWe, Sinexcel, Carlo Gavazzi, KACO blueplanet gridsave, Janitza UMG96RME and all the Simulators
  - Improve handling throughout the stack in OpenEMS Edge and OpenEMS UI

- Implement BMW battery ([#1199](https://github.com/OpenEMS/openems/pull/1199))
  - as used in the [award winning](https://openems.io/2020/06/30/openems-powers-the-intersolar-award-winners-2020-photovoltaics/) FENECON Industrial energy storage platform

- Implement historic energy with local timeseries database RRD4J ([#1198](https://github.com/OpenEMS/openems/pull/1198))
- Implement SOCOMEC Countis E23 meter [60519cc](https://github.com/OpenEMS/openems/commit/60519cca40f896f96e4ee9c5a8d98099ec3e80de)

## Bug Fixes and Other Changes

- Fix BackendApp.bndrun: Update & resolve [7aa7be7](https://github.com/OpenEMS/openems/commit/7aa7be700cf3db38dc69573c3aeb86ff0c8c0986)
- Fix Backend-UI: Show ‘no edges’ warning only after connection was fully established [c18f6dd](https://github.com/OpenEMS/openems/commit/c18f6dd4fb610ca5155104067431a4b5f56951d3)
- Fix AbstractReadChannel: detection of changed values. This avoids unnecessary calls to the onChangeCallbacks [2f58826](https://github.com/OpenEMS/openems/commit/2f588261939b1c98ce94e69559c270324b0761a2)
- Fix StartStoppable: calls to start() and stop() [fab676d](https://github.com/OpenEMS/openems/commit/fab676d9f7b1c55edf625bcfcf84ccbc64f24d8b)
- Fix behaviour for optional configuration parameters [f032667](https://github.com/OpenEMS/openems/commit/f032667a6509e0e8ff603c0c7dbae04c5b4e4d83)
  - An optional configuration parameter is a parameter that is defined as ‘required = false’ within the @AttributeDefinition in Config.java.  
Before the behaviour for optional ‘int’ parameters used to be, that they would default to ‘0’ if they were not provided. Now - maybe caused by an update to Apache Felix Configuration Admin - they default to an empty String which causes a NumberFormatException.

- Fix Controller.Api.Websocket: subscribe topic for event handler [b019ee5](https://github.com/OpenEMS/openems/commit/b019ee5f4cedfa8c7355348ace3e8379c68a0878)
  - Fixes the error on startup: `WARN [org.apache.felix.eventadmin] EventAdmin: Invalid EVENT_TOPICS : Missing - Ignoring ServiceReference`

- Fix Soltaro.Single.VersionA: implement SoltaroBattery interface [3ed6dac](https://github.com/OpenEMS/openems/commit/3ed6dac2a4c608d8eb751e634dd8e4ffab3c9430)
- Fix RRD4j: fix last timestamp check
  - Thanks [@ahummelsberger](https://github.com/ahummelsberger) for pointing it out: [#1185 (comment)](https://github.com/OpenEMS/openems/pull/1185#discussion_r466973983)

- Fix Generic.Ess: mixed up handlers for StopBatteryInverter and StopBattery [cc8d30b](https://github.com/OpenEMS/openems/commit/cc8d30b0f176795c6a42ee2dfb5c49d2be95a120)
- Fix SDM630 meter: modbus registers [4988750](https://github.com/OpenEMS/openems/commit/49887502981d8dbc7aa824916e23c3f8cff921ed)
- Event Admin: disable timeout [0ffd25e](https://github.com/OpenEMS/openems/commit/0ffd25e46fd435adeabab546165aa4813cc08982)
  - NOTE: This sets the org.apache.felix.eventadmin.Timeout to 0. See [https://felix.apache.org/documentation/subprojects/apache-felix-event-admin.html](https://felix.apache.org/documentation/subprojects/apache-felix-event-admin.html) for details. Use case: a breakpoint in a handleEvent() or the Ess.applyPower() method could cause a timeout which blacklisted the respective event handler and would lead to unexpected situations where the event handler does not get called anymore.

- Antora docs: update versions for dependencies [3497e23](https://github.com/OpenEMS/openems/commit/3497e23c174e1ad8ac38c6930b421fa4f3b1e09d)
