Skip to content

Releases: OpenEMS/openems

2020.15.0

16 Jul 19:54
Compare
Choose a tag to compare

Common

Edge

  • Implement Generic JsonLogic Controller (#1148)
    • The JsonLogic-Controller is a very generic Controller that allows the definition of a complex logic as a configuration at runtime, e.g. via Apache Felix Web Console. It is based on the JsonLogic specification (http://jsonlogic.com[jsonlogic.com]).

2020.14.0

03 Jul 19:56
Compare
Choose a tag to compare

Common

  • Update UI and Java dependencies

Edge

  • Implement Shelly Plug S and Shelly 2.5 WiFi Switches (#1156)
  • Controller IO Heating-Element: apply default Level in manual mode c6bab9b
    • Migrate JUnit tests to new JUnit test framework
    • Add JUnit tests for manual mode
  • Work on Energy Storage System power distribution optimizer (#1167)
    • Allow modification of configuration without reloading of component
    • Add limit on "Integral" part of PID filter c143b05
    • Add option to disable PID filter db467ea
  • FENECON Pro 9-12 fix MaxApparentPower (#1167)
  • Soltaro Single B: add missing Api Channels (#1164)
    • write necessary component channels to api channels, fix isUndefined() for state machine
    • Avoid 'SuppressWarnings'
  • Do not handle events if component is disabled. ab02d46
    • Add missing if-clause to break-early the event handling of multiple components.

2020.13.0

18 Jun 20:30
Compare
Choose a tag to compare

Edge

  • Implement SMA Sunny Tripower PV Inverter (#1154)

  • Implement OCPP-Server & more for electric vehicle charging (#1142) Thanks @sebastianasen - this is huge!

  • Update Channel methods (#1165).

    • Update methods to access Channels as discussed in #1046 and started in #1099. This avoids calls to setNextValue() and setNextWriteValue() and should make the framework much more understandable and lower the learning curve.

    • Each Read-Channel of a Nature Interface gets following methods: (example for a Channel NAME of type Integer)

      • IntegerReadChannel getNameChannel()
      • Integer getName()
      • _setName(Integer value)
      • _setName(int value)
    • Write-Channels also get a method

      • setName(Integer value) that internally calls the setNextWriteValue() method
  • Fix for Soltaro Cluster Version B 395e563

  • Fix for Socomec Diris A14 0a63657

  • Update for Carlo Gavazzi documentation f67c2c4

  • Update Java dependencies #1149, #1166, #1168, #1170, #1171

UI

  • UI: add status component for each edge (#1162)
    • with right restrictions (at least admin)
  • UI: add feature to rename components in 'Anlagenprofil' (#1163)
    • UI: rename components in 'Anlagenprofil' with restriction (at least: owner)
  • Update UI dependencies b72256e

2020.12.0

05 Jun 10:32
Compare
Choose a tag to compare

Edge

  • Add generic implementation for State-Machines (#1099)
  • New OpenEMS Nature "BatteryInverter" (ManagedSymmetricBatteryInverter, SymmetricBatteryInverter) (#1099)
  • Implement Generic ManagedSymmetricEss (#1099)
    • This builds an energy storage system as a combination of a "Battery" with a "Battery-Inverter"
  • New feature "Start-Stop" (#1099)
    • Implementing the 'StartStoppable' interface marks a device or service that can be started or stopped
  • Add JUnit Test-Framework for all kinds of OpenemsComponents (#1099)
  • Generic implementation of SOCOMEC meters (#1157, 25cfcd3)
    • Just configure Meter.Socomec.Singlephase or Meter.Socomec.Threephase. The actual type and modbus protocol of the Socomec meter is identified automatically.
    • Implemented singlephase meters:
      • Socomec Countis E14
    • Implemented threephase meters:
      • Socomec Countis E24
      • Socomec Diris A10
      • Socomec Diris A14
      • Socomec Diris B30
  • Apply Getters and Setters for Nature-Channels: see #1046 (comment)
  • Refactoring of "Battery" interface (#1099)
  • Improvements for FENECON Mini implementation 32b7d57, 0921cf1
  • GoodWe ES: Add configuration for Capacity #1152
  • DcPredictiveDelayCharge-Controller: allow multiple chargers (#1153)

UI

  • Show Metered Consumption + FixDigitalOutput History Charts (#1155)
    • add metered consumption as history chart
    • add chart for fixdigitaloutput component
  • Update dependencies aed3fc0

Backend

  • JSONRPC: enable subscribe to Channels of multiple Edges f99ebcd

2020.11.0

20 May 20:19
Compare
Choose a tag to compare

Common

Edge

  • WAGO: compatibility with newer fieldbus couplers + all kinds of digital output modules (#1136)
    • Tries to read old 'ea-config.xml' and new 'io_config.xml'
    • Dynamically reads the number of output channels from xml file for WAGO 750 5xx-modules
  • Meter Carlo Gavazzi EM300: add invert config setting (#1140)
  • Improvements to GoodWe ET implementation (#1141)
    • Added the max apparent power reading from ModBus register. and also few code refactoring.

UI

  • Collected UI improvements (#1143)
    • add possibility to pick level when heatingelement is set to MANUAL_ON in heatingelement advanced widget
    • add help button which links to openems.io docs for chpsoc, evcs, singlethreshold, heatingelement and fixdigitaloutput
    • add metered consumption to consumption flat and advanced widget
    • remove workmode kwh from heatingelement advanced widget

2020.10.0

08 May 07:39
Compare
Choose a tag to compare

Edge

  • Implement BYD Battery-Box Commercial C130 #1120, thanks @huseyinsaht
  • Implement Janitza UMG 604 meter (#1116), thanks @pooran-c
  • Add _sum/EssDischargePower Channel 286ab73
    • For AC coupled energy storage systems this is the same as EssActivePower; for DC coupled or hybrid ESS this is the EssActivePower minus ProductionDcActualPower, i.e. the power that is actually charged to or discharged from the battery.
  • IO Heating-Element Controller:
    • use EssDischargePower-Channel to fix logic on DC/hybrid ESS d678a93
    • drop kWh, some refactoring, add tests 649777a
  • Add Modbus-Slave definition for ESS Sinexcel #1132
  • Fix: InfluxDB data collection for WRITE_ONLY Channels 5a87113
  • Fix: GoodWe apply power setpoints 0a5d741
  • Fix: Discovergy implementation with latest API for Production meters #1130
  • Fix: Pro 9-12 read-write Channel-IDs 28b2bf0
  • Fix: Modbus-Api Controller access on Write-Only registers + improve Javadoc + apply Checkstyle

UI

  • update pickdate period + minor changes (#1124)
    • when next day or next week is reached pickdate will automatically switch to the next day/week
    • no changes to custom dates made
    • resubscribe when websocket is reestablished
  • Update dependencies

Common

2020.9.0

23 Apr 17:09
Compare
Choose a tag to compare

Common

Edge

UI

  • Fix showing widget twice a9a37f4
  • Add check if nature ist defined in getFactoriesByNature() (#1113). Thanks @ahummelsberger
  • Add charts and other small changes (#1107)
    • change of phase 1 color to orange (red is too much in use for charge values)
    • small code fixes
    • add chpsoc history chart
    • add heating element chart
    • adjustments on heating element widget
    • automatic value update for history widgets and charts

2020.8.0

09 Apr 22:50
Compare
Choose a tag to compare

Common

Edge

  • IO Heating Element Controller (#794): Controls a three-phase heating element via Relays, according to grid active power
    grafik

  • Add Port configuration to Modbus/TCP bridge eefcb96

  • Improvements for FENECON Commercial 40, Pro 9-12 and Mini systems 106f04a 46f5286

UI

  • Combined update #1100
  • re-adjust side menu
  • exchange library of pickdatecomponent
  • add current day highlighten + popup animation to pickdatecomponent
  • second rate widget class error fix
  • full angular 9 update
  • singlethreshold history widget: exchanged y-axis of chart
  • singlethreshold history chart: correct use of yAxis if there are only % values
  • fixIO prevent sending updatecomponentconfig on init of advanced widget
  • add charge/discharge to peakshaving history widgets

Backend

2020.6.0

13 Mar 21:43
Compare
Choose a tag to compare

Common

  • Improve logging c875791
    • start pax logging api as early as possible
    • reduce default log level to INFO
    • move logging configuration to DefaultConfigurationWorker
  • Improvements in EdgeConfig handling (#1074) (#1076)
    • remove "isEnabled"; it's already covered by the 'enabled' property
    • improve "getAsText" method
    • Websocket.Api: do not collect EdgeConfig if no websocket is connected
    • Create EdgeConfigFactory that takes care of building and caching EdgeConfig
    • Cache EdgeConfig and only incorporate ConfigurationEvents on Change; improves speed a lot
    • Fix timing issue. Before it could happen, that EdgeConfigFactory would read an old configuration as the OpenEMS Component had not been initialized fast enough.
  • Improve formatting of EdgeConfigDiff
  • Fix handling of disappearing Components
  • Use EventAdmin to distribute updated EdgeConfig
  • Handle update of EdgeConfig by EdgeConfigWorker; this is required to get all available Channels
  • Apply explicit version numbers for dependencies (#1078); also provide slf4j.api, gson and guava per default for every bundle
  • Update Backend, Edge and UI dependencies c9c26ad 18a52aa

Edge

  • Fix behaviour of PID filter in low-priority Controllers 3ac5c31
    • This commit fixes a bug that would happen when a Controller that is using a PID filter has lower priority than another Controller; e.g. FixActivePower-Controller with higher priority than PeakShaving-Controller.
    • 1st: there was an issue that low+high limit would not be applied when they are equal - which happens e.g. after FixActivePower
    • 2nd: target value is now reduced to low+high limits before calculation starts; this avoids an always increasing error in above constellation
    • 3rd: when input already equals target; stop early as we are already there
    • also refactored "applyPidFilter" to use integers only; this is required for the "error = 0" clause to work properly
  • Improvements to FENECON DESS (#1067)
    • Set MaxApparentPower and Capacity Channels
  • Fix B-Control meter implementation (#1069)
  • Soltaro Battery Handling Controller (#1075)
  • GoodWe ET write implementation (#1077)
  • Add invert option to CHP-SoC-Controller (#1037)

UI

  • improve layout in UI log view c875791

Backend

  • Backport Backend improvements from fems (#1068)
    • improve handling of FileTypeConflicts:
    • Enable conversion of Float and Double to Integer
    • Try again on error (this is required for _property channels)
    • Configure pax logging only if it had not been configured before
    • Reduce logs on startup: introduce "isInitialized" state in Metadata service
    • Allow update of EdgeProductType
    • Clear debug system out printlns
  • improve performance to Postgres database: Use HikariCP: A solid, high-performance, JDBC connection pool https://github.com/brettwooldridge/HikariCP 141d605

2020.5.0

01 Mar 13:43
Compare
Choose a tag to compare

Edge

  • Add Asymmetric Peakshaving Controller (#1051)

  • Add Channel-Single-Threshold Controller (#979)

    • Generic Controller that sets a digital output according to the value of given Channel - e.g. turn a Relay on or off, when configured input channel (e.g. State-of-charge) is above or below a given threshold respectively.
  • Add DefaultConfigurationWorker. Creates default configurations for deployment. (#1054), 88f8033, 6c8880c

    • default config for Controller.Api.Rest.ReadOnly and Controller.Api.ModbusTcp.ReadOnly
  • Fixes and improvements on PID filter (#1059)

    • Add Excel PID Simulator (see doc-folder)
    • Add tests for PidFilter class (created using Excel PID Simulator)
    • Add SetActivePowerEqualsWithPid Channel on ManagedSymmetricEss
    • Fix PID behaviour when close to min/max limits: never reset ErrorSum
    • Drop unused features from PidFilter class
    • Use SetActivePowerEqualsWithPid in Symmetric PeakShaving, Asymmetric PeakShaving and Balancing Controllers
    • Add and fix tests in Symmetric PeakShaving, Asymmetric PeakShaving and Balancing Controllers
  • EdgeConfig: default directory for Edge related files is now c:/openems/ 1ac7ae8

  • EdgeConfig: Fix NullPointerException "ocd.getAttributeDefinitions(filter)" returns an array of attribute definitions or null if no attributes are selected 1dd6734

UI

  • Improvements for Symmetric Peakshaving
  • Add Asymmetric Peakshaving Controller (#1051)
  • General UI adjustments (#1050)
    • hide widget if component is not enabled
    • add charging target to modal evcs widget
    • adjust unitvalue pipe for displaying '-' on null values
    • UI: FEMS-Settings Adjustments (#1036)
      • add button at beginning/middle of array in repeat component
      • add alias to edit config component
      • add icons to profile in fems settings
      • add rework of install components
    • UI Overhaul (7ef9dd4)
      • fix of Expression has changed after it was checked error
      • sorted modules etc.
      • removed unnecessary subscribes
      • reworked energy chart for better visibility
      • reworked widgets to work with components instead of controllers as variable names
      • reworked translation variables for constant notation (camelCase for variables)
    • set edge port 8085 as default environment (#1064)

Common

  • Add documentation for openems edge core bundle (#1054)