Controller
- 1. BYD Battery-Box Commercial
- 2. Battery FENECON Home
- 3. Soltaro Battery Rack
- 4. KACO blueplanet gridsave
- 5. REFUstore 88K
- 6. SunSpec PV inverter
- 7. Core services for OpenEMS Edge
- 8. FENECON BYD Container
- 9. ESS Cluster
- 10. FENECON Commercial 40 AC/DC/Hybrid
- 11. Generic Energy Storage System
- 12. KACO blueplanet gridsave 50.0 TL3
- 13. Maschinenfabrik Rheinhausen (MR) Gridcon
- 14. REFU Battery Inverter
- 15. Sinexcel Battery Inverter
- 16. SMA SunnyIsland 6.0H
- 17. EVCS Cluster
- 18. EVCS Core
- 19. Hardy Barth Charging Station (Salia)
- 20. KEBA KeContact c-series Charging Station
- 21. ABL Charging Station
- 22. Electric Vehicle Charging Station OCPP Common
- 23. IES KeyWatt Charging Station
- 24. OCPP Server
- 25. FENECON DESS
- 26. FENECON Mini 3-3 | 3-6
- 27. FENECON Pro 9-12
- 28. GoodWe ET and BT-Series Hybrid Inverters
- 29. KMtronic Modbus Relay Board
- 30. RevolutionPi Digital IO Module
- 31. Shelly WiFi Relay Switch
- 32. WAGO Fieldbus Coupler 750-352
- 33. KOSTAL PIKO
- 34. ABB B23 Meter
- 35. Artemes AM-2
- 36. B-Control | TQ-Systems EM300 Meter
- 37. Carlo Gavazzi EM300 Meter
- 38. Discovergy Smart-Meter
- 39. Janitza Meters UMG 96RM-E | UMG 604
- 40. Microcare SDM 630 Meter
- 41. PQ Plus UMD 97 Meter
- 42. Schneider Acti9 Smartlink Meter
- 43. SMA Sunny Home Manager 2.0 Integrated Meter
- 44. SOCOMEC Meter
- 45. SunSpec Meter
- 46. Virtual Symmetric Subtract
- 47. Virtual Symmetric Add
- 48. Weidmueller 525 Meter
- 49. OneWire Thermometer
- 50. Persistence-Model Predictor
- 51. PV-Inverter Cluster
- 52. KACO blueplanet PV inverter
- 53. SMA Sunny Tripower PV inverter
- 54. Solar-Log
- 55. SunSpec PV inverter
- 56. Simulated OpenEMS Components
- 57. SolarEdge PV Inverter + Grid-Meter
- 58. Tesla Powerwall 2
- 59. InfluxDB
- 60. RRD4J
- 61. KACO blueplanet hybrid 10.0 TL3
For the following devices driver implementations are available in OpenEMS Edge.
4. KACO blueplanet gridsave
-
Applies to
-
KACO blueplanet gridsave 50.0 TL3
-
KACO blueplanet gridsave 92.0 TL3
-
-
Implemented Natures
-
StartStoppable
-
SymmetricBatteryInverter
-
ManagedSymmetricBatteryInverter
-
6. SunSpec PV inverter
Generic implementation of SunSpec PV inverters. It is tested with - KACO blueplanet TL.3 series - SolarEdge SE12.5K - SE27.6K
- Implemented Natures
-
-
ManagedSymmetricPvInverter
-
SymmetricMeter
-
7. Core services for OpenEMS Edge
7.1. ComponentManager
A service that provides easy access to OpenEMS-Components and Channels. It also provides some sub-services:
- DefaultConfigurationWorker
-
Applies a default configuration, i.e. activates certain OpenEMS Components that are to be enabled by default on deployment, like Modbus-TCP-Slave Api and JSON/REST Api.
- OsgiValidateWorker
-
Checks if configured Components are actually enabled.
- OutOfMemoryHeapDumpWorker
-
Checks for heap-dump files which get created if OpenEMS Edge crashed because of an OutOfMemory-Error in a previous run.
7.3. Host
A service that provides host and operating system specific commands like configuration of TCP/IP network.
9. ESS Cluster
Combines multiple energy storage systems (ESS) to one common ESS. This way every Controller can easily work with multiple ESS in parallel. Distribution of power requests to each ESS is controlled via the Power-Class .
10. FENECON Commercial 40 AC/DC/Hybrid
- Implemented Natures
-
-
SymmetricEss
-
ManagedSymmetricEss
-
EssDcCharger
-
11. Generic Energy Storage System
Represents an Energy Storage System consisting of a Battery-Inverter and a Battery.
13. Maschinenfabrik Rheinhausen (MR) Gridcon
Implemented Natures - SymmetricEss - ManagedSymmetricEss
Good Settings for PID: 0.3 0.15 0
14. REFU Battery Inverter
Project specific implementation of a REFU inverter. This will not directly apply to all REFU battery inverters.
- Implemented Natures
-
-
SymmetricEss
-
ManagedSymmetricEss
-
AsymmetricEss
-
ManagedAsymmetricEss
-
16. SMA SunnyIsland 6.0H
- Implemented Natures
-
-
SymmetricEss
-
ManagedSymmetricEss
-
AsymmetricEss
-
ManagedAsymmetricEss
-
SinglePhaseEss
-
ManagedSinglePhaseEss
-
17. EVCS Cluster
Distributes the charging power (Depending on the implementation) to the priorized charging stations. The implementations calculate the maximum power that can be used by all charging stations.
Possible Cluster implementations:
Cluster for peak shaving
The peak shaving cluster is calculating the power depending on the grid power that can be used per phase, the maximum allowed storage power and the current values of grid, storage and EVCS consumption.
Cluster for self consumption
The self consumption cluster is calculating the power depending on the excess power.
19. Hardy Barth Charging Station (Salia)
This component implements the Salia charging station by the manufacturer Hardy Barth: https://www.echarge.de/de/home
Implemented Natures: * Evcs (Electric Vehicle Charging Station) * ManagedEvcs
20. KEBA KeContact c-series Charging Station
This component implements the KEBA c-series charging station, which is controlled and read out using the proprietary UDP protocol. It collects all relevant information into the given Nature Channels and its own Channels and sends charging commands that have been set by another controllers.
Implemented Natures: * Evcs (Electric Vehicle Charging Station) * ManagedEvcs
21. ABL Charging Station
This component implements the ABL EMH 3 series charging station, which is controlled and read out using the OCPP protocol. It provides specific information for the AbstractOcppEvcsComponent.
Implemented Natures: * Evcs (Electric Vehicle Charging Station) * MeasuringEvcs
Extended abstract class: * AbstractOcppEvcsComponent
22. Electric Vehicle Charging Station OCPP Common
The Open Charge Point Protocol (OCPP) is an application protocol for communication between Electric vehicle charging stations (EVCS) and a central management system.
The whole bundle contains a library of the OCPP functions. It also provides a default abstract ocpp EVCS component that can be used by every specific charging station and a OcppServer interface that provides a minimum functionality, to be able to send data to a charging station.
Implemented Natures: * Evcs (Electric Vehicle Charging Station * MeasuringEvcs (Can get measured information)
23. IES KeyWatt Charging Station
This component implements the IES KeyWatt CCS charging station with a single plug, which is controlled and read out using the OCPP protocol. It provides specific information for the AbstractOcppEvcsComponent.
Implemented Natures: * Evcs (Electric Vehicle Charging Station * ManagedEvcs * MeasuringEvcs (Can get measured information)
Extended abstract class: * AbstractOcppEvcsComponent
24. OCPP Server
The OCPP Server is implementing a central management system. The server maintains connections to the EVCS’s, i.e.
-
connects to the charging stations
-
distributes their information to each EVCS component
-
send commands to the charging stations
25. FENECON DESS
Applies to multiple similar products like the FENECON by BYD PRO Hybrid.
- Implemented Natures
-
-
SymmetricEss
-
AsymmetricEss
-
EssDcCharger
-
AsymmetricMeter (for Grid and AC-connected PV)
-
SymmetricMeter (for Grid and AC-connected PV)
-
26. FENECON Mini 3-3 | 3-6
- Implemented Natures
-
-
SinglePhaseEss
-
AsymmetricEss
-
SymmetricEss
-
SymmetricMeter (for Grid and PV)
-
27. FENECON Pro 9-12
- Implemented Natures
-
-
SymmetricEss
-
ManagedSymmetricEss
-
AsymmetricEss
-
ManagedAsymmetricEss
-
AsymmetricMeter (for PV)
-
SymmetricMeter (for PV)
-
28. GoodWe ET and BT-Series Hybrid Inverters
Ess:
-
SymmetricEss
Charger: (ET only)
-
EssDcCharger
Grid-Meter:
-
SymmetricMeter
-
AsymmetricMeter
29. KMtronic Modbus Relay Board
This bundle implements the Kmtronic Modbus Relay board. Relay outputs can be used to turn ON/OFF lights, motors and signal alarms. This relay has 8 output channels.
- Implemented Natures
-
-
DigitalOutput
-
30. RevolutionPi Digital IO Module
This bundle implements the Kunbus RevolutionPI DigitalIO enhancement board. It can be used to turn ON/OFF a data output or to read in digital data input. It provides 14 digital input and 14 digital output channels.
Implemented Natures: - DigitalOutput - DigitalInput
30.1. Dependencies
The RevolutionPi Digital IO OpenEms Bundle depends on the librevpi-dio-java git library project. A binary version of this library is already included in this OpenEMS Bundle. See https://github.com/clehne/librevpi-dio-java for more information.
31. Shelly WiFi Relay Switch
This bundle implements Shelly WiFi Relay Switches.
Compatible with - Shelly 2.5 - Shelly Plug S
Implemented Natures - DigitalOutput
32. WAGO Fieldbus Coupler 750-352
- Implemented Natures
-
-
DigitalOutput
-
DigitalInput
-
This component reads the current WAGO fieldbus coupler configuration and dynamically creates its Input and Output Channels accordingly.
Make sure to update the WAGO fieldbus coupler configuration before activating this component.
Open the WAGO fieldbus web interface, click "IO config" and "create ea-config.xml" to update the configuration. Default username is admin , default password is wago .
|
The following examples assume the Component-ID is io0
and the addresses are valid for the first WAGO extension.
For extensions 2, 3,… just increase the number behind M
.
Channel names follow this logic:
32.1. WAGO 750-523 "1-channel relay output"
|
Input/Output |
the relay |
|
Input |
state of the manual switch |
32.2. WAGO 750-501 "2-channel digital output"
|
Input/Output |
the first digital output |
|
Input/Output |
the first digital output |
33. KOSTAL PIKO
- Implemented Natures
-
-
SymmetricEss
-
SymmetricMeter (for Grid meter)
-
EssDcCharger (for PV)
-
37. Carlo Gavazzi EM300 Meter
Applies to - CARLO GAVAZZI EM330 - CARLO GAVAZZI EM340
Implemented Natures - SymmetricMeter - AsymmetricMeter
38. Discovergy Smart-Meter
Reads data of a Discovergy Smart-Meter via online REST-Api. See https://api.discovergy.com for details.
- Implemented Natures
-
-
SymmetricMeter
-
AsymmetricMeter
-
40. Microcare SDM 630 Meter
This implementation is functionally compatible with a number of energy meters with the name "SDM 630".
Implemented Natures
-
SymmetricMeter
-
AsymmetricMeter
41. PQ Plus UMD 97 Meter
Applies also to UMD 96, UMD 97, UMD 98, UMD 807, UMD 701, UMD 704, UMD 705, UMD 706, UMD 707, UMD 709, UMD 710, UMD 913, UMC 26
- Implemented Natures
-
-
SymmetricMeter
-
AsymmetricMeter
-
42. Schneider Acti9 Smartlink Meter
- Implemented Natures
-
-
SymmetricMeter
-
AsymmetricMeter
-
To configure the meter, first add a modbus tcp bridge connecting to the correct IP address, then configure this meter to use the configured modbus bridge. The unit ID is by default 1.
43. SMA Sunny Home Manager 2.0 Integrated Meter
This implementation uses the integrated energy meter of the SMA Sunny Home Manager 2.0 Data needs to polled through Modbus from an attached SMA inverter as the HM2.0 does not have a local API on the device itself
Implemented Natures
-
SymmetricMeter
-
AsymmetricMeter
44. SOCOMEC Meter
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:
-
Implemented threephase meters:
-
Implemented Natures:
-
SymmetricMeter
-
AsymmetricMeter
-
SinglephaseMeter
-
45. SunSpec Meter
Generic implementation of SunSpec Meters.
- Implemented Natures
-
-
AsymmetricMeter
-
SymmetricMeter
-
46. Virtual Symmetric Subtract
This is a virtual meter built from subtracting other meters or energy storage systems.
The logic calculates Minuend - Subtrahend1 - Subtrahend2 - …
.
Example use-case: create a virtual Grid-Meter from Production-Meter, Consumption-Meter and Energy Storage System (ESS) - by definition Consumption is defined as `Consumption = ESS + Grid + Production (AC) - or: `Grid = Consumption - ESS - Production (AC) - this can be achieved by configuring the Consumption-Meter as Minuend and Production-Meter and ESS as Subtrahends.
47. Virtual Symmetric Add
This is a virtual meter which is used to sum up the values from multiple symmetric meters. The use case for this feature is, Usually when there are multiple meters reading values from different systems, The average values from the systems make more sense for calculation and statistics.
Implemented Natures - SymmetricMeter
47.1. Example Configuration
-
Component-ID
: meter0 -
Alias
: virtualMeter -
Meter-Type
: PRODUCTION -
Meter IDs
: [meter1, meter2, meter3]
Meter IDs is a list of the meters which needs summing of the values. |
The above example configuration describes, The values from the three meters configured (meter1, meter2, meter3) are summed up and average values is set to the corresponding channel address.
51. PV-Inverter Cluster
Combines multiple PV-Inverters to one common PV-Inverter. This way every Controller can easily work with multiple PV-Inverters in parallel.
52. KACO blueplanet PV inverter
Implementation of the KACO blueplanet series PV inverters.
- Implemented Natures
-
-
ManagedSymmetricPvInverter
-
SymmetricMeter
-
53. SMA Sunny Tripower PV inverter
Implementation of the SMA Sunny Tripower PV inverters.
Tested on - SMA SUNNY TRIPOWER 15000TL / 20000TL / 25000TL
Implemented Natures: - SymmetricMeter - ManagedSymmetricPvInverter
55. SunSpec PV inverter
Generic implementation of SunSpec PV inverters. It is tested with - KACO blueplanet TL.3 series - SolarEdge SE12.5K - SE27.6K
- Implemented Natures
-
-
ManagedSymmetricPvInverter
-
SymmetricMeter
-
56. Simulated OpenEMS Components
This bundle provides simulated OpenEMS Components for the Natures. They are useful for testing and demoing without real hardware.
56.1. Simulator-App
The Simulator-App is a very specific component that needs to be handled with care. It provides a full simulation environment to run an OpenEMS Edge instance in simulated realtime environment. After you ran a Simulation, you will receive the simulation result as a JSON. Also the simulation result can be viewed in OpenEMS UI.
Be aware that the SimulatorApp Component takes control over the complete OpenEMS Edge Application, i.e. if you enable it, it is going to delete all existing Component configurations! |
To run a simulation:
-
Run OpenEMS Edge using the EdgeApp.bndrun
-
Open up Apache Felix Web Console and
-
activate a "Controller Api REST/JSON Read-Write"
-
activate a "Simulator App"
-
-
Send a JSON-RPC Request like the following, providing full configurations for all required OpenEMS Edge Components
{
"method":"componentJsonApi",
"params":{
"componentId":"_simulator",
"payload":{
"method":"executeSimulation",
"params":{
"components":[
{
"factoryPid":"Scheduler.AllAlphabetically",
"properties":[
{
"name":"id",
"value":"scheduler0"
}
]
},
{
"factoryPid":"Simulator.GridMeter.Reacting",
"properties":[
{
"name":"id",
"value":"meter0"
}
]
},
{
"factoryPid":"Simulator.NRCMeter.Acting",
"properties":[
{
"name":"id",
"value":"meter1"
},
{
"name":"alias",
"value":"Consumption"
},
{
"name":"datasource.id",
"value":"_simulator"
}
]
},
{
"factoryPid":"Simulator.ProductionMeter.Acting",
"properties":[
{
"name":"id",
"value":"meter2"
},
{
"name":"alias",
"value":"South Roof"
},
{
"name":"datasource.id",
"value":"_simulator"
}
]
},
{
"factoryPid":"Simulator.EssSymmetric.Reacting",
"properties":[
{
"name":"id",
"value":"ess0"
},
{
"name":"maxApparentPower",
"value":10000
},
{
"name":"capacity",
"value":10200
},
{
"name":"initialSoc",
"value":50
}
]
},
{
"factoryPid":"Controller.Symmetric.Balancing",
"properties":[
{
"name":"id",
"value":"ctrlBalancing0"
},
{
"name":"ess.id",
"value":"ess0"
},
{
"name":"meter.id",
"value":"meter0"
}
]
}
],
"clock":{
"start":"2000-01-01T00:00:00.00Z",
"end":"2000-01-08T00:00:00.00Z",
"timeleapPerCycle":900000,
"executeCycleTwice":true
},
"profiles":{
"meter1/ActivePower": [436,404,373,344,316,290,267,248,236,227,220,216,211,207,203,199,196,193,192,191,191,191,193,195,198,201,206,211,219,232,254,290,342,405,474,543,607,666,719,767,810,849,886,924,962,999,1029,1049,1055,1047,1025,990,944,890,833,779,732,692,658,630,607,588,572,555,539,527,524,535,562,602,647,692,731,764,795,825,854,878,892,887,861,820,775,733,704,683,666,646,621,591,556,518,479,440,402,364,436,404,374,345,316,290,267,249,236,227,220,216,211,207,203,199,196,193,192,191,191,191,193,195,198,201,206,211,219,232,255,291,342,405,475,544,608,667,720,768,811,850,888,926,964,1000,1030,1050,1056,1048,1027,992,945,891,834,780,733,693,659,631,608,589,572,556,540,528,525,536,563,603,648,693,732,765,796,826,855,880,893,888,862,821,776,735,705,684,667,647,622,591,556,519,480,441,402,365,338,304,274,249,231,218,209,204,200,198,197,195,194,193,191,191,192,194,196,200,204,215,238,279,340,413,489,557,607,642,663,673,676,673,665,653,638,622,607,594,586,580,578,578,580,584,593,607,626,647,664,673,670,658,639,619,600,583,568,553,539,527,517,511,510,515,527,549,579,618,662,711,761,810,855,893,922,940,943,931,902,862,818,777,744,716,691,665,635,602,566,528,489,450,412,374,338,304,275,250,231,218,210,204,201,198,197,196,194,193,192,192,192,194,197,200,205,216,239,279,340,414,490,558,608,643,664,674,677,674,666,654,639,623,608,595,587,581,579,579,581,585,594,608,627,648,665,674,671,659,640,620,601,584,569,554,540,528,518,512,511,516,528,550,580,619,663,712,762,811,856,895,924,941,945,932,904,864,820,778,745,717,692,666,636,603,567,529,490,451,413,375,338,304,275,250,231,218,210,204,201,198,197,196,194,193,192,192,192,194,197,200,205,216,239,279,340,415,491,558,609,643,664,675,678,675,666,654,639,624,608,596,587,582,579,579,581,586,594,608,628,649,666,675,672,659,641,621,602,585,569,554,540,528,518,513,512,517,529,550,581,619,664,712,763,812,857,896,925,942,946,933,905,865,820,779,745,718,693,667,637,603,567,529,491,452,413,375,339,305,275,250,232,219,210,204,201,198,197,196,194,193,192,192,192,194,197,200,205,216,239,280,341,415,491,559,609,644,665,676,679,676,667,655,640,624,609,596,588,582,580,580,582,586,595,609,628,649,667,676,673,660,641,621,602,585,570,555,541,529,519,513,512,517,529,551,581,620,665,713,764,813,858,897,926,943,947,934,906,865,821,780,746,719,694,668,637,604,568,530,491,452,413,375,339,305,275,250,232,219,210,205,201,199,198,196,195,194,192,192,193,195,197,201,205,216,239,280,341,415,492,559,610,645,666,676,679,676,668,656,641,625,609,597,588,583,580,580,582,587,595,609,629,650,667,676,673,661,642,622,603,586,570,555,541,529,519,514,513,518,530,551,582,621,665,714,764,814,859,897,927,944,948,935,906,866,822,781,747,719,694,668,638,604,568,530,492,452,414,376],
"meter2/ActivePower": [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,24,100,250,277,345,449,457,535,530,575,770,862,720,779,808,638,552,457,440,574,537,499,356,216,267,180,180,147,102,19,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,23,105,162,223,271,309,370,431,463,514,481,463,516,467,406,375,361,401,387,372,345,334,337,312,275,229,184,141,96,20,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5,20,74,134,173,209,254,275,302,331,380,419,437,471,410,441,444,410,394,400,396,384,387,391,350,291,260,208,140,74,20,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,24,130,215,278,378,443,529,534,568,797,726,618,766,703,802,809,755,783,682,633,672,590,629,515,523,403,318,251,171,31,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,26,56,336,1979,945,2897,3580,2510,3097,3499,5616,6327,2631,898,3859,3909,4931,3683,5996,1777,3615,3415,1601,1254,4954,4145,3426,1163,101,457,27,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,21,65,25,48,84,108,125,123,99,84,119,214,202,183,104,151,450,881,1878,3424,5211,4329,3986,1796,1904,1618,1173,646,758,50,13,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,13,35,104,163,246,349,329,406,387,379,457,396,488,530,540,591,835,774,740,569,549,542,524,549,471,446,337,234,192,110,30,7,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
},
"collect":[
"_sum/GridActivePower",
"_sum/EssActivePower",
"_sum/ProductionActivePower",
"_sum/ConsumptionActivePower",
"_sum/EssSoc"
]
}
}
}
}
57. SolarEdge PV Inverter + Grid-Meter
Implementation of the SolarEdge PV inverters.
- Implemented Natures
-
-
SymmetricMeter
-
AsymmetricMeter
-
58. Tesla Powerwall 2
Implementation of the Tesla Powerwall 2 energy storage system
- Implemented Natures
-
-
SymmetricEss
-