Dokumentacija

cFos Charging Manager - formule

Upravitelj polnjenja cFos omogoča dinamično vrednotenje formul. Ta funkcionalnost je na voljo za števec vrste "Izraz" in za pravila za zaračunavanje vrste "Formula".

Zato lahko nastavite števce, ki izračunavajo vrednosti iz drugih števcev ali naprav EVSE ter jih hranijo in prikazujejo. Pravila za polnjenje lahko uporabljajo tudi formule za dinamično izračunavanje polnilnega toka ter dostopajo tudi do števcev in EVSE (vključno z števci tipa "Expression").

S formulami so možne naslednje operacije:

+ - * / %Seštevanje, odštevanje, množenje, deljenje, modul
& |bitni AND in OR
^Izračun moči, npr. 10^2 = 100
min(x,y)Najmanj x in y, možna sta več kot 2 argumenta
max(x,y)Največ x in y, možna sta več kot 2 argumenta
abs(x)Absolutna vrednost x, npr. abs(-2) = 2
clamp(x,min,max)Vrednost x = min (če je x < min), x = max (če je x > max), sicer ohrani x
round(x)Zaokrožite x na celo število. Primer: Zaokroževanje na eno decimalno mesto: round(10*x)/10.
sqrt(x)Kvadratni koren x
exists(x)true, če spremenljivka x obstaja, sicer false

Poleg tega so mogoči naslednji logični izrazi:

== (enako), != (neenako), < (manj), <= (manj enako), > (večje), >= (večje enako), ! (ne), || (logični Or), && (logični And), ? (pogojni operator, npr. x ? y : z, vrne y, če je x res, sicer z)

To omogoča, da se tok na primer izklopi glede na razmere: M1.current >= 6500 ? M1.current : 0 vrne tok M1, če je večji od 6,5 A, in 0 v nasprotnem primeru, kar ustavi polnjenje. Za take pogoje je mogoče poizvedovati tudi po vhodih (glej spodaj)

Možna so naslednja imena:

MxMerilnik z ID enote x, npr. M1
ExEVSE z ID naprave x, npr. E1

Dostop do virtualnih števcev, kot so presežek sončne energije, poraba omrežja ali "Power avail. for EVSEs" (moč, ki je na voljo za wallboxe), je mogoč tudi z nastavitvijo števca in nato z uporabo ustreznega ID naprave v formuli.

Do posameznih vrednosti enot lahko nato dostopate s pomočjo točke. Te se imenujejo na naslednji način:

current_l1Tok faze 1 v mA
current_l2Tok faze 2 v mA
current_l3Tok faze 3 v mA
currentTok trenutne faze v mA (pri pravilih za polnjenje upravitelj polnjenja poizveduje po vseh fazah eno za drugo; pri števcih tipa "Izraz" se uporablja ustrezna faza, na katero se nanaša formula. Če ste določili formulo za "Tok L1", lahko izpustite polji za Tok L2 in L3. Potem se uporabi formula za tok L1.)
power_wTrenutna aktivna moč v vatih
offeredWallbox: Ponujeni tok v mA
import_whPorabljena energija v Wh
export_whVbrizgana energija v Wh
dtČas, ki je pretekel od zadnje posodobitve (v sekundah), samo za števec "Expression", glej tudi CM._dt.
inputNŠtevilka vhoda N naprave, 1 = aktiven, 0 = neaktiven, N je številka vhoda, začenši z 1.
socSOC, stopnja napolnjenosti v odstotkih (števec/pomnilnik) - če naprava to podpira
idId naprave, Modbus ID
txn_durationTrajanje trenutne transakcije v sekundah (EVSE)
charging_durDejanski čas polnjenja trenutne transakcije v sekundah (Wallbox)
txn_energyNapolnjena energija trenutne transakcije v Wh (EVSE)
min_currentNajmanjši polnilni tok v mA (EVSE)
max_currentNajvečji polnilni tok v mA (EVSE)
stateStatus: 1 čakanje, 2 priključen, 3 polnjenje, 4 polnjenje s prezračevanjem, 5 napaka, 6 brez povezave (EVSE)
cphasesŠtevilo faz polnjenja (0-3)
pphasesŠtevilo predvidenih faz polnjenja (0-3)
lb_cur_l1Trenutni izračunani tok faze 1 v mA (wallbox). Samo med izračunom pravil za polnjenje wallboxa, sicer 0
lb_cur_l2Trenutno izračunani tok faze 2 v mA (wallbox). Samo med izračunom pravil za polnjenje wallboxa, sicer 0
lb_cur_l3Trenutno izračunani tok faze 3 v mA (wallbox). Samo med izračunom pravil za polnjenje wallboxa, sicer 0
lb_curTok, izračunan za tokovno fazo, v mA (wallbox). Samo med izračunom pravil za polnjenje wallboxa, sicer 0. Upravitelj polnjenja poizveduje po vseh fazah eno za drugo.
surplus_pcurPV presežni tok na (predvideno) fazo v mA
surplus_wanted1, če je bilo pravilo o presežku PV že uporabljeno, sicer 0
budgetKWh ali minutah v trenutnem proračunu
budget_amountNajvečje število kWh ali minut v trenutnem proračunu
budget_usedPorabljene kWh ali minute v tekočem proračunu
com_err1, če je prišlo do napake COM, sicer 0
com_err21, če je napaka COM prisotna dlje kot 12 sekund, sicer 0
reactive_powerSpecifikacija jalove moči v vatih (če jo naprava podpira), pozitivne vrednosti: Induktivna, negativne vrednosti: kapacitivna
switch_phasesZa stenske omarice s faznim preklopom: Ročni fazni preklop, 1 = 1-fazni, 3 = 3-fazni, -1 = samodejni fazni preklop
departureISO 15118 čas odhoda kot časovni žig enote (za wallboxe, ki to podpirajo, sicer 0)
req_energyISO 15118 Zahtevana energija v Wh (za wallboxe, ki to podpirajo, sicer 0)
plugin_startČasovni žig Unix, čas vstavitve kabla
plugin_energyPredhodno napolnjena energija v Wh od trenutka, ko je bil kabel priključen

Primer
M1.current_l1Tok števca M1, faza 1
E2.import_whPorabljeni Wh EVSE E2
E3.power_wTrenutna moč polnjenja E3 v vatih

Če uporabljate formule za merilnik tipa "Izraz", lahko ID naprave tudi izpustite. Potem se imena polj nanašajo na ta števec, npr. "power_w" je potem moč tega števca v vatih. S pomočjo "dt" lahko uresničite nekaj razširjenih funkcij, npr. pri merilniku tipa "Expression":

  • Formula za "import_wh": import_wh + M1.power_w * dt / 3600 posodobi pridobljeno energijo na podlagi moči v preteklem času posodobitve
  • Formula za "power_w": (power_w * (20 - dt) + M1.power_w * dt) / 20 zgladi moč v zadnjih 20 sekundah.

Globalne spremenljivke

date

date.yearTekoče leto
date.monthMesec od 0..11
date.dayDan od 1..31
date.weekdayDelovni dan SO=0, pon=1, tor=2, ... So=6
date.yeardayDan v letu od 0..366
date.hourUra od 0..23
date.minuteMinuta od 0..60
date.secondDrugi od 0..60
date.daysecondDrugi dan tega dne od 0..86399
date.dayminuteMinuta tega dne od 0..1439
date.dst0 = zimski čas, 1 = poletni čas
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktivno, 0 = neaktivno
PB.input2S0 Input 2, 1 = aktivno, 0 = neaktivno

CM Spremenljivke upravitelja polnjenja

Te spremenljivke lahko upravitelj nastavi v razdelku "Konfiguracija". Na primer, če upravitelj nastavi spremenljivko 'var_x' na 1,5, CM.var_x vrne vrednost 1,5.

Vnaprej določene spremenljivke:
_num_charging: Število stenskih omaric, ki se trenutno polnijo
_num_charging1: Število trenutno polnih wallboxov, 1, če se ne polni noben
_max_total_current: Največji tok hišnega priključka v mA na fazo
_max_total_evse_current: Največji tok za stenske omarice v mA na fazo
_price: trenutna cena električne energije
_price_level: Trenutna raven cen električne energije, -2 = zelo draga, -3 = draga, -4 = normalna, -5 = poceni, -6 = zelo poceni
_surplus: Trenutni presežek sončne energije v vatih
_org_surplus: Presežek sončne energije, ki bi ga upravitelj zaračunavanja izračunal neodvisno od svojih formul
_storage_home_max_capacity: Skupna zmogljivost shrambe, doma, če je določena v konfiguraciji števca, v Wh
_storage_home_capacity: Trenutna zmogljivost shrambe, Home, če je določena v konfiguraciji merilnika, v Wh
_storage_all_max_capacity: Skupna zmogljivost shrambe, All, če je določena v konfiguraciji števca, v Wh
_storage_all_capacity: Trenutna zmogljivost shrambe, All, če je določena v konfiguraciji števca, v Wh
_max_total_current_prc: Odstotek razpoložljivega največjega skupnega polnilnega toka. To spremenljivko je mogoče zapisati tudi (z definicijami števcev in spremenljivkami Charging Manager)
_dt: Čas, ki je pretekel od zadnje posodobitve (v sekundah).

Uporaba globalnih predmetov:
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
Opomba:
V razdelku Števci po meri boste našli tudi navodila za uporabo formul z globalnimi spremenljivkami in izhodi programa Charging Manager.

GM Globalni števci

GM.grid_demandOmrežna referenca
GM.consumedPoraba
GM.producedGeneracija
GM.consumed_evsePoraba e-avtomobilov
GM.available_evseRazpoložljiva moč
GM.surplusPV presežek
GM.storage_homeSpominski dom
GM.storage_allSpomin Vse
GM.errorUspešnost zaradi napak

Uporaba globalnih števcev
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.

Primer uporabe

Dodatno želite omejiti polnilni tok glede na števec porabe stanovanja. To lahko storite tako, da določite pravilo za polnjenje s formulo 16000 - M1.current.
M1 je števec, ki meri porabo stanovanja. Upravljanje obremenitve upravitelja polnjenja cFos najprej poskuša EVSE zagotoviti največji tok glede na moč hišnega priključka, nato pa ga omeji na 16 A minus poraba stanovanja.

Funkcije

Z uporabo funkcij min_price(s), max_price(s) lahko določite najcenejšo ceno vašega ponudnika energije v evrih, pri čemer se cene iščejo od trenutnega časa do največ s sekund dneva ali naslednjega dne, npr. funkcija min_price(25200) vrne najcenejšo ceno do 7:00. Tako lahko na primer ustvarite pravilo za polnjenje s pogojem CM._price <= min_price(25200), da bi polnili ob najugodnejšem času, vendar s pogojem, da želite na primer začeti polniti od 8:00 zjutraj (ob predpostavki, da je čas polnjenja 1 ura). Podobno sta na voljo funkciji min_price_secs(s) in max_price_secs(s), ki vrneta čas začetka najcenejše cene v sekundah začetega dne. Nato ju lahko primerjate na primer z date.dayecond.