Manajer Pengisian cFos memungkinkan evaluasi dinamis dari formula. Fungsionalitas ini tersedia untuk meteran tipe "Expression" dan untuk aturan pengisian tipe "Formula".
Oleh karena itu, Anda dapat mengatur meter yang menghitung nilai dari meter atau EVSE lain dan membuatnya siap dan menampilkannya. Aturan pengisian daya juga dapat menggunakan rumus untuk menghitung arus pengisian daya secara dinamis dan juga mengakses meter dan EVSE (termasuk meter dari jenis "Expression").
Operasi-operasi berikut ini dimungkinkan dengan rumus-rumus:
+ - * / % | Penjumlahan, pengurangan, perkalian, pembagian, modulus |
& | | bitwise AND dan OR |
^ | Perhitungan daya, misalnya 10^2 = 100 |
min(x,y) | Minimum x dan y, lebih dari 2 argumen yang memungkinkan |
max(x,y) | Maksimum x dan y, lebih dari 2 argumen yang memungkinkan |
abs(x) | Nilai absolut dari x, misalnya abs(-2) = 2 |
clamp(x,min,max) | Nilai x = min (jika x < min), x = max (jika x > max), jika tidak, pertahankan x |
round(x) | Membulatkan x ke bilangan bulat. Contoh: Pembulatan ke 1 tempat desimal: bulatkan (10*x)/10. |
sqrt(x) | Akar kuadrat dari x |
exists(x) | benar jika variabel x ada, jika tidak salah |
Lebih jauh lagi, ekspresi logika berikut ini dimungkinkan:==
(sama), !=
(tidak sama), <
(kurang), <=
(kurang-sama), >
(lebih besar), >=
(lebih besar-sama), !
(tidak), ||
(logika Or), &&
(logika And), ?
(operator kondisional, misalnya x ? y : z
, mengembalikan y jika x benar, jika tidak z
)
Hal ini memungkinkan, misalnya, arus dimatikan tergantung pada kondisi: M1.current >= 6500 ? M1.current : 0
mengembalikan arus M1 jika lebih besar dari 6,5A dan 0 jika tidak, yang menghentikan pengisian daya. Untuk kondisi seperti itu, juga memungkinkan untuk menanyakan input (lihat di bawah)
Nama-nama berikut ini dimungkinkan:
Mx | Meteran dengan ID unit x, misalnya M1 |
Ex | EVSE dengan ID perangkat x, misalnya E1 |
Anda juga dapat mengakses meter virtual, seperti surplus surya, penarikan jaringan, atau "Power avail. for EVSEs" (daya yang tersedia untuk kotak dinding), dengan mengatur meteran dan kemudian menggunakan ID perangkat yang sesuai dalam rumus.
Anda kemudian bisa mengakses nilai individual dari unit-unit melalui titik. Ini disebut sebagai berikut:
current_l1 | Arus fase 1 dalam mA |
current_l2 | Arus fase 2 dalam mA |
current_l3 | Arus fase 3 dalam mA |
current | Arus fase saat ini dalam mA (untuk aturan pengisian daya, Manajer Pengisian Daya menanyakan semua fase satu demi satu; untuk meter tipe "Expression", masing-masing fase yang dirujuk oleh rumus berlaku. Jika Anda telah menentukan formula untuk "Arus L1", Anda dapat menghilangkan bidang untuk Arus L2 dan L3. Kemudian rumus untuk L1 saat ini digunakan) |
power_w | Daya aktif saat ini dalam watt |
offered | Kotak dinding: Arus yang ditawarkan dalam mA |
import_wh | Energi yang ditarik dalam Wh |
export_wh | Energi yang disuntikkan dalam Wh |
dt | Waktu yang telah berlalu sejak pembaruan terakhir (dalam detik), hanya untuk penghitung "Ekspresi", lihat juga CM._dt. |
inputN | Nomor input N perangkat, 1 = aktif, 0 = tidak aktif, N adalah nomor input, dimulai dengan 1. |
soc | SOC, tingkat pengisian daya dalam persen (penghitung/memori) - jika didukung oleh perangkat |
id | Id Perangkat, ID Modbus |
txn_duration | Durasi transaksi saat ini dalam detik (EVSE) |
charging_dur | Waktu pengisian daya aktual dari transaksi saat ini dalam hitungan detik (Wallbox) |
txn_energy | Energi yang dibebankan dari transaksi saat ini dalam Wh (EVSE) |
min_current | Arus pengisian minimum dalam mA (EVSE) |
max_current | Arus pengisian maksimum dalam mA (EVSE) |
state | Status: 1 menunggu, 2 terpasang, 3 pengisian daya, 4 pengisian daya dengan ventilasi, 5 kesalahan, 6 offline (EVSE) |
cphases | Jumlah fase pengisian daya (0-3) |
pphases | Jumlah fase pengisian daya yang diprediksi (0-3) |
lb_cur_l1 | Arus yang dihitung saat ini dari fase 1 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0 |
lb_cur_l2 | Arus yang dihitung saat ini dari fase 2 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0 |
lb_cur_l3 | Arus yang dihitung saat ini dari fase 3 dalam mA (wallbox). Hanya selama perhitungan aturan pengisian daya wallbox, jika tidak, 0 |
lb_cur | Arus dihitung untuk fase saat ini dalam mA (wallbox). Hanya selama perhitungan aturan pengisian wallbox, jika tidak, 0. Manajer Pengisian Daya menanyakan semua fase satu demi satu. |
surplus_pcur | Kelebihan arus PV per fase (prediksi) dalam mA |
surplus_wanted | 1, jika aturan surplus PV telah diterapkan, jika tidak 0 |
budget | KWh atau menit pada anggaran saat ini |
budget_amount | KWh atau menit maksimum pada anggaran saat ini |
budget_used | KWh atau menit yang digunakan pada anggaran saat ini |
com_err | 1, jika ada kesalahan COM, jika tidak 0 |
com_err2 | 1, jika kesalahan COM terjadi lebih dari 12 detik, jika tidak 0 |
reactive_power | Spesifikasi daya reaktif dalam watt (jika didukung oleh perangkat), nilai positif: Induktif, nilai negatif: Kapasitif |
switch_phases | Untuk kotak dinding dengan peralihan fase: Peralihan fase manual, 1 = 1 fase, 3 = 3 fase, -1 = peralihan fase otomatis |
departure | Waktu keberangkatan ISO 15118 sebagai stempel waktu unit (untuk kotak dinding yang mendukung ini, jika tidak, 0) |
req_energy | ISO 15118 Energi yang dibutuhkan dalam Wh (untuk kotak dinding yang mendukung ini, jika tidak, 0) |
plugin_start | Cap waktu Unix, waktu penyisipan kabel |
plugin_energy | Energi yang sebelumnya terisi dalam Wh sejak kabel dicolokkan |
M1.current_l1 | Arus meter M1, fase 1 |
E2.import_wh | Wh yang dikonsumsi dari EVSE E2 |
E3.power_w | Daya pengisian daya E3 saat ini dalam watt |
Jika Anda menggunakan rumus untuk meteran tipe "Expression", Anda juga dapat menghilangkan ID perangkat. Kemudian nama field merujuk pada meteran ini, misalnya 'power_w' adalah daya meteran ini dalam watt. Dengan menggunakan 'dt', Anda dapat merealisasikan beberapa fungsi yang diperluas, misalnya pada meter dengan tipe "Expression":
import_wh + M1.power_w * dt / 3600
memperbarui energi yang bersumber berdasarkan daya selama waktu pembaruan sebelumnya(power_w * (20 - dt) + M1.power_w * dt) / 20
menghaluskan daya selama 20 detik terakhir.date
date.year | Tahun sekarang |
date.month | Bulan dari 0..11 |
date.day | Hari dari 1..31 |
date.weekday | Hari kerja SO = 0, Senin = 1, Selasa = 2, ... Sabtu = 6 |
date.yearday | Hari dalam setahun dari 0..366 |
date.hour | Jam dari 0..23 |
date.minute | Menit dari 0..60 |
date.second | Kedua dari 0..60 |
date.daysecond | Kedua hari ini dari 0..86399 |
date.dayminute | Menit hari ini dari 0..1439 |
date.dst | 0 = waktu musim dingin, 1 = waktu musim panas |
date.timestamp | Unix timespamp, secs since 1.1.1970 |
PB (nur cFos Power Brain)
PB.input1 | S0 Input 1, 1 = aktif, 0 = tidak aktif |
PB.input2 | S0 Input 2, 1 = aktif, 0 = tidak aktif |
CM Variabel Manajer Pengisian Daya
Variabel-variabel ini dapat diatur oleh admin di bawah 'Konfigurasi'. Sebagai contoh, jika admin mengatur variabel 'var_x' menjadi 1,5, CM.var_x mengembalikan nilai 1,5.
Variabel yang sudah ditentukan sebelumnya:
jumlah_pengisian: Jumlah kotak dinding yang sedang diisi daya
_num_charging1: Jumlah kotak dinding yang sedang diisi, 1 jika tidak ada yang sedang diisi
_max_total_arus: Arus maksimum sambungan rumah dalam mA per fase
_max_total_evse_current: Arus maksimum untuk kotak dinding dalam mA per fase
_harga: Harga listrik saat ini
tingkat_harga_listrik: Tingkat harga listrik saat ini, -2=sangat mahal, -3=mahal, -4=normal, -5=murah, -6=sangat murah
_surplus: Surplus tenaga surya saat ini dalam watt
_org_surplus: Surplus tenaga surya karena Manajer Pengisian Daya akan menghitungnya secara independen dengan rumusnya sendiri
_storage_home_max_capacity: Kapasitas total penyimpanan, rumah, jika ditentukan dalam konfigurasi meteran, dalam Wh
kapasitas_storage_home_home: Kapasitas penyimpanan saat ini, Home, jika ditentukan dalam konfigurasi meteran, dalam Wh
_storage_all_max_capacity: Kapasitas total penyimpanan, Semua, jika ditentukan dalam konfigurasi penghitung, dalam Wh
_storage_all_capacity: Kapasitas penyimpanan saat ini, Semua, jika ditentukan dalam konfigurasi penghitung, dalam Wh
_max_total_current_prc: Persentase total arus pengisian maksimum yang tersedia. Variabel ini juga dapat ditulis (dengan definisi kontra dan variabel Manajer Pengisian Daya)
_dt: Waktu yang telah berlalu sejak pembaruan terakhir (dalam detik).
Penggunaan objek global:
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
Catatan:
Di bawah Penghitung Khusus, Anda juga akan menemukan instruksi tentang cara menggunakan formula dengan variabel dan output Charging Manager global.
GM Penghitung global
GM.grid_demand | Referensi utama |
GM.consumed | Konsumsi |
GM.produced | Generasi |
GM.consumed_evse | Mobil listrik konsumsi |
GM.available_evse | Daya yang tersedia |
GM.surplus | Surplus PV |
GM.storage_home | Rumah Memori |
GM.storage_all | Memori Semuanya |
GM.error | Kinerja melalui kesalahan |
Penggunaan penghitung global
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.
Anda juga ingin membatasi arus pengisian daya sehubungan dengan meteran konsumsi flat. Untuk melakukan ini, Anda dapat menyiapkan aturan pengisian daya dengan rumus 16000 - M1.current
.
M1 adalah meteran yang mengukur konsumsi flat. Manajemen beban dari cFos Charging Manager pertama-tama mencoba menyediakan EVSE dengan arus maksimum dalam kaitannya dengan daya sambungan rumah, tetapi kemudian membatasi ini hingga 16A dikurangi konsumsi flat.
Dengan menggunakan min_price(s), max_price(s), Anda dapat menentukan harga termurah dari penyedia energi Anda dalam euro, di mana harga dicari dari waktu saat ini hingga detik maksimal pada hari itu atau pada hari berikutnya, misalnya min_price(25200) menghasilkan harga termurah hingga pukul 7:00 pagi. Sebagai contoh, Anda dapat membuat aturan pengisian daya dengan kondisi CM._price <= min_price(25200) untuk mengisi daya pada waktu yang paling menguntungkan, tetapi dengan kondisi bahwa Anda ingin memulai pengisian daya mulai pukul 8:00 pagi, misalnya (dengan asumsi waktu pengisian daya selama 1 jam). Demikian pula, ada dua fungsi min_price_secs(s) dan max_price_secs(s), yang mengembalikan waktu mulai dari harga termurah dalam hitungan detik sejak hari dimulai. Anda kemudian dapat membandingkannya dengan date.daysecond, misalnya.