cFos 計費管理器允許動態評估公式。此功能適用於 "Expression 「類型的計數器和 」Formula "類型的計費規則。
因此,您可以設定計量表,從其他計量表或壁盒計算數值,並保留和顯示這些數值。充電規則也可以使用公式動態計算充電電流,也可以存取計量表和 wallbox(包括「表達」類型的計量表)。
公式可進行下列運算:
+ - * / % | 加法、減法、乘法、除法、模數 |
& | | 位元 AND 和 OR |
^ | 幂计算,例如 10^2 = 100 |
min(x,y) | x 和 y 的最小值,可能超過 2 個參數 |
max(x,y) | 最多 x 和 y,可能超過 2 個參數 |
abs(x) | x 的絕對值,例如 abs(-2) = 2 |
clamp(x,min,max) | 值 x = 最小值 (如果 x < 最小值),x = 最大值 (如果 x > 最大值),否則保留 x |
round(x) | 將 x 四捨五入為整數。範例:四捨五入到小數點後 1 位:round(10*x)/10。 |
sqrt(x) | x 的平方根 |
exists(x) | 如果變數 x 存在,則為 true,否則為 false |
也可以使用下列邏輯表達式:==
(相等)、!=
(不相等)、<
(較小)、<=
(較小相等)、>
(較大)、>=
(較大相等)、!
(not),||
(邏輯或),&&
(邏輯和),?
(條件運算符號,例如x ? y : z
,如果 x 為真,則返回 y,否則返回 z)
這允許根據條件關閉電流,例如M1.current >= 6500 ?M1.current : 0
如果 M1 的電流大於 6.5A,則返回電流,否則返回 0,充電暫停。對於此類條件,也可以查詢輸入(請參閱下文)
可以使用下列名稱:
Mx | 具有裝置 ID x 的計數器,例如 M1 |
Ex | 裝置 ID 為 x 的壁掛盒,例如 E1 |
也可以存取虛擬電表,例如太陽能剩餘量、電網消耗量或「Power avail. for EVSEs」(壁掛箱可用電量),只要設定電表,然後在公式中使用對應的裝置 ID 即可。
然後,您可以使用圓點存取裝置的個別數值。這些裝置的名稱如下:
current_l1 | 第 1 相電流 (mA) |
current_l2 | 相位 2 電流 (mA) |
current_l3 | 第 3 相電流 (mA) |
current | 當前相位的電流,單位 mA(對於充電規則,充電管理器會逐一查詢所有相位;對於 "Expression"(表達式)類型的計量表,公式所指的各相位適用。如果您指定了 「電流 L1 」的公式,則可以省略電流 L2 和 L3 的欄位。此時會使用電流 L1 的公式)。 |
power_w | 目前有功功率 (瓦特) |
offered | Wallbox:提供的電流 (mA) |
import_wh | 以 Wh 為單位的購買能源 |
export_wh | 饋入電網的能量(以Wh計 |
dt | 自上次更新後經過的時間(以秒為單位),僅適用於 "Expression "計數器,另請參閱 CM._dt。 |
inputN | 裝置的輸入號碼 N,1 = 動態,0 = 非動態,N 是輸入的號碼,從 1 開始。 |
soc | SOC,以百分比為單位的充電等級 (計數器/記憶體) - 若裝置支援 |
id | 裝置 ID、Modbus ID |
txn_duration | 目前交易的持續時間,以秒為單位 (Wallbox) |
charging_dur | 目前交易的實際充電時間,以秒為單位 (wallbox) |
txn_energy | 目前交易的充電能量,單位 Wh (wallbox) |
min_current | 最小充電電流(mA)(壁掛箱 |
max_current | 最大充電電流(mA)(壁掛箱 |
state | 狀態:1 等待、2 已插入、3 充電、4 通風充電、5 錯誤、6 離線 (wallbox) |
cphases | 充電階段數量 (0-3) |
pphases | 預測充電階段數量 (0-3) |
lb_cur_l1 | 目前計算出的第 1 相電流,單位 mA(wallbox)。僅在壁掛盒充電規則計算期間,否則為 0 |
lb_cur_l2 | Current 第 2 相的計算電流,單位為 mA(wallbox)。僅在壁掛盒充電規則計算期間,否則為 0 |
lb_cur_l3 | 目前計算出的第 3 相電流,單位 mA(wallbox)。僅在壁掛盒充電規則計算期間,否則為 0 |
lb_cur | 為目前相位計算的電流,單位為 mA(wallbox)。僅在計算壁掛盒充電規則期間,否則為 0。充電管理器會逐一查詢所有相位。 |
surplus_pcur | 每個(預測)相位的 PV 過大電流,單位 mA |
surplus_wanted | 如果已經應用 PV 盈餘規則,則為 1,否則為 0 |
budget | 目前預算的千瓦時或分鐘數 |
budget_amount | 目前預算的最大千瓦時或分鐘數 |
budget_used | 目前預算使用的度數或分鐘數 |
com_err | 如果有 COM 錯誤,則為 1,否則為 0 |
com_err2 | 1,如果 COM 錯誤存在超過 12 秒,否則為 0 |
reactive_power | 以瓦為單位的無功功率規格(如果裝置支援),正值:正值:電感性,負值:電容性 |
switch_phases | 對於具有相位切換功能的壁盒:手動相位切換,1 = 1 相,3 = 3 相,-1 = 自動相位切換 |
departure | ISO 15118 離港時間作為單位時間戳記 (適用於支援此功能的 wallbox,否則為 0) |
req_energy | ISO 15118 所需的能量(Wh)(適用於支援此功能的壁掛箱,否則為 0 |
plugin_start | Unix 時間戳記,電纜插入時間 |
plugin_energy | 先前充電的能量,以 Wh 為單位,從插上電纜開始計算 |
M1.current_l1 | 電錶 M1 的電流,相位 1 |
E2.import_wh | Wallbox E2 消耗的電量 |
E3.power_w | E3 目前的充電功率 (瓦特) |
如果您使用「Expression」類型計量表的公式,也可以省略裝置 ID。字段名稱就會指向此計量表,例如 'power_w' 就是此計量表的功率 (瓦特)。使用 'dt',您可以實現一些擴充功能,例如在 "Expression" 類型的計數器中:
import_wh + M1.power_w * dt / 3600
根據前一次更新時間內的電力更新所汲取的能量。(power
_w * (20 - dt) + M1.power_w * dt) / 20
可以平滑過去 20 秒的功率。date
date.year | 本年度 |
date.month | 月份從 0...11 |
date.day | 日從 1...31 |
date.weekday | 平日 SO=0, Mon=1, Tue=2, ...星期六=6 |
date.yearday | 年中的日,從 0...366 起 |
date.hour | 小時從 0...23 |
date.minute | 分鐘從 0...60 |
date.second | 秒從 0...60 |
date.daysecond | 這一天的秒從 0...86399 |
date.dayminute | 這一天的分鐘從 0...1439 |
date.dst | 0 = 冬季時間,1 = 夏季時間 |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = 動態,0 = 非動態 |
PB.input2 | S0 Input 2, 1 = 動態,0 = 非動態 |
CM 充電管理員變數
這些變數可由管理員在「組態」下設定。例如,如果管理員將變數「var_x」設為 1.5,CM.var_x 就會回傳值 1.5。
預先定義的變數:
_num_charging | 目前正在充電的壁掛盒數 |
_num_charging1 | 目前正在充電的壁掛盒數,如果沒有壁掛盒正在充電,則為 1 |
_max_total_current | 房屋連接的最大電流(每相 mA |
_max_total_evse_current | 每相壁掛箱的最大電流 (mA) |
_price | 目前電價 |
_price_level | 目前電價水平,-2=非常昂貴,-3=昂貴,-4=正常,-5=便宜,-6=非常便宜 |
_surplus | 目前的太陽能盈餘(瓦特 |
_org_surplus | 太陽能盈餘,因為充電管理器會根據自己的公式獨立計算。 |
_storage_home_max_capacity | 儲存的總容量,Home(如果在儀表設定中指定),單位為 Wh |
_storage_home_capacity | 儲存設備的目前容量,Home(如果在儀表設定中指定),單位為 Wh |
_storage_all_max_capacity | 總儲存容量,All(如果在電表設定中指定),單位 Wh |
_storage_all_capacity | 儲存設備的目前容量,All(如果在儀表設定中指定),單位為 Wh |
_storage_home_soc | 具有 "House"(房屋)角色的電池儲存系統的目前 SoC。如果已指定至少一個儲存系統的容量,充電管理器會使用此容量進行計算,否則此變數會提供第一個具有「房屋」角色的儲存系統的目前 SoC。 |
_storage_all_soc | 角色為「Home+Car」的電池儲存系統目前的 SoC。如果至少指定了一個儲存系統的容量,充電管理器會使用此容量進行計算,否則此變數會提供所找到的第一個角色為「Home+Car」的儲存系統的目前 SoC。 |
_max_total_current_prc | 可用最大總充電電流的百分比。此變數還可以寫入(透過計數器定義和充電管理員變數來寫入) |
_dt | 上次更新後經過的時間(以秒為單位)。 |
使用全局物件:
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
注意事項:
在使用者定義計數器下,您也可以找到如何使用公式與全域 Charging Manager 變數和輸出的說明。
GM 全球計數器
GM.grid_demand | 主電源 |
GM.consumed | 消耗量 |
GM.produced | 世代 |
GM.consumed_evse | 電動車的消耗量 |
GM.available_evse | 可用電源 |
GM.surplus | PV 盈餘 |
GM.storage_home | 儲存首頁 |
GM.storage_all | 記憶一切 |
GM.error | 透過錯誤達到效能 |
使用全球計數器
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.
您希望額外限制單位內消耗計量表的充電電流。為此,您可以使用公式16000 - M1.current
設定充電規則。
M1是測量單位耗電量的電表。cFos 充電管理器的負載管理最初會嘗試提供牆壁電錶箱與房屋連接電源有關的最大電流,但後來會將其限制為16A減去單位消耗量。
使用 min_price(s)、max_price(s),您可以確定能源供應商的最便宜價格(以歐元為單位),從當前時間到當天或隔天的最大 s 秒搜尋價格,例如 min_price(25200) 會返回直到早上 7:00 的最便宜價格。舉例來說,您可以建立一個充電規則,條件是 CM._price <= min_price(25200),以便在最有利的時間充電,但條件是要從早上 8:00 開始,例如 (假設充電時間為 1 小時)。同樣地,有兩個函數 min_price_secs(s) 和 max_price_secs(s),可以回傳開始當天最便宜價格的開始時間,以秒為單位。例如,您可以將這些與 date.daysecond 進行比較。
cFos Charging Manager 現在可以透過 TRONITY API(www.tronity.io) 讀取汽車的 SoC 和範圍。您可以在 TRONITY 註冊個人帳號,然後註冊一輛或多輛汽車。之後您就可以在 cFos Charging Manager 的「Configuration」使用者介面中加入您的 TRONITY ID 和 TRONITY secret。
使用 "Get vehicle data"(獲取車輛資料)按鈕顯示您的 TRONITY 註冊車輛清單。每部車輛都有一個 ID。在充電管理器中使用此 ID 來表達和/或充電規則,例如,如果您的車輛有 ID 1,則使用V1.soc
或V1.range
。V1.soc
是目前的充電狀態,單位為百分比。V1.range
是目前的里程,單位為公里。例如,您可以建立一個條件,例如V1.soc < 50
,如果 SoC 低於 50%,則此條件為真。