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, modulus |
& | | bit par bit AND et OR |
^ | 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 |
clamp(x,min,max) | Valeur x = min (si x < min), x = max (si x > max), sinon conserver x |
round(x) | Arrondir x à un nombre entier. Exemple : Arrondir à 1 chiffre après la virgule : round(10*x)/10. |
sqrt(x) | Racine carrée de x |
exists(x) | true si la variable x existe, false sinon |
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 :
Mx | Compteur avec ID d'unité x, par exemple M1 |
Ex | EVSE avec ID de dispositif x, par exemple E1 |
Il est également possible d'accéder à des compteurs virtuels, comme le surplus solaire, l'abonnement au réseau ou "Power avail. for EVSEs" (puissance disponible pour les wallbox), en configurant le compteur et en utilisant ensuite l'ID de l'appareil 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_l1 | Courant de la phase 1 en mA |
current_l2 | Courant de la phase 2 en mA |
current_l3 | Courant de la phase 3 en mA |
current | Courant 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_w | Puissance active actuelle en watts |
offered | Boîte murale (Wallbox) : Courant actuel proposé en mA |
import_wh | Energie tirée en Wh |
export_wh | Énergie injectée en Wh |
dt | Le temps qui s'est écoulé depuis la dernière mise à jour passée (en secondes) |
inputN | Numéro d'entrée N de l'unité, 1 = actif, 0 = inactif |
soc | SOC, niveau de charge en pourcentage (compteur/stockage) |
id | Id de l'appareil, ID Modbus |
txn_duration | Durée de la transaction en cours en secondes (EVSE) |
txn_energy | Énergie chargée de la transaction actuelle en Wh (EVSE) |
min_current | Courant de charge minimal en mA (EVSE) |
max_current | Courant de charge maximal en mA (EVSE) |
state | Statut : 1 attente, 2 branché, 3 en charge, 4 en charge avec ventilation, 5 erreur, 6 hors ligne (EVSE) |
cphases | Nombre de phases en charge (0-3) |
pphases | Nombre de phases de chargement prédites (0-3) |
budget | KWh sur le budget actuel |
budget_amount | Sur le budget actuel kWh maximum |
budget_used | KWh utilisés sur le budget actuel |
com_err | 1, s'il y a une erreur COM, sinon 0 |
com_err2 | 1, si une erreur COM est présente pendant plus de 12 sec, sinon 0 |
M1.current_l1 | Courant du compteur M1, phase 1 |
E2.import_wh | Wh consommé de l'EVSE E2 |
E3.power_w | Puissance de charge actuelle de E3 en watts |
Si l'on utilise les formules pour un compteur de type "Expression", on peut aussi omettre l'ID de l'appareil. Les noms de champs se réfèrent alors à ce compteur, par exemple 'power_w' est alors la puissance de ce compteur en watts. Avec 'dt', on peut réaliser quelques fonctions étendues, par ex. dans un compteur de type "Expression" :
import_wh + M1.power_w * dt / 3600
actualise l'énergie prélevée en fonction de la puissance pendant le temps de mise à jour écoulé(power_w * (20 - dt) + M1.power_w * dt) / 20
lisse la puissance sur les 20 dernières secondes.date
date.year | Année en cours |
date.month | Mois de 0 à 11 |
date.day | Jour de 1..31 |
date.weekday | Jour de semaine Lu=0, Mar=1, ... Dim=6 |
date.yearday | Jour de l'année de 0..366 |
date.hour | Heure de 0 à 23 |
date.minute | Minute de 0 à 60 |
date.second | Secondes de 0 à 60 |
date.daysecond | Seconde de ce jour de 0..86399 |
date.dayminute | Minute de ce jour de 0..1439 |
date.dst | 0 = heure d'hiver, 1 = heure d'été |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = actif, 0 = inactif |
PB.input2 | S0 Input 2, 1 = actif, 0 = inactif |
CM Variables du gestionnaire de charge
Ces variables peuvent être définies par l'admin sous "Configuration". Par exemple, si l'admin définit la variable 'var_x' à 1.5, CM.var_x renvoie la valeur 1.5.
Variables prédéfinies :
_num_charging : Nombre de wallboxes actuellement en charge
num_charging1 : nombre de wallboxes actuellement en charge, 1 si aucune ne charge
_max_total_current : courant maximal du raccordement domestique en mA par phase
_max_total_evse_current : courant maximal pour les Wallbox en mA par phase
_price : prix actuel de l'électricité
_price_level : niveau actuel du prix de l'électricité, -2=très cher, -3=chaud, -4=normal, -5=bon marché, -6=très bon marché
surplus solaire : excédent actuel en watts
org_surplus : excédent solaire tel que le gestionnaire de charge l'aurait calculé indépendamment de ses propres formules
Utilisation des objets globaux:
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
Remarque:
Sous Compteurs personnalisés, vous trouverez également des instructions sur la manière d'utiliser des formules avec des variables et des sorties globales Charging Manager.
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.