ESS that can talk with OpenEMS using Modbus TCP

Hi Klinki,

I understand that it is neither very clear nor well documented how this has to be implemented. If you implement a ManagedSymmetricEss - i.e. a controllable energy storage system - you do not directly implement the SET_ACTIVE_POWER_EQUALS (and similar) Channels. Instead, you have to implement the applyPower(activePower, reactivePower) method, which is called once per Cycle (i.e. once per second). There you forward the requested activePower to the hardware device.

The FENECON Commercial 40 (*) implementation is really a very good and simple example how this works:

Add a SET_ACTIVE_POWER Write-Channel. This is coming from a “Nature”, but is local to your device:

Map the SET_ACTIVE_POWER Channel to a Modbus-Register:

In the applyPower() method forward the set-point to the Write-Channel.


NOTE: The SetActivePowerEquals Channels etc. are not directly forwarded to the applyPower() method. There is much more ‘intelligence’ inbetween, e.g. for cases where you have multiple Energy Storage Systems in a Cluster, you want to apply a PID filter, etc.


(*) The FENECON Commercial 40 was one of the first Commercial scale energy storage systems by FENECON. It is not sold anymore, but the implementation serves as a nice and simple example. The logic is smarter and more complex now with the current Commercial 30/50 and Industrial S/M/L series

Regards,
Stefan