Skip to content

Releases: OpenEMS/openems

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)

2021.10.0

20 May 12:21
f4b3ae8
Compare
Choose a tag to compare

Highlights

Bug Fixes and Other Changes

  • Improve getting the Hostname for _host/Hostname Channel 2ab79dd
  • Fix UI: show 'zero' values' (#30) 74835b3
  • GoodWe-ESS: fix apply readOnlyMode 4f5a345
  • Update to gradle 7.0.2 92e3833, 7abff5a
  • Continued UI refactoring: FlatWidget for grid (#1447)
  • Use MetaTypeInformation for _Property Channels (#1463)
    • improve type safety
    • improve security: password fields are not created as Channels
  • Update UI dependencies ac509f5

2021.9.0

06 May 16:36
39886a1
Compare
Choose a tag to compare

Highlights

  • Implement MQTT (#1395)

    • This adds support for the MQTT protocol in OpenEMS Edge. The new "Controller.Api.MQTT" publishes data to an MQTT broker.
    • It uses the following MQTT topics:
      • edge/{OpenEMS-Edge-ID}/channel/{Component-ID}/{Channel-ID}
        • Data of Channels is published on change and at least every 5 minutes to these topics.
        • Example: edge/edge0/channel/_sum/GridActivePower
      • edge/{OpenEMS-Edge-ID}/channel/lastUpdate
        • Timestamp of the latest data update on any of the Channel topics above.
        • Example: edge/edge0/channel/lastUpdate
      • edge/{OpenEMS-Edge-ID}/edgeConfig
        • Configuration of the OpenEMS Edge instance is published to this topic as a JsonObject.
        • Example: edge/edge0/edgeConfig
    • The implementation is built on version 5 of the MQTT protocol and was tested with Eclipse Mosquitto (https://mosquitto.org).
    • Be aware that this implementation only marks the start of MQTT support in OpenEMS. Therefor implementation details might change with future versions.
  • Improved Login and Session-Handling (#1013)

    • New User-Area in UI
    • Allow login on Backend
      • Dummy and File Metadata services store sessions in memory
      • Odoo Metadata service uses Odoo sessions
    • Add option for logout
    • Always explicitly authenticate via JSON-RPC Request (not via http headers)

Bug Fixes and Other Changes

  • Add Compatibility with IntelliJ and Amdatu Plugin (#1460), thanks @DerStoecki/Consolinno
  • Update dependencies #1455, #1456, #1457, #1458, #1459
  • CHP Controller: Fix possible NaN-error #1013
  • Fix "Factory definition for [*] is missing." error in UI #1013
  • UI Cleanup for websocket state + resubscribe #1013
  • Update UI with a little bit better state-machine; should switch NgRx eventually #1013
  • Bridge.OneWire: add readme for JSON-RPC methods 49af2ab
  • UI: FlatWidget for Storage (#1445), thanks @lukasrgr
  • GoodWe: update calculation of DC and AC Power and Energy 700b0e3
  • SystemdNetworkd: improve parsing of configuration files c4ca421
  • SymmetricBatteryInverter: add missing PersistencePriority 8e142f9
    • this fixes issues with energy values for GenericEss
  • Add Hostname Channel "_host/Hostname" 1d1aea3

2021.8.0

22 Apr 19:26
Compare
Choose a tag to compare

Highlights

  • Downgrade apache.felix.scr to 2.1.20 (#1438)
  • We are in the process of restructuring the software architecture of the UI. Thanks @lukasrgr for this contribution!
    • Targets are:
      • better modularization and generalization, e.g. automated subscribe and unsubscribe of channels
      • much simpler development of new Widgets, with less boiler-place code
      • align naming of Components with OpenEMS Edge
    • Generic wigets in the Live view for the OpenEMS Edge Components "Controller.IO.FixDigitalOutput" and "Controller.Ess.FixActivePower (#1414)
    • UI: Flat-Widget for autarchy, fix bug in Fix.DigitalOutput (#1443)
  • Refactor ESS Linear Power Band Controller (#1437)
    • migration to modern bundle layout
    • configurable start direction, i.e. start with charge or discharge ramp
    • Channels for StateMachine and TargetPower to simplify tracing
    • add JUnit test
  • OpenEMS Backend: significantly optimize ThreadPools (#1440)
    • Reduce the total number of ThreadPools (before there was one ThreadPool per WebSocket. Now it's one per Component.)
    • Set namespace for ThreadPools to simplify debugging

Bug Fixes and Other Changes

  • Battery Soltaro
    • Single B: calculate capacity automatically (#1428)
      • Read number of modules from Modbus
      • Module-Type still needs to be configured
    • adjust battery-protection for 3.5 kWh battery module (#1420)
  • FENECON Home Battery: add Battery Protection (#1425)
  • ConfigurationAdmin: avoid NullPointerException (#1441)
  • GoodWe-Battery-Inverter:
    • fix calcuation of MaxAcImport Channel 442263f
  • Refactor User classes for Backend and Edge (#1442)
    • Create a more logical common structure for Users in OpenEMS Backend and Edge.
  • OneWire-Bridge: GetDevicesRequest reads all connected OneWire devices (#1442)
  • Fenecon Mini: improve handling of MaxApparentPower (#1442)
  • Fix Jsonrpc layout between Edge, UI and Backend da6a42e
  • UI - Header: changed state 'info' for every non-admin to 'checkmark' (#1454)
  • EdgeWebsocket: fix broadcast send of EdgeConfigNotification 1943c7b
  • Use ThreadPoolUtils.shutdownAndAwaitTermination() throughout the project ade210b
  • EdgeConfigWorker: avoid ConcurrentModificationException on dynamic Channels 6d44a6c
  • Sum: fix reference to Timedata 2c53e20
    • This had caused the Sum-Component to activate, deactivate and activate again on startup, resulting in a RejectedExecutionException in Controller.Backend.Api
  • Update gradle to 7.0 324ce54
  • Update UI dependencies 24741b4