Skip to content

2019.1.0

Compare
Choose a tag to compare
@sfeilmeier sfeilmeier released this 03 Feb 20:26
· 2953 commits to develop since this release

Improvements in this Release:

Common

  • Update all dependencies
  • Improve documentation in Antora and JavaDocs
  • Improve Gradle build:
    • gradlew antora to build the Antora docs inside /build/www directory. 40df39d
    • gradlew buildEdge to build an OpenEMS Edge fat-jar at /build/openems-edge.jar
    • gradlew buildBackend to build an OpenEMS Backend fat-jar at /build/openems-backend.jar
      building using gradle automatically increases the OpenEMS additional version information
  • Use JSON-RPC for communication between Edge, Backend and UI. This was huge. Read 7207fc4 for more information. Some highlights:
    • Clear communication protocol between OpenEMS Edge, Backend and UI
    • Fully asynchronous handling of JSON-RPC requests allow thousands of simultaneous connections
  • Apply Checkstyle on some bundles: https://checkstyle.org/eclipse-cs/#!/
  • Fix bugs with old references due to dynamic OSGi. Avoid keeping static references to Channels and Components.
  • A lot of overall bug fixing and improvement of code quality
  • Add OpenemsNamedException to get defined IDs for OpenEMS errors

Edge

  • Add Controller for High-Load timeslot (German: "Hochlastzeitfenster")
  • Add Nature for PV-Inverter
  • Implement Solar-Log 14b32db (read current PV production + set PV power limitation). Thanks to @abraovic
  • Add PV-Inverter Fix-Power-Limit Controller. Allows setting of a max PV production power.
  • LimitTotalDischargeController: make Force-Charge Power configurable
  • Improve + finalize API for Modbus-TCP Slave Controller
  • Use OptionsEnum for all Channels. No simple enums are allowed anymore. e866cf0
  • Implement FENECON DESS Series (PRO Hybrid, PRO Compact,...) 628ac14
  • Add ComponentManager. eb286cd It provides access to
    • an OpenemsComponent via its Component-ID; this reduces the need to keep static references to Components.
    • a Channel via its ChannelAddress; this reduces the need to keep static references to Channels.
  • Add Modbus Bridge simulator
  • Improve StateCollectorChannel
    • _sum/State collects all informations/warnings/faults from all OpenEMS Components centrally. This is a first step to a user alerting system
    • show _sum/State in DebugLog
  • Implement OsgiValidateWorker: it verifies that all configured Components are actually running
  • Improve REST-Api Controller: constantly write values till timeout 90785ec
  • Fix FC6WriteRegisterTask e463682. Thanks @Philip1Karmann for finding that bug.
  • Refactor AbstractOpenemsComponent.activate()-method. No need for properties, as they are available via ComponentContext
    • Get rid of mandatory 'service_pid' in every Component Config.
    • Make Factory-PID available
  • Add EVCS simulator
  • Add EVCS Controller
  • Add OneFullCycleController: executes one full charge/discharge Cycle on an energy storage system
  • Add generic error handling for Controllers b6e13d6
    • Introduce Controller-Channel "RunFailed" as StateChannel
    • Allow Controller.run() to throw an Exception -> sets RunFailed Channel
    • Update all Controllers accordingly

Backend

  • Improve all service APIs
  • Implement Backend-to-Backend Websocket server
  • Create Timedata.Dummy service
  • Backend.Metadata: add authentication via username + password

UI

  • Refactor Chart Sections
  • Refactor UI language selection
  • Fix formatting of numbers using 'formatNumber'
  • Avoid having 'Edge' and 'Config' as @input parameter; use Service instead
  • Refactor handling of UI Widgets
  • Add EVCS Widgets to Index & Historic view
  • Add Download Protocol as Excel for Modbus-TCP Slave Controller

And a lot more little things...