Skip to content

2021.18.0

Compare
Choose a tag to compare
@sfeilmeier sfeilmeier released this 21 Oct 17:08
· 1018 commits to develop since this release
17c5e12

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)