OpenEMS - Open Source Energy Management System
Switch branches/tags
Clone or download
wgerbl Merge branch 'develop' into feature/battery_discharge_controller
# Conflicts:
#	io.openems.edge.application/EdgeApp.bndrun
Latest commit cb336e5 Oct 17, 2018
Permalink
Failed to load latest commit information.
.github Merge openems-ui Jun 30, 2017
.gradle-wrapper Add OSGi workspace + simple BackendApp Jan 25, 2018
cnf [rest] fix maven source with bndtools Oct 4, 2018
doc [Docs] updated introduction site Oct 10, 2018
edge Remove obsolete files Oct 10, 2018
io.openems.backend.application [backend] Update BackendApp Sep 27, 2018
io.openems.backend.common Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.edgewebsocket.api Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.edgewebsocket.impl Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.metadata.api Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.metadata.dummy [backend.metadata.dummy] Require dummy configuration Sep 27, 2018
io.openems.backend.metadata.file Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.metadata.odoo Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.backend.timedata.api Merge common methods for Backend/Edge Timedata-Service and InfluxDB Jul 18, 2018
io.openems.backend.timedata.influx [backend.influx] fix conversion of JsonElement to Number Sep 28, 2018
io.openems.backend.uiwebsocket.api Relicense OpenEMS Edge + Backend to EPL-2.0 May 12, 2018
io.openems.backend.uiwebsocket.impl Merge common methods for Backend/Edge Timedata-Service and InfluxDB Jul 18, 2018
io.openems.common Improvements on linear-power-solver Sep 23, 2018
io.openems.edge.application Merge branch 'develop' into feature/battery_discharge_controller Oct 17, 2018
io.openems.edge.battery.api adds voltage and minimal cell volage to battery api Oct 16, 2018
io.openems.edge.battery.soltaro implements api changes (voltage, minimal cell voltage) for soltaro ba… Oct 16, 2018
io.openems.edge.bridge.modbus [modbus] Fix Bit Wrapper Oct 10, 2018
io.openems.edge.common [StateCollectorChannel] Allow listing states starting from a defined … Oct 10, 2018
io.openems.edge.controller.api.backend Fix Controller.Api.Backend bnd file Jul 10, 2018
io.openems.edge.controller.api.core found some problems on modbus bridge and created new project Sep 7, 2018
io.openems.edge.controller.api.rest [rest] fix maven source with bndtools Oct 4, 2018
io.openems.edge.controller.api.websocket Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.edge.controller.api Add empty default Channel-IDs for Controller Aug 8, 2018
io.openems.edge.controller.asymmetric.balancingcosphi [BalancingCosPhi] Implement Asymmetric Balancing Cos-Phi Controller Oct 10, 2018
io.openems.edge.controller.asymmetric.fixactivepower [asymmetricFixActivePower] Implement Asymmetric Fix Active Power cont… Oct 9, 2018
io.openems.edge.controller.asymmetric.fixreactivepower [FixReactivePower] Implement Asymmetric Fix-Reactive-Power Controller Oct 10, 2018
io.openems.edge.controller.asymmetric.phaserectification [phaserectification] prepare release Oct 9, 2018
io.openems.edge.controller.channelthreshold Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.edge.controller.debug.detailedlog Add .gitignore files to keep empty test folders in git Jul 9, 2018
io.openems.edge.controller.debug.log Improve DebugLog: list only enabled components and sort by component ID Jul 5, 2018
io.openems.edge.controller.dischargelimitconsideringcellvoltage adds a test for controller Oct 16, 2018
io.openems.edge.controller.ess.limittotaldischarge adds a skeleton for a controller that forces charging if some voltage… Oct 11, 2018
io.openems.edge.controller.io.fixdigitaloutput [FixDigitalOutput] fix typos Oct 8, 2018
io.openems.edge.controller.symmetric.balancing Migrate Balancing Controller to new power solver Sep 24, 2018
io.openems.edge.controller.symmetric.fixactivepower Migrate FixActivePowerController to new power solver Sep 24, 2018
io.openems.edge.controller.symmetric.fixreactivepower [FixReactivePower] Fix unit Oct 10, 2018
io.openems.edge.controller.symmetric.limitactivepower Add LimitActivePower Controller Sep 25, 2018
io.openems.edge.controller.symmetric.linearpowerband Migrate LinearPowerBand Controller to new power solver Sep 25, 2018
io.openems.edge.controller.symmetric.peakshaving Merge branch 'develop' into feature/mr_gridcon Sep 25, 2018
io.openems.edge.controller.symmetric.randompower Migrate SymmetricRandomPower Controller to new power solver Sep 25, 2018
io.openems.edge.core [sum] Fix calculation of AC-Consumption Sep 27, 2018
io.openems.edge.ess.api Add SinglePhaseEss Sep 30, 2018
io.openems.edge.ess.cluster [EssCluster] do not add disabled Ess Sep 26, 2018
io.openems.edge.ess.core [Power] Implement ApparentPower Constraints for P/Q Oct 10, 2018
io.openems.edge.ess.fenecon.commercial40 [Commercial40] Improve handling of allowed charge/discharge Sep 30, 2018
io.openems.edge.ess.kaco.blueplanet.gridsave50 Migrate KACO Blueplanet Gridave 50 to new power solver & fix GridMode… Sep 24, 2018
io.openems.edge.ess.kaco.blueplanet50 adds necessary values to battery api and implements them for Soltaro,… Jul 2, 2018
io.openems.edge.ess.mr.gridcon fixed starting system Sep 26, 2018
io.openems.edge.ess.refu [Refu] Add zero-Constraints if not available. Add new ErrorHandler St… Oct 10, 2018
io.openems.edge.ess.streetscooter [strsctr] In Read-Only mode set Power constraint to zero Sep 27, 2018
io.openems.edge.evcs.api implementing ess clustering (unfinished!) Jun 25, 2018
io.openems.edge.evcs.keba.kecontact Add KEBA KeContact UDP protocol definition Jul 16, 2018
io.openems.edge.fenecon.mini Add SinglePhaseEss Sep 30, 2018
io.openems.edge.fenecon.pro [pro] fix classpath Sep 16, 2018
io.openems.edge.io.api last changes Sep 11, 2018
io.openems.edge.io.kmtronic [modbus] BREAKING CHANGE in defineModbusProtocol method Sep 13, 2018
io.openems.edge.io.wago [WAGO] add modbus tasks only if they are not empty Sep 26, 2018
io.openems.edge.kostal.piko Use Choco-Solver for Power distribution (#88) Sep 9, 2018
io.openems.edge.meter.api Merge branch 'develop' into feature/mr_gridcon Sep 25, 2018
io.openems.edge.meter.carlo.gavazzi.em300 Merge branch 'develop' into feature/feneconPro Sep 14, 2018
io.openems.edge.meter.janitza.umg96rme Merge branch 'develop' into feature/streetscooter Sep 13, 2018
io.openems.edge.meter.microcare.sdm630 Merge branch 'develop' into feature/mr_gridcon Sep 17, 2018
io.openems.edge.meter.socomec [socomec] Implement SOCOMEC Diris B-30 meter Oct 9, 2018
io.openems.edge.scheduler.allalphabetically [AllAlphabetically] Fix possible NullPointerException Aug 31, 2018
io.openems.edge.scheduler.api Add missing files May 13, 2018
io.openems.edge.scheduler.fixedorder [FixedOrderScheduler] make update method synchronized Aug 20, 2018
io.openems.edge.simulator implements api changes (voltage, minimal cell voltage) for simulator Oct 16, 2018
io.openems.edge.timedata.api Merge common methods for Backend/Edge Timedata-Service and InfluxDB Jul 18, 2018
io.openems.edge.timedata.influxdb Merge common methods for Backend/Edge Timedata-Service and InfluxDB Jul 18, 2018
io.openems.shared.influxdb [influx] Add TODO to create database. Sep 26, 2018
io.openems.wrapper Implement first LinearPower solver; replaces choco solver Sep 23, 2018
tools [doc] add example Dockerfiles Aug 31, 2018
ui [ui] Define RequiredSubscribes from event Sep 28, 2018
.gitattributes Normalize all the line endings Aug 16, 2018
.gitignore Merge remote-tracking branch 'origin/feature/commercial50' into featu… Aug 13, 2018
.travis.yml Add OSGi workspace + simple BackendApp Jan 25, 2018
LICENSE-AGPL-3.0 Relicense OpenEMS Edge + Backend to EPL-2.0 May 12, 2018
LICENSE-EPL-2.0 Relicense OpenEMS Edge + Backend to EPL-2.0 May 12, 2018
README.md Foundations dates update2 Oct 10, 2018
build.gradle Add OSGi workspace + simple BackendApp Jan 25, 2018
build.md Prepare maven build Sep 21, 2017
gradle.properties Add OSGi workspace + simple BackendApp Jan 25, 2018
gradlew Add OSGi workspace + simple BackendApp Jan 25, 2018
gradlew.bat Add OSGi workspace + simple BackendApp Jan 25, 2018
settings.gradle Add OSGi workspace + simple BackendApp Jan 25, 2018

README.md

the Feneco - OpenEMS Logo
Open Source Energy Management System

OpenEMS is a modular platform for energy management applications. It was developed around the requirements of controlling, monitoring and integrating energy storage systems together with renewable energy sources and complementary devices and services.

Openems Foundation

Upcoming dates:

  • Online-Meeting I: Thursday, 2018-10-11, 14:00 - 16:00 (Registration: franz.feilmeier@fenecon.de)
  • Online-Meeting II: Friday, 2018-10-12, 14:00 - 16:00 (Registration: franz.feilmeier@fenecon.de)
  • Introductory-Meeting: Monday, 2018-11-05, 11:00 - 16:00, in Deggendorf
  • Openems Foundation: Thursday, 2018-11-15, 11:00 - 14:00, in Deggendorf

OpenEMS IoT stack

The OpenEMS 'Internet of Things' stack contains three main components:

  • OpenEMS Edge runs on site and actually controls the devices
  • OpenEMS UI is the generic user interface
  • OpenEMS Backend runs on a (cloud) server, connects the decentralized Edge systems and provides aggregation, monitoring and control via internet

Features

The OpenEMS software architecture was designed to leverage some features that are required by a modern and flexible Energy Management System:

  • Fast, PLC-like control of battery inverters and other devices
  • Easily extendable due to the use of modern programming languages and modular architecture
  • Wide range of supported devices - (battery) inverters, meters, etc. - and protocols
  • Modern web-based real-time user interface

OpenEMS UI Screenshots

System architecture

OpenEMS is generally used in combination with external hardware and software components (the exception is a simulated development environment - see Getting Started). As a brief overview, this is how OpenEMS is used in production setups:

Documentation

Indepth documentation is currently in progress. Please find the latest documents here:

Open Source philosophy

OpenEMS development was started by FENECON GmbH, a German company specialized in manufacturing and project development of energy storage systems. It is the software stack behind FEMS - FENECON Energy Management System and widely used in private, commercial and industrial applications.

We are inviting third parties - like universities, hardware manufacturers, software companies, commercial and private owners,... - to use OpenEMS for their own projects and are glad to support them with their first steps. In any case if you are interested in OpenEMS our development team would be glad to hear from you at fems@fenecon.de.

OpenEMS is funded by several federal and EU funding projects. If you are a developer and you would like to get hired by one of the partner companies or universities for working on OpenEMS, please send your motivation letter to fems@fenecon.de.

License

  • OpenEMS Edge
  • OpenEMS Backend

Copyright (C) 2016-2018 FENECON GmbH.

This product includes software developed at FENECON GmbH: you can redistribute it and/or modify it under the terms of the Eclipse Public License version 2.0.

  • OpenEMS UI

Copyright (C) 2016-2018 FENECON GmbH.

This product includes software developed at FENECON GmbH: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License version 3.