Dokumentation

cFos Charging Manager - Formler

cFos Charging Manager gør det muligt at foretage dynamisk evaluering af formler. Denne funktionalitet er tilgængelig for en måler af typen "Expression" og for opkrævningsregler af typen "Formula".

Du kan derfor oprette målere, der beregner værdier fra andre målere eller EVSE'er og holder dem klar og viser dem. Opladningsreglerne kan også bruge formler til dynamisk at beregne opladningsstrømmen og også få adgang til målere og EVSE'er (herunder målere af typen "Expression").

Følgende operationer er mulige med formlerne:

+ - * / %Addition, subtraktion, multiplikation, division, modulus
& |bitvis AND og OR
^Beregning af effekt, f.eks. 10^2 = 100
min(x,y)Minimum af x og y, mere end 2 argumenter muligt
max(x,y)Højst x og y, mere end 2 argumenter muligt
abs(x)Absolut værdi af x, f.eks. abs(-2) = 2
clamp(x,min,max)Værdi x = min (hvis x < min), x = max (hvis x > max), ellers beholder x
round(x)Afrund x til heltal. Eksempel: Afrunding til 1 decimal: round(10*x)/10.
sqrt(x)Kvadratrod af x
exists(x)sand, hvis variablen x findes, ellers falsk

Desuden er følgende logiske udtryk mulige:

== (lig), != (ulig), < (mindre), <= (mindre lig), > (større), >= (større lig), ! (ikke), || (logisk eller), && (logisk og), ? (betinget operatør, f.eks. x ? y : z, returnerer y hvis x er sandt, ellers z)

Dette gør det f.eks. muligt at slukke for strømmen afhængigt af forholdene: M1.current >= 6500 ? M1.current : 0 returnerer strømmen i M1, hvis den er større end 6,5 A, og 0 i modsat fald, hvilket sætter opladningen på pause. For sådanne betingelser er det også muligt at forespørge indgange (se nedenfor)

Følgende navne er mulige:

MxMåler med enheds-ID x, f.eks. M1
ExEVSE med enheds-ID x, f.eks. E1

Det er også muligt at få adgang til virtuelle målere, f.eks. soloverskud, netudtag eller "Power avail. for EVSEs" (tilgængelig effekt til EVSEs), ved at konfigurere måleren og derefter bruge det tilsvarende enheds-id i formlen.

Du kan derefter få adgang til de enkelte værdier af enhederne ved hjælp af punktet. Disse kaldes på følgende måde:

current_l1Strøm i fase 1 i mA
current_l2Strøm i fase 2 i mA
current_l3Strøm i fase 3 i mA
currentStrømmen for den aktuelle fase i mA (for opladningsregler forespørger Charging Manager alle faser efter hinanden; for målere af typen "Expression" gælder den respektive fase, som formlen henviser til. Hvis du har angivet en formel for "Current L1", kan du udelade felterne for Current L2 og L3. Så anvendes formlen for strøm L1)
power_wAktuel aktiv effekt i watt
offeredWallbox: Strøm tilbydes i mA
import_whTrækket energi i Wh
export_whIndsprøjtet energi i Wh
dtDen tid, der er gået siden sidste opdatering (i sekunder), kun for tæller "Expression", se også CM._dt.
inputNIndgangsnummer N på enheden, 1 = aktiv, 0 = inaktiv, N er nummeret på indgangen, begyndende med 1.
socSOC, opladningsniveau i procent (tæller/hukommelse) - hvis det understøttes af enheden
idEnheds-id, Modbus-id
txn_durationVarigheden af den aktuelle transaktion i sekunder (EVSE)
charging_durFaktisk opladningstid for den aktuelle transaktion i sekunder (Wallbox)
txn_energyOpladet energi for den aktuelle transaktion i Wh (EVSE)
min_currentMindste opladestrøm i mA (EVSE)
max_currentMaksimal opladestrøm i mA (EVSE)
stateStatus: 1 venter, 2 tilsluttet, 3 oplader, 4 oplader med ventilation, 5 fejl, 6 offline (EVSE)
cphasesAntal opladningsfaser (0-3)
pphasesAntal forudsagte opladningsfaser (0-3)
lb_cur_l1Aktuelt beregnet strøm for fase 1 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0
lb_cur_l2Aktuel beregnet strøm i fase 2 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0
lb_cur_l3Aktuelt beregnet strøm for fase 3 i mA (wallbox). Kun under beregningen af reglerne for opladning af wallboxen, ellers 0
lb_curStrøm beregnet for den aktuelle fase i mA (wallbox). Kun under beregningen af wallboxens opladningsregler, ellers 0. Charging Manager forespørger alle faser en efter en.
surplus_pcurPV-overskudsstrøm pr. (forudsagt) fase i mA
surplus_wanted1, hvis der allerede er anvendt en PV-overskudsregel, ellers 0
budgetKWh eller minutter på det aktuelle budget
budget_amountMaksimum kWh eller minutter på det aktuelle budget
budget_usedKWh eller minutter brugt på det aktuelle budget
com_err1, hvis der er en COM-fejl, ellers 0
com_err21, hvis en COM-fejl er til stede i mere end 12 sek., ellers 0
reactive_powerSpecifikation for reaktiv effekt i watt (hvis understøttet af enheden), positive værdier: Induktiv, negative værdier: Kapacitiv
switch_phasesFor wallboxe med faseskift: Manuelt faseskift, 1 = 1-faset, 3 = 3-faset, -1 = automatisk faseskift
departureISO 15118 afgangstid som enhedstidsstempel (for wallboxe, der understøtter dette, ellers 0)
req_energyISO 15118 Nødvendig energi i Wh (for wallboxe, der understøtter dette, ellers 0)
plugin_startUnix-tidsstempel, tidspunkt for isætning af kabel
plugin_energyTidligere opladet energi i Wh fra det tidspunkt, hvor kablet blev tilsluttet

Eksempel
M1.current_l1Strøm fra måler M1, fase 1
E2.import_whForbrugt Wh fra EVSE E2
E3.power_wE3's aktuelle opladningseffekt i watt

Hvis du bruger formlerne til en måler af typen "Expression", kan du også udelade enhedens ID. Så refererer feltnavnene til denne måler, f.eks. er 'power_w' så denne målers effekt i watt. Ved hjælp af 'dt' kan du realisere nogle få udvidede funktioner, f.eks. i en måler af typen "Expression":

  • Som en formel for 'import_wh': import_wh + M1.power_w * dt / 3600 opdaterer den indkøbte energi baseret på effekten i den seneste opdateringstid
  • Som en formel for 'power_w': (power_w * (20 - dt) + M1.power_w * dt) / 20 udjævner effekten over de sidste 20 sekunder.

Globale variabler

date

date.yearIgangværende år
date.monthMåned fra 0..11
date.dayDag fra 1..31
date.weekdayUgedag SO=0, man=1, tir=2, ... Lør=6
date.yeardayDag i året fra 0..366
date.hourTimer fra 0..23
date.minuteMinut fra 0..60
date.secondAndet fra 0..60
date.daysecondAndet på denne dag fra 0..86399
date.dayminuteMinutter på denne dag fra 0..1439
date.dst0 = vintertid, 1 = sommertid
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktiv, 0 = inaktiv
PB.input2S0 Input 2, 1 = aktiv, 0 = inaktiv

CM Variabler for Charging Manager

Disse variabler kan indstilles af administratoren under 'Konfiguration'. Hvis administratoren f.eks. indstiller variablen 'var_x' til 1,5, returnerer CM.var_x værdien 1,5.

Foruddefinerede variabler:
_num_opladning: Antal wallboxes, der i øjeblikket oplades
_num_charging1: Antal wallboxer, der i øjeblikket oplades, 1, hvis ingen er i gang med at oplade
_max_total_current: Maksimal strøm i husforbindelsen i mA pr. fase
_max_total_evse_current: Maksimal strøm til wallboxe i mA pr. fase
_price: nuværende elpris
_price_level: Nuværende prisniveau for elektricitet, -2=meget dyrt, -3=dyre, -4=normalt, -5=billigt, -6=meget billigt
_surplus: aktuelt soloverskud i watt
_org_surplus: Soloverskud, som Charge Manager ville have beregnet det uafhængigt af sine egne formler
_storage_home_max_capacity: Samlet kapacitet for lageret, hjemmet, hvis det er angivet i målerkonfigurationen, i Wh
_storage_home_capacity: Lagerets aktuelle kapacitet, Home, hvis det er angivet i målerens konfiguration, i Wh
_storage_all_max_capacity: Lagerets samlede kapacitet, Alle, hvis det er angivet i tællerkonfigurationen, i Wh
_storage_all_capacity: Aktuel kapacitet på lageret, Alle, hvis angivet i tællerkonfigurationen, i Wh
_max_total_current_prc: Procentdel af den tilgængelige maksimale samlede ladestrøm. Denne variabel kan også skrives (af tællerdefinitioner og Charging Manager-variabler)
_dt: Den tid, der er gået siden sidste opdatering (i sekunder).

Brug af de globale objekter:
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
Bemærk:
Under Custom Counters finder du også instruktioner i, hvordan du bruger formler med globale Charging Manager-variabler og -output.

GM Globale tællere

GM.grid_demandNetværksreference
GM.consumedForbrug
GM.producedGeneration
GM.consumed_evseForbrug af elbiler
GM.available_evseTilgængelig strøm
GM.surplusPV-overskud
GM.storage_homeMemory Home
GM.storage_allHukommelse for alt
GM.errorPræstation gennem fejl

Brug af de globale tællere
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.

Eksempel på anvendelse

Du ønsker desuden at begrænse opladningsstrømmen med hensyn til en forbrugsmåler af en lejlighed. For at gøre dette kan du oprette en opladningsregel med formlen 16000 - M1.current.
M1 er den måler, der måler lejlighedens forbrug. Belastningsstyringen i cFos Charging Manager forsøger først at forsyne EVSE'en med den maksimale strøm i forhold til husets tilslutningseffekt, men begrænser derefter denne til 16 A minus lejlighedens forbrug.

Funktioner

Ved hjælp af min_price(s), max_price(s) kan du bestemme den billigste pris hos din energileverandør i euro, hvor priserne søges fra det aktuelle tidspunkt til maks. s sekunder af dagen eller den følgende dag, f.eks. min_price(25200) returnerer den billigste pris indtil kl. 7.00 om morgenen. Du kan f.eks. oprette en opladningsregel med betingelsen CM._price <= min_price(25200) for at oplade på det mest gunstige tidspunkt, men med den betingelse, at du f.eks. vil starte fra kl. 8.00 (forudsat en opladningstid på 1 time). På samme måde er der de to funktioner min_price_secs(s) og max_price_secs(s), som returnerer starttidspunktet for den billigste pris i sekunder for den påbegyndte dag. Dem kan man så sammenligne med f.eks. date.daysecond.