Documentation

Control of the battery storage
(for firmware versions < 1.25.2)

The documentation for controlling the battery storage for firmware versions from 1.25.2 can be found here.

Most battery storage systems installed in connection with solar power systems have a built-in charge control according to which they attempt to charge up before power is fed in and attempt to discharge before power is drawn from the grid. Industrial storage systems can be controlled according to other criteria, e.g. to limit peak loads or to limit energy purchases in high-load windows according to the grid operator's specifications. Small battery storage units would go through deep charging cycles due to the charging of the electric car and thus have high wear and tear. Therefore, in many cases it makes sense to control the storage unit through the cFos Charging Manager. For this, you need a model that can be controlled or at least a switching option via a relay.

Storage units can be controlled as part of SunSpec Battery Model 124 (e.g. Fronius) or have their own Modbus registers that allow control. Hybrid devices serve as inverters for solar panels and storage. Inverters, meters and battery storage are created as meter tiles in the cFos Charging Manager. In all meters there is therefore the option to activate battery control. For SunSpec devices with model 124, the cFos Charging Manager attempts to control the associated storage. You may have to enable this in the unit first. For user-defined meters (Victron, etc.), the cFos Charging Manager tries to find a user-defined variable called "soc" (in percent). This is then displayed in the meter tile, if applicable.

Under battery storage control, you can first specify the maximum charging and discharging power. -1 means that the Charging Manager should not control the charging or discharging power. You can then define several charging rules that are processed one after the other every few seconds and limit the charging or discharging current. The charging or discharging current to be set is the minimum of all charging rules. For each charging rule, you can determine the days of the week on which it is to apply and whether it is a charging or discharging rule. The following types are possible:
Minimise grid draw/grid feed-in. Here, as described above, the grid draw and the feed-in are minimised, as many storage facilities do by default. Since the measured storage power or the mains supply/speed-in deviate slightly from the actual power, it must be readjusted again and again. The adjustable control factor, which is typically close to 1.0, is used for this purpose.
Time Limit charging current depending on a time range.
Car charging. Limit charging current when at least one car is charging.
SoC. These charging rules allow to limit the charging and discharging power depending on the current level of the storage.
Price / Price Level. As with charging rules for the car, here you can charge or discharge the storage depending on the electricity price. To do this, you must be a customer of an energy provider with variable tariffs (e.g. Tibber or Awattar), or have selected "Charging Manager" as your energy provider.
Formula. Here you can freely determine the limit of the charging power using a formula.

After all charging rules have been processed, there is a current limit (which can also be 0) for the charging or discharging current. The cFos Charging Manager stores these values in the user-defined variables called "charge_power_w", "charge_power_prc" (specified in per cent), "discharg_power_w" and "discharge_power_prc". There is also a user-defined variable called "bat_mode". Here it is recorded whether there is a charge limit or discharge limit (0=no limits, 1=charge limit, 2=discharge limit, 3=charge and discharge limit). The limits are converted for SunSpec devices and written to the registers provided for this purpose. For user-defined counters, you can create user-defined outputs that write the values of the above variables to the device. You can find examples of this in the supplied meter definitions for Victron or Kostal Plenticore. If the charge or discharge limit is not controlled, the respective variables do not exist so that they are not written to the memory. With the "Mode" setting of the battery storage control, you determine what should happen if there are positive values for both charging and discharging current. "Neutral" means that the cFos Charging Manager transfers both values to the storage system and it decides for itself what to do. "Prioritise charging" means that the discharging current is set to 0 if the charging current is positive, "Prioritise discharging" means that the charging current is set to 0 if the discharging current is positive. This is useful if the storage tank only has one value for charging and discharging current.

If there is no charging rule for charging or discharging, the Charging Manager returns -1 as the power (you can also force this yourself using the charging rule. The charging or discharging limit is then deleted and the Charging Manager leaves it to the storage system to apply its standard control.

Switching output: Unfortunately, some storage units cannot be controlled directly with the above rules. However, in order to at least be able to deactivate the storage tank with the above rules (e.g. when a car is charging), you can use a switching contact if the storage tank has a control input. If practicable, the storage tank could also be electrically disconnected from the mains using a contactor (to avoid destroying the storage tank, you must ask the manufacturer or electrician beforehand whether the device is suitable for this). In the "Switching output" field, you can specify the name of a variable that is set to 1 if the charging or discharging power is positive after analysing the charging rules and to 0 if it is not. The cFos Charging Manager provides a counter definition for a Shelly switch box or switch socket. When you set this up, the meter is given a device ID, e.g. M5. You can then specify the Shelly switch box under "Switching output" in the battery storage control unit using: M5.output1.