El Gestor de Cargas cFos permite la evaluación dinámica de fórmulas. Esta funcionalidad está disponible para un contador del tipo "Expresión" y para reglas de tarificación del tipo "Fórmula".
Por lo tanto, puede configurar contadores que calculen valores de otros contadores o EVSEs y mantenerlos preparados y mostrarlos. Las reglas de carga también pueden utilizar fórmulas para calcular dinámicamente la corriente de carga y también acceder a contadores y EVSEs (incluyendo contadores del tipo "Expresión").
Las siguientes operaciones son posibles con las fórmulas:
+ - * / % | Suma, resta, multiplicación, división, módulo |
& | | aND y OR bit a bit |
^ | Cálculo de potencia, por ejemplo, 10^2 = 100 |
min(x,y) | Mínimo de x e y, más de 2 argumentos posibles |
max(x,y) | Máximo de x e y, más de 2 argumentos posibles |
abs(x) | Valor absoluto de x, por ejemplo, abs(-2) = 2 |
clamp(x,min,max) | Valor x = mín (si x < mín), x = máx (si x > máx), en caso contrario mantener x |
round(x) | Redondear x a número entero. Ejemplo: Redondear a 1 decimal: round(10*x)/10. |
sqrt(x) | Raíz cuadrada de x |
exists(x) | true si la variable x existe, en caso contrario false |
Además, son posibles las siguientes expresiones lógicas:==
(igual), !=
(desigual), <
(menor), <=
(menor-igual), >
(mayor), >=
(mayor-igual), !
(no), ||
(Or lógico), &&
(And lógico), ?
(operador condicional, por ejemplo, x ? y : z
, devuelve y si x es verdadero, en caso contrario z
)
Esto permite, por ejemplo, desconectar la corriente en función de las condiciones: M1.current >= 6500 ? M1.current : 0
devuelve la corriente de M1 si es superior a 6,5A y 0 en caso contrario, lo que pone en pausa la carga. Para estas condiciones, también es posible consultar las entradas (véase más abajo)
Son posibles los siguientes nombres:
Mx | Contador con ID de unidad x, por ejemplo M1 |
Ex | EVSE con ID de dispositivo x, por ejemplo, E1 |
También es posible acceder a contadores virtuales, como el excedente solar, la extracción de la red o la "Power avail. for EVSEs" (potencia disponible para los wallboxes), configurando el contador y utilizando después el ID del dispositivo correspondiente en la fórmula.
A continuación, se puede acceder a los valores individuales de las unidades mediante el punto. Estos se llaman de la siguiente manera:
current_l1 | Corriente de la fase 1 en mA |
current_l2 | Corriente de la fase 2 en mA |
current_l3 | Corriente de la fase 3 en mA |
current | Corriente de la fase actual en mA (para las reglas de carga, el Gestor de Carga consulta todas las fases una tras otra; para los contadores del tipo "Expresión", se aplica la fase respectiva a la que se refiere la fórmula. Si ha especificado una fórmula para la "Corriente L1", puede omitir los campos para la Corriente L2 y L3. Entonces se utiliza la fórmula para la corriente L1) |
power_w | Potencia activa actual en vatios |
offered | Wallbox: Corriente ofrecida en mA |
import_wh | Energía extraída en Wh |
export_wh | Energía inyectada en Wh |
dt | El tiempo transcurrido desde la última actualización (en segundos), sólo para el contador "Expresión", véase también CM._dt. |
inputN | Número de entrada N del dispositivo, 1 = activa, 0 = inactiva, N es el número de la entrada, empezando por 1. |
soc | SOC, nivel de carga en porcentaje (contador/memoria) - si el dispositivo lo admite |
id | Id de dispositivo, ID de Modbus |
txn_duration | Duración de la transacción actual en segundos (EVSE) |
charging_dur | Tiempo de carga real de la transacción actual en segundos (Wallbox) |
txn_energy | Energía cargada de la transacción actual en Wh (EVSE) |
min_current | Corriente de carga mínima en mA (EVSE) |
max_current | Corriente de carga máxima en mA (EVSE) |
state | Estado: 1 en espera, 2 enchufado, 3 cargando, 4 cargando con ventilación, 5 error, 6 desconectado (EVSE) |
cphases | Número de fases de carga (0-3) |
pphases | Número de fases de carga previstas (0-3) |
lb_cur_l1 | Corriente actualmente calculada de la fase 1 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0 |
lb_cur_l2 | Corriente calculada de la fase 2 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0 |
lb_cur_l3 | Corriente actualmente calculada de la fase 3 en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0 |
lb_cur | Corriente calculada para la fase actual en mA (wallbox). Sólo durante el cálculo de las reglas de carga de la Wallbox, en caso contrario 0. El Gestor de carga consulta todas las fases una tras otra. |
surplus_pcur | Exceso de corriente FV por fase (prevista) en mA |
surplus_wanted | 1, si ya se ha aplicado una regla de superávit FV, en caso contrario 0 |
budget | KWh o minutos sobre el presupuesto actual |
budget_amount | Máximo de kWh o minutos en el presupuesto actual |
budget_used | KWh o minutos utilizados en el presupuesto actual |
com_err | 1, si hay un error COM, en caso contrario 0 |
com_err2 | 1, si se produce un error COM durante más de 12 segundos, en caso contrario 0 |
reactive_power | Especificación de la potencia reactiva en vatios (si el dispositivo la admite), valores positivos: Inductiva, valores negativos: Capacitiva |
switch_phases | Para cajas murales con conmutación de fases: Conmutación manual de fases, 1 = monofásica, 3 = trifásica, -1 = conmutación automática de fases |
departure | Hora de salida ISO 15118 como marca de tiempo unitaria (para wallboxes que lo admitan, de lo contrario 0) |
req_energy | ISO 15118 Energía necesaria en Wh (para las cajas murales que lo admitan, en caso contrario 0) |
plugin_start | Unix timestamp, hora de inserción del cable |
plugin_energy | Energía previamente cargada en Wh desde que se enchufó el cable |
M1.current_l1 | Corriente del contador M1, fase 1 |
E2.import_wh | Wh consumido del EVSE E2 |
E3.power_w | Potencia de carga actual del E3 en vatios |
Si utiliza las fórmulas para un medidor de tipo "Expresión", también puede omitir el ID del dispositivo. Entonces los nombres de los campos se refieren a este contador, p.ej. 'potencia_w' es entonces la potencia de este contador en vatios. Mediante 'dt' puede realizar algunas funciones ampliadas, por ejemplo en un medidor del tipo "Expresión":
import_wh + M1.power_w * dt / 3600
actualiza la energía suministrada basándose en la potencia durante el último tiempo de actualización(power_w * (20 - dt) + M1.power_w * dt) / 20
suaviza la potencia durante los últimos 20 segundos.date
date.year | Año en curso |
date.month | Mes de 0..11 |
date.day | Día de 1..31 |
date.weekday | Día de la semana SO=0, Lun=1, Mar=2, ... Sáb=6 |
date.yearday | Día del año de 0..366 |
date.hour | Hora de 0..23 |
date.minute | Minuto de 0..60 |
date.second | Segundo de 0..60 |
date.daysecond | Segundo de este día de 0..86399 |
date.dayminute | Minuto de este día desde 0..1439 |
date.dst | 0 = horario de invierno, 1 = horario de verano |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = activo, 0 = inactivo |
PB.input2 | S0 Input 2, 1 = activo, 0 = inactivo |
CM Variables del gestor de cobros
Estas variables pueden ser configuradas por el administrador en "Configuración". Por ejemplo, si el administrador establece la variable "var_x" en 1,5, CM.var_x devuelve el valor 1,5.
Variables predefinidas:
_num_charging: Número de cajas murales actualmente en carga
_num_charging1: Número de wallboxes que se están cargando actualmente, 1 si no se está cargando ninguna
_corriente_máx_total: Corriente máxima de la conexión domiciliaria en mA por fase
_max_total_evse_current: Corriente máxima para wallboxes en mA por fase
precio: Precio actual de la electricidad
_price_level: Nivel actual del precio de la electricidad, -2=muy caro, -3=caro, -4=normal, -5=barato, -6=muy barato
excedente: excedente solar actual en vatios
excedente_org: Excedente solar tal y como lo habría calculado el Gestor de Cobros independientemente de sus propias fórmulas
capacidad_máx_almacenamiento_vivienda: Capacidad total del almacenamiento, vivienda, si se especifica en la configuración del contador, en Wh
capacidad_de_almacenamiento_home: Capacidad actual del almacenamiento, Home, si se especifica en la configuración del contador, en Wh
capacidad_máx_almacenamiento_todos: Capacidad total del almacenamiento, Todos, si se especifica en la configuración del contador, en Wh
_storage_all_capacity: Capacidad actual del almacenamiento, Todos, si se especifica en la configuración del contador, en Wh
_max_total_current_prc: Porcentaje de la corriente de carga total máxima disponible. Esta variable también puede escribirse (mediante definiciones de contador y variables del Gestor de carga)
_dt: El tiempo transcurrido desde la última actualización (en segundos).
Utilización de los objetos globales:
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
Nota:
En Contadores personalizados también encontrará instrucciones sobre cómo utilizar fórmulas con variables y salidas globales del Gestor de cargas.
GM Contadores globales
GM.grid_demand | Referencia de red |
GM.consumed | Consumo |
GM.produced | Generación |
GM.consumed_evse | Consumo de coches eléctricos |
GM.available_evse | Potencia disponible |
GM.surplus | Excedente fotovoltaico |
GM.storage_home | Memoria del hogar |
GM.storage_all | Memoria Todo |
GM.error | Rendimiento por error |
Utilización de los contadores globales
Jeder Zähler hat die Felder power_w, current, current_l1, current_l2, current_l3, import_wh und export_wh,
z.B. GM.prod_pwr.current_l1 oder GM.cons_pwr.power_w
. Bei 'current' wird der Strom der gerade betrachteten Phase ausgewertet. Ströme werden in mA geliefert, Leistung in W, Energie in Wh.
Usted quiere limitar adicionalmente la corriente de carga con respecto a un contador de consumo de un piso. Para ello, puede establecer una regla de carga con la fórmula 16000 - M1.current
.
M1 es el contador que mide el consumo del piso. La gestión de la carga del Gestor de Carga cFos intenta primero proporcionar al EVSE la máxima corriente en relación con la potencia de conexión de la vivienda, pero luego la limita a 16A menos el consumo del piso.
Mediante min_precio(s), max_precio(s), puede determinar el precio más barato de su proveedor de energía en euros, para lo cual se buscan los precios desde la hora actual hasta un máximo de s segundos del día o del día siguiente, por ejemplo min_precio(25200) devuelve el precio más barato hasta las 7:00 de la mañana. Por ejemplo, se puede crear una regla de carga con la condición CM._precio <= min_precio(25200) para cargar a la hora más favorable, pero con la condición de que se quiera poner en marcha a partir de las 8:00 de la mañana, por ejemplo (suponiendo un tiempo de carga de 1 hora). Del mismo modo, existen las dos funciones min_price_secs(s) y max_price_secs(s), que devuelven la hora de inicio del precio más barato en segundos del día iniciado. A continuación, puede compararlas con date.daysecond, por ejemplo.