gestionnaire de charge cFos - Formules

Le cFos Charging Manager permet l'évaluation dynamique des formules. Cette fonctionnalité est disponible pour un compteur de type "Expression" et pour les règles de tarification de type "Formule".

Vous pouvez donc mettre en place des compteurs qui calculent des valeurs provenant d'autres compteurs ou EVSE, les tenir à disposition et les afficher. Les règles de charge peuvent également utiliser des formules pour calculer dynamiquement le courant de charge et accéder aux compteurs et aux EVSE (y compris les compteurs de type "Expression").

Les opérations suivantes sont possibles avec les formules :

+ - * /Addition, soustraction, multiplication, division
^Calcul de la puissance, par exemple 10^2 = 100
min(x,y)Minimum de x et y, plus de 2 arguments possibles
max(x,y)Maximum de x et y, plus de 2 arguments possibles
abs(x)Valeur absolue de x, par exemple abs(-2) = 2
sqrt(x)Racine carrée de x

En outre, les expressions logiques suivantes sont possibles :

== (égal), != (inégal), < (moins), <= (moins égal), > (plus grand), >= (plus grand-égal), ! (pas), || (logique Or), && (logique And), ? (opérateur conditionnel, par exemple x ? y : z, renvoie y si x est vrai, sinon z)

Cela permet, par exemple, de couper le courant en fonction des conditions : M1.current >= 6500 ? M1.current : 0 renvoie le courant de M1 s'il est supérieur à 6,5A et 0 sinon, ce qui met en pause la charge. Pour ces conditions, il est également possible d'interroger les entrées (voir ci-dessous)

Les noms suivants sont possibles :

MxCompteur avec ID d'unité x, par exemple M1
ExEVSE avec ID de dispositif x, par exemple E1

Il est également possible d'accéder à des compteurs virtuels, tels que le surplus solaire, le prélèvement sur le réseau ou la "puissance disponible pour les EVSE", en configurant le compteur et en utilisant ensuite l'ID du dispositif correspondant dans la formule.

Vous pouvez ensuite accéder aux valeurs individuelles des unités au moyen du point. Ceux-ci sont appelés comme suit :

current_l1Courant de la phase 1 en mA
current_l2Courant de la phase 2 en mA
current_l3Courant de la phase 3 en mA
currentCourant de la phase actuelle en mA (pour les règles de charge, le Charging Manager interroge toutes les phases l'une après l'autre ; pour les compteurs de type " Expression ", la phase respective à laquelle la formule se réfère s'applique. Si vous avez spécifié une formule pour le "courant L1", vous pouvez omettre les champs pour le courant L2 et L3. C'est alors la formule pour le courant L1 qui est utilisée)
power_vaPuissance actuelle en Watt/VA (selon le type de compteur, la puissance apparente ou la puissance active peut être fournie ici)
import_whEnergie tirée en Wh
export_whÉnergie injectée en Wh
dtLe temps qui s'est écoulé depuis la dernière mise à jour passée (en secondes)
inputNNuméro d'entrée N de l'unité, 1 = actif, 0 = inactif
socSOC, niveau de charge en pourcentage (compteur/stockage)
txn_durationDurée de la transaction en cours en secondes (EVSE)
txn_energyÉnergie chargée de la transaction actuelle en Wh (EVSE)
min_currentCourant de charge minimal en mA (EVSE)
max_currentCourant de charge maximal en mA (EVSE)
stateStatut : 1 attente, 2 branché, 3 en charge, 4 en charge avec ventilation, 5 erreur, 6 hors ligne (EVSE)

Exemple
M1.current_l1Courant du compteur M1, phase 1
E2.import_whWh consommé de l'EVSE E2
E3.power_vaPuissance de charge actuelle de l'E3

Si vous utilisez les formules pour un compteur de type "Expression", vous pouvez également omettre l'ID du dispositif. Les noms des champs se rapportent alors à ce compteur, par exemple 'power_va' correspond à la puissance de ce compteur en Watt/VA. Vous pouvez utiliser 'dt' pour réaliser quelques fonctions étendues, par exemple dans un compteur de type "Expression" :

  • Formule pour 'import_wh': import_wh + M1.power_va * dt / 3600 met à jour l'énergie produite sur la base de la puissance pendant le dernier temps de mise à jour
  • Comme formule pour 'power_va': (power_va * (20 - dt) + M1.power_va * dt) / 20 lisse la puissance sur les 20 dernières secondes.

Variables globales

date

date.yearAnnée en cours
date.monthMois de 0 à 11
date.dayJour de 1..31
date.weekdayJour de semaine Lu=0, Mar=1, ... Dim=6
date.yeardayJour de l'année de 0..366
date.hourHeure de 0 à 23
date.minuteMinute de 0 à 60
date.secondSecondes de 0 à 60
date.daysecondSeconde de ce jour de 0..86399
date.dayminuteMinute de ce jour de 0..1439
date.dst0 = heure d'hiver, 1 = heure d'été

PB (cFos Power brain only)

PB.input1S0 Input 1, 1 = actif, 0 = inactif
PB.input2S0 Input 2, 1 = actif, 0 = inactif

CM Variables du gestionnaire de charge

Ces variables peuvent être définies par l'administrateur sous "Configuration". Par exemple, si l'administrateur fixe la variable "var_x" à 1,5, CM.var_x renvoie la valeur 1,5.

Variables prédéfinies :
_num_charging : Nombre d'EVSE en charge
_num_charging1 : Nombre d'EVSEs actuellement en charge, 1 si aucun n'est en charge
_max_total_power : Puissance maximale du raccordement de la maison en W
_max_total_evse_power : Puissance maximale des EVSEs en W

Benutzung der globalen Objekte:
charge 8A starting at 8:00am: date.dayminute >= 480 ? 8000 : 0
charge 16A on Saturday and Sunday: date.weekday == 5 || date.weekday == 6 ? 16000 : 0
charge 6A if input 2 active: PB.input2 ? 6000 : 0 charge 6A if CM variable non-zero: cm.var1 ? 6000 : 0

Exemple d'application

Vous souhaitez limiter davantage le courant de charge par rapport à un compteur de consommation d'un appartement. Pour ce faire, vous pouvez établir une règle de charge avec la formule 16000 - M1.current.
M1 est le compteur qui mesure la consommation de l'appartement. La gestion de la charge du cFos Charging Manager essaie d'abord de fournir à l'EVSE le courant maximum par rapport à la puissance de connexion de la maison, mais le limite ensuite à 16A moins la consommation de l'appartement.