Hi Sven,
see this diagram:
(original source: Edge-Module - Programmierstil - #2 by stefan.feilmeier)
For Energy Storage Systems OpenEMS distinguishes two architectures:
- Direct ESS (“Ess.SMA.SunnyIsland” in the example). In this architecture you communicate only with the Battery-Inverter and it internally handles all the communication with the Battery.
- Combination of Battery-Inverter and Battery (“KACO” + “BYD BatteryBox” in the example): Here OpenEMS communicates separately with Battery-Inverter and Battery.
In your case it sounds a lot like architecture (1). Unfortunately in OpenEMS the Sinexcel is only implemented for architecture (2) (i.e. the Sinexcel code implements BatteryInverter
).
To continue with OpenEMS you have two variants:
- Either convert the BatteryInverter implementation to an Ess implementation. See the GoodWe implementation as an example. It provides both variants with shared code in
AbstractGoodwe.java
→ https://github.com/OpenEMS/openems/tree/develop/io.openems.edge.goodwe/src/io/openems/edge/goodwe - Or connect your OpenEMS directly to the Dyness battery and implement it separately.
Benefit of the second variant is, that you get full control over the battery behaviour and can most likely read more detailed data from the Battery directly.
Regards,
Stefan