Dokumentace

cFos Charging Manager - vzorce

Správce nabíjení cFos umožňuje dynamické vyhodnocování vzorců. Tato funkce je k dispozici pro měřidlo typu "Výraz" a pro pravidla zpoplatnění typu "Vzorec".

Můžete proto nastavit měřiče, které vypočítávají hodnoty z jiných měřičů nebo zařízení EVSE a udržují je připravené a zobrazují je. Pravidla nabíjení mohou také používat vzorce pro dynamický výpočet nabíjecího proudu a také přistupovat k měřičům a EVSE (včetně měřičů typu "Expression").

Se vzorci lze provádět následující operace:

+ - * / %Sčítání, odčítání, násobení, dělení, modul
& |bitové AND a OR
^Výpočet výkonu, např. 10^2 = 100
min(x,y)Minimum x a y, možnost více než 2 argumentů
max(x,y)Maximálně x a y, možné více než 2 argumenty
abs(x)Absolutní hodnota x, např. abs(-2) = 2
clamp(x,min,max)Hodnota x = min (pokud x < min), x = max (pokud x > max), jinak ponechat x
round(x)Zaokrouhlete x na celé číslo. Příklad: Zaokrouhlení na 1 desetinné místo: round(10*x)/10.
sqrt(x)Druhá odmocnina z x
exists(x)true, pokud proměnná x existuje, jinak false

Dále jsou možné následující logické výrazy:

== (rovná se), != (nerovná se), < (menší), <= (menší-rovná se), > (větší), >= (větší-rovná se), ! (ne), || (logické Nebo), && (logické A), ? (podmíněný operátor, např. x ? y : z, vrací y, pokud platí x, jinak z)

To umožňuje například vypnutí proudu v závislosti na podmínkách: M1.current >= 6500 ? M1.current : 0 vrátí proud M1, pokud je větší než 6,5 A, a 0 v opačném případě, čímž se nabíjení pozastaví. Pro tyto podmínky je také možné se dotazovat na vstupy (viz níže)

Možné jsou následující názvy:

MxMěřič s ID jednotky x, např. M1
ExEVSE s ID zařízení x, např. E1

Je také možné přistupovat k virtuálním měřičům, jako je přebytek solární energie, odběr ze sítě nebo "Power avail. for EVSEs" (výkon dostupný pro wallboxy), a to nastavením měřiče a následným použitím příslušného ID zařízení ve vzorci.

Pomocí bodu pak můžete přistupovat k jednotlivým hodnotám jednotek. Ty se vyvolávají následujícím způsobem:

current_l1Proud fáze 1 v mA
current_l2Proud fáze 2 v mA
current_l3Proud fáze 3 v mA
currentProud aktuální fáze v mA (u pravidel nabíjení se Charging Manager dotazuje na všechny fáze postupně; u měřičů typu "Expression" se použije příslušná fáze, na kterou se vzorec vztahuje. Pokud jste zadali vzorec pro "Proud L1", můžete pole pro proud L2 a L3 vynechat. Pak se použije vzorec pro proud L1)
power_wAktuální činný výkon ve wattech
offeredWallbox: Nabízený proud v mA
import_whEnergie odebraná ve Wh
export_whVstřikovaná energie ve Wh
dtČas, který uplynul od poslední aktualizace (v sekundách), pouze pro čítač "Expression", viz také CM._dt.
inputNČíslo vstupu N zařízení, 1 = aktivní, 0 = neaktivní, N je číslo vstupu, počínaje 1.
socSOC, úroveň nabití v procentech (počítadlo/paměť) - pokud to zařízení podporuje
idID zařízení, ID Modbusu
txn_durationDoba trvání aktuální transakce v sekundách (EVSE)
charging_durSkutečná doba nabíjení aktuální transakce v sekundách (Wallbox)
txn_energyNabitá energie aktuální transakce ve Wh (EVSE)
min_currentMinimální nabíjecí proud v mA (EVSE)
max_currentMaximální nabíjecí proud v mA (EVSE)
stateStav: 1 čeká, 2 zapojeno, 3 nabíjení, 4 nabíjení s ventilací, 5 chyba, 6 offline (EVSE)
cphasesPočet fází nabíjení (0-3)
pphasesPočet předpokládaných fází nabíjení (0-3)
lb_cur_l1Aktuálně vypočítaný proud fáze 1 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0
lb_cur_l2Aktuální vypočtený proud fáze 2 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0
lb_cur_l3Aktuálně vypočítaný proud fáze 3 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0
lb_curProud vypočítaný pro proudovou fázi v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0. Správce nabíjení se dotazuje na všechny fáze postupně.
surplus_pcurPV přebytečný proud na (předpokládanou) fázi v mA
surplus_wanted1, pokud již bylo použito pravidlo přebytku PV, jinak 0
budgetKWh nebo minut v běžném rozpočtu
budget_amountMaximální počet kWh nebo minut v rámci aktuálního rozpočtu
budget_usedKWh nebo minuty spotřebované v rámci aktuálního rozpočtu
com_err1, pokud došlo k chybě COM, jinak 0
com_err21, pokud je chyba COM přítomna déle než 12 s, jinak 0
reactive_powerSpecifikace jalového výkonu ve wattech (pokud to zařízení podporuje), kladné hodnoty: Induktivní, záporné hodnoty: Kapacitní
switch_phasesPro nástěnné skříně s přepínáním fází: Ruční přepínání fází, 1 = 1-fázový, 3 = 3-fázový, -1 = automatické přepínání fází
departureČas odletu podle normy ISO 15118 jako jednotkové časové razítko (pro wallboxy, které to podporují, jinak 0)
req_energyISO 15118 Požadovaná energie ve Wh (pro wallboxy, které to podporují, jinak 0)
plugin_startČasové razítko Unix, čas vložení kabelu
plugin_energyDříve nabitá energie v Wh od okamžiku zapojení kabelu do sítě

Příklad
M1.current_l1Proud měřiče M1, fáze 1
E2.import_whSpotřeba Wh z EVSE E2
E3.power_wAktuální nabíjecí výkon E3 ve wattech

Pokud použijete vzorce pro měřidlo typu "Expression", můžete ID zařízení také vynechat. Pak se názvy polí vztahují k tomuto měřidlu, např. "power_w" je pak výkon tohoto měřidla ve wattech. Pomocí 'dt' můžete realizovat několik rozšířených funkcí, např. u měřiče typu "Expression":

  • Vzorec pro "import_wh": import_wh + M1.power_w * dt / 3600 aktualizuje získanou energii na základě výkonu v uplynulém čase aktualizace
  • Vzorec pro "power_w": (power_w * (20 - dt) + M1.power_w * dt) / 20 vyhlazuje výkon za posledních 20 sekund.

Globální proměnné

date

date.yearAktuální rok
date.monthMěsíc od 0..11
date.dayDen od 1..31
date.weekdayVšední den SO=0, Po=1, Út=2, ... So=6
date.yeardayDen v roce od 0..366
date.hourHodina od 0..23
date.minuteMinuta od 0..60
date.secondDruhá od 0..60
date.daysecondDruhý den tohoto dne od 0..86399
date.dayminuteMinuta tohoto dne od 0..1439
date.dst0 = zimní čas, 1 = letní čas
date.timestampUnix timespamp, secs since 1.1.1970

PB (nur cFos Power Brain)

PB.input1S0 Input 1, 1 = aktivní, 0 = neaktivní
PB.input2S0 Input 2, 1 = aktivní, 0 = neaktivní

CM Proměnné správce nabíjení

Tyto proměnné může správce nastavit v části "Konfigurace". Pokud například správce nastaví proměnnou 'var_x' na hodnotu 1,5, CM.var_x vrátí hodnotu 1,5.

Předdefinované proměnné:
_num_charging: Počet aktuálně nabíjených wallboxů
_num_charging1: Počet aktuálně nabíjených wallboxů, 1, pokud se žádný nenabíjí
_max_total_current: Maximální proud domovní přípojky v mA na fázi
_max_total_evse_current: Maximální proud pro wallboxy v mA na fázi
_cena: Aktuální cena elektřiny
_price_level: Aktuální úroveň cen elektřiny, -2=velmi drahá, -3=drahá, -4=normální, -5=levná, -6=velmi levná
_surplus: Aktuální přebytek slunečního záření ve wattech
_org_surplus: Solární přebytek, který by správce poplatků vypočítal nezávisle na svých vzorcích
_storage_home_max_capacity: Celková kapacita úložiště, home, pokud je uvedena v konfiguraci měřiče, ve Wh
_storage_home_capacity: Aktuální kapacita úložiště, Home, pokud je uvedena v konfiguraci měřiče, ve Wh
_storage_all_max_capacity: Celková kapacita úložiště, All, pokud je zadána v konfiguraci čítače, ve Wh
_storage_all_capacity: Aktuální kapacita úložiště, All, pokud je zadána v konfiguraci čítače, ve Wh
_max_total_current_prc: Procento dostupného maximálního celkového nabíjecího proudu. Tuto proměnnou lze také zapsat (pomocí definic čítačů a proměnných Charging Manager)
_dt: Doba, která uplynula od poslední aktualizace (v sekundách).

Použití globálních objektů:
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
Poznámka:
V části Vlastní čítače najdete také pokyny, jak používat vzorce s globálními proměnnými a výstupy Správce nabíjení.

GM Globální počítadla

GM.grid_demandSíťový odkaz
GM.consumedSpotřeba
GM.producedGenerace
GM.consumed_evseSpotřeba e-automobilů
GM.available_evseDostupný výkon
GM.surplusPřebytek fotovoltaiky
GM.storage_homePaměť Home
GM.storage_allPaměť Everything
GM.errorVýkon díky chybám

Použití globálních čítačů
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.

Příklad aplikace

Chcete navíc omezit nabíjecí proud s ohledem na měřič spotřeby bytu. Za tímto účelem můžete nastavit pravidlo nabíjení podle vzorce 16000 - M1.current.
M1 je měřič, který měří spotřebu bytu. Řízení zátěže správce nabíjení cFos se nejprve snaží dodat EVSE maximální proud ve vztahu k příkonu domovní přípojky, ale poté jej omezí na 16 A minus spotřeba bytu.

Funkce

Pomocí min_price(s), max_price(s) můžete zjistit nejlevnější cenu vašeho dodavatele energie v eurech, přičemž ceny jsou vyhledávány od aktuálního času do max. s sekund dne nebo následujícího dne, např. min_price(25200) vrátí nejlevnější cenu do 7:00 ráno. Můžete například vytvořit pravidlo nabíjení s podmínkou CM._price <= min_price(25200), aby se nabíjelo v nejvýhodnějším čase, ale s podmínkou, že chcete vyrazit například od 8:00 hodin (za předpokladu doby nabíjení 1 hodina). Podobně existují dvě funkce min_price_secs(s) a max_price_secs(s), které vracejí čas začátku nejlevnější ceny v sekundách započatého dne. Ty pak můžete porovnat například s date.dayecond.