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:
Mx | Měřič s ID jednotky x, např. M1 |
Ex | EVSE 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_l1 | Proud fáze 1 v mA |
current_l2 | Proud fáze 2 v mA |
current_l3 | Proud fáze 3 v mA |
current | Proud 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_w | Aktuální činný výkon ve wattech |
offered | Wallbox: Nabízený proud v mA |
import_wh | Energie odebraná ve Wh |
export_wh | Vstř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. |
soc | SOC, úroveň nabití v procentech (počítadlo/paměť) - pokud to zařízení podporuje |
id | ID zařízení, ID Modbusu |
txn_duration | Doba trvání aktuální transakce v sekundách (EVSE) |
charging_dur | Skutečná doba nabíjení aktuální transakce v sekundách (Wallbox) |
txn_energy | Nabitá energie aktuální transakce ve Wh (EVSE) |
min_current | Minimální nabíjecí proud v mA (EVSE) |
max_current | Maximální nabíjecí proud v mA (EVSE) |
state | Stav: 1 čeká, 2 zapojeno, 3 nabíjení, 4 nabíjení s ventilací, 5 chyba, 6 offline (EVSE) |
cphases | Počet fází nabíjení (0-3) |
pphases | Počet předpokládaných fází nabíjení (0-3) |
lb_cur_l1 | Aktuálně vypočítaný proud fáze 1 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0 |
lb_cur_l2 | Aktuální vypočtený proud fáze 2 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0 |
lb_cur_l3 | Aktuálně vypočítaný proud fáze 3 v mA (wallbox). Pouze při výpočtu pravidel nabíjení wallboxu, jinak 0 |
lb_cur | Proud 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_pcur | PV přebytečný proud na (předpokládanou) fázi v mA |
surplus_wanted | 1, pokud již bylo použito pravidlo přebytku PV, jinak 0 |
budget | KWh nebo minut v běžném rozpočtu |
budget_amount | Maximální počet kWh nebo minut v rámci aktuálního rozpočtu |
budget_used | KWh nebo minuty spotřebované v rámci aktuálního rozpočtu |
com_err | 1, pokud došlo k chybě COM, jinak 0 |
com_err2 | 1, pokud je chyba COM přítomna déle než 12 s, jinak 0 |
reactive_power | Specifikace jalového výkonu ve wattech (pokud to zařízení podporuje), kladné hodnoty: Induktivní, záporné hodnoty: Kapacitní |
switch_phases | Pro 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_energy | ISO 15118 Požadovaná energie ve Wh (pro wallboxy, které to podporují, jinak 0) |
plugin_start | Časové razítko Unix, čas vložení kabelu |
plugin_energy | Dříve nabitá energie v Wh od okamžiku zapojení kabelu do sítě |
M1.current_l1 | Proud měřiče M1, fáze 1 |
E2.import_wh | Spotřeba Wh z EVSE E2 |
E3.power_w | Aktuá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":
import_wh + M1.power_w * dt / 3600
aktualizuje získanou energii na základě výkonu v uplynulém čase aktualizace(power_w * (20 - dt) + M1.power_w * dt) / 20
vyhlazuje výkon za posledních 20 sekund.date
date.year | Aktuální rok |
date.month | Měsíc od 0..11 |
date.day | Den od 1..31 |
date.weekday | Všední den SO=0, Po=1, Út=2, ... So=6 |
date.yearday | Den v roce od 0..366 |
date.hour | Hodina od 0..23 |
date.minute | Minuta od 0..60 |
date.second | Druhá od 0..60 |
date.daysecond | Druhý den tohoto dne od 0..86399 |
date.dayminute | Minuta tohoto dne od 0..1439 |
date.dst | 0 = zimní čas, 1 = letní čas |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = aktivní, 0 = neaktivní |
PB.input2 | S0 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_demand | Síťový odkaz |
GM.consumed | Spotřeba |
GM.produced | Generace |
GM.consumed_evse | Spotřeba e-automobilů |
GM.available_evse | Dostupný výkon |
GM.surplus | Přebytek fotovoltaiky |
GM.storage_home | Paměť Home |
GM.storage_all | Paměť Everything |
GM.error | Vý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.
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.
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.