cFos Charging Manager - formulas

The cFos Charging Manager allows the dynamic evaluation of formulas. This functionality is available for a counter of the "Expression" type and for loading rules of the "Formula" type.

So you can set up meters that calculate values from other meters or wall boxes and keep them ready and display them. The charging rules can also dynamically calculate the charging current using formulas and also access meters and wall boxes (including meters of the "Expression" type).

The following operations are possible with the formulas:

+ - * /Addition, subtraction, multiplication, division
^Power calculation, e.g. 10 ^ 2 = 100
min(x,y)Minimum of x and y, more than 2 arguments possible
max(x,y)Maximum of x and y, more than 2 arguments possible
abs(x)Absolute amount of x, e.g. abs (-2) = 2
sqrt(x)Square root of x

The following logical expressions are also possible:

== (equal to) != (not equal to), < (less than), <= (less than or equal to), > (greater than), >= (greater than or equal to) ! (not), || (logical or), && (logical and) ? (Conditional operator, x ? y : z, returns y if x is true, otherwise z)

M1.current >= 6500 ? M1.current : 0 off the current depending on the conditions: M1.current >= 6500 ? M1.current : 0 supplies the current from M1 if it is greater than 6.5A and 0 otherwise, which pauses charging.

The following names are possible:

MxCounter with device ID x, e.g. M1
ExEVSE with device ID x, e.g. E1

It is also possible to access virtual meters such as solar surplus, purchased electricity or "Power avail. For EVSEs" (power available for wall boxes) by setting up the meter and then using the corresponding device ID in the formula.

Individual values of the devices can then be accessed using a point. These are called as follows:

current_l1Phase 1 current in mA
current_l2Phase 2 current in mA
current_l3Phase 3 current in mA
currentCurrent of the current phase in mA (with charging rules, the Charging Manager queries all phases one after the other; with meters of the "Expression" type, the respective phase to which the formula refers applies. If you have specified a formula for "Current L1", you can omit the fields for stream L2 and L3. Then the formula for stream L1 is used)
power_vaCurrent power in watts/VA (depending on the meter type, apparent power or real power can be supplied here)
import_whRelated energy in Wh
export_whEnergy fed in in Wh
GermanThe time since the last last update (in seconds)

M1.current_l1Current of meter M1, phase 1
E2.import_whUsed Wh of the EVSE E2
E3.power_vaCurrent charging power of E3

If you use the formulas for a counter of the "Expression" type, you can omit the device ID. Then the field names refer to this meter, eg 'power_va' is then the power of this meter in watts/VA. With 'dt' you can implement a few additional functions, for example in a counter of the "Expression" type:

  • As a formula for 'import_wh': import_wh + M1.power_va * dt / 3600 updates the drawn energy based on the power during the last update time
  • As a formula for 'power_va': (power_va * (20 - dt) + M1.power_va * dt) / 20 smooths the power over the last 20 seconds.

Application example

You would like to additionally limit the charging current with regard to a consumption meter in an apartment. To do this, you can set up 16000 - M1.current
M1 is the meter that measures the consumption of the home. The charging manager first tries to provide the EVSE with the maximum power for the house connection power, but then limits this to 16A minus the consumption of the apartment.