iobroker.go-e-charger 1.7.0 → 1.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +33 -16
- package/admin/i18n/de.json +2 -0
- package/admin/i18n/en.json +2 -0
- package/admin/i18n/es.json +2 -0
- package/admin/i18n/fr.json +2 -0
- package/admin/i18n/it.json +2 -0
- package/admin/i18n/nl.json +2 -0
- package/admin/i18n/pl.json +2 -0
- package/admin/i18n/pt.json +2 -0
- package/admin/i18n/ru.json +2 -0
- package/admin/i18n/uk.json +2 -0
- package/admin/i18n/zh-cn.json +2 -0
- package/admin/jsonConfig.json +16 -0
- package/build/lib/chargeManagerUtils.js +123 -9
- package/build/lib/chargeManagerUtils.js.map +1 -1
- package/build/lib/projectUtils.js.map +1 -1
- package/build/main.js +161 -18
- package/build/main.js.map +1 -1
- package/io-package.json +28 -27
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -129,7 +129,7 @@ The **maximum charging current** [A] (default 16, up to 32) is configured on the
|
|
|
129
129
|
|
|
130
130
|
> **⚠️ Do not set the maximum charging current higher than your go-e Charger hardware and your electrical installation support.** go-e Charger models are rated for different maximum currents (e.g. 16 A or 32 A), and the actual limit also depends on your cable, plug and wiring. Setting a value above the hardware/installation rating can trip protection devices or damage equipment. When in doubt, keep the default of 16 A.
|
|
131
131
|
|
|
132
|
-
In the battery-aware modes, EV charging is disabled below `Settings.Setpoint_HomeBatSoC` so that the home battery has priority. Charging starts once the internal target reaches 10 A (or the minimum current if it is set higher). The calculated current is limited to the configured maximum, and the internal current target changes by at most 1 A per poll cycle to reduce sudden changes.
|
|
132
|
+
In the battery-aware modes, EV charging is disabled below `Settings.Setpoint_HomeBatSoC` so that the home battery has priority. Charging starts once the internal target reaches 10 A (or the minimum current if it is set higher); a running charge then follows the target down to the minimum current. The calculated current is limited to the configured maximum, and the internal current target changes by at most 1 A per poll cycle to reduce sudden changes.
|
|
133
133
|
|
|
134
134
|
#### Several wallboxes on one PV surplus
|
|
135
135
|
|
|
@@ -197,7 +197,19 @@ Before relying on automatic charging, verify the selected input states in the io
|
|
|
197
197
|
|
|
198
198
|
Charging may take several poll cycles to start because the internal target increases by only 1 A per cycle. With the default 10-second cycle and an initial target of 0 A, reaching the default 10 A starting point can take approximately 100 seconds.
|
|
199
199
|
|
|
200
|
-
When ChargeManager runs several wallboxes at once, the PV surplus is shared between them in wallbox-list order, so the first entry has priority and later ones only receive the remaining surplus (see [PV surplus charging with ChargeManager](#pv-surplus-charging-with-chargemanager) above).
|
|
200
|
+
When ChargeManager runs several wallboxes at once, the PV surplus is shared between them in wallbox-list order, so the first entry has priority and later ones only receive the remaining surplus (see [PV surplus charging with ChargeManager](#pv-surplus-charging-with-chargemanager) above).
|
|
201
|
+
|
|
202
|
+
#### Total current budget (fuse protection)
|
|
203
|
+
|
|
204
|
+
To protect a shared fuse or supply line feeding several wallboxes, set the **maximum total charging current** [A] on the standard settings page. It is an installation-wide budget: the summed charging current of **all** wallboxes never exceeds it, in **both** ChargeManager and ChargeNOW. Unlike the PV surplus (which is measured in watts), the fuse is protected in **amperes**, because a feed rated for e.g. 20 A carries 20 A regardless of whether a wallbox charges one- or three-phase.
|
|
205
|
+
|
|
206
|
+
The budget is allocated in priority order: ChargeNOW wallboxes first, then ChargeManager wallboxes in wallbox-list order. A wallbox that no longer fits is throttled to the remaining current, or switched off when even its minimum would not fit. While the budget is active, a wallbox without a connected vehicle is kept off and reserves nothing, so several idle wallboxes plugged in at the same time can never exceed the fuse before the next cycle re-plans, and an idle wallbox never starves one that is already charging.
|
|
207
|
+
|
|
208
|
+
A value of `0` (default) disables the budget; the adapter then does not enforce a combined limit, so make sure the sum of the per-wallbox maximum currents stays within your installation's capacity.
|
|
209
|
+
|
|
210
|
+
While the budget is active, the adapter also **follows the actually measured charging current**: if a wallbox draws noticeably less than it is allowed (e.g. a vehicle with a lower onboard-charger limit, a car tapering near full, or temperature derating), its unused current is reclaimed after a few cycles and handed to the next wallbox in priority order. The wallbox keeps a small headroom above its real draw and is offered one ampere more each cycle as long as it uses what it gets, so it can grow back to its limit. To stay safe, a wallbox is only ever throttled *down* to reclaim capacity — its command is never left high while the freed amperes are given away — so the summed current can never exceed the fuse even if a vehicle suddenly ramps back up.
|
|
211
|
+
|
|
212
|
+
> This is a conservative per-phase-agnostic model: every ampere counts against one budget regardless of which phase it lands on. It never exceeds the fuse rating, but with loads spread across phases it may leave some capacity unused.
|
|
201
213
|
|
|
202
214
|
## Sentry
|
|
203
215
|
|
|
@@ -214,6 +226,25 @@ If you enjoyed this project – or are just feeling generous – consider buying
|
|
|
214
226
|
Placeholder for the next version (at the beginning of the line):
|
|
215
227
|
### **WORK IN PROGRESS**
|
|
216
228
|
-->
|
|
229
|
+
### 1.8.1 (2026-10-11)
|
|
230
|
+
|
|
231
|
+
- (typhosj) after an automatic switch from one to three phases the ChargeManager now continues at the power the car was charging with instead of the one-phase current; 16 A on one phase used to become 16 A on three phases (about 11 kW) and came down only one ampere per cycle, drawing the difference from the battery or the grid
|
|
232
|
+
- (typhosj) after an automatic switch from three to one phase the ChargeManager now also continues at the power reached so far, capped at what the surplus carries on one phase; it used to keep the three-phase current, so a car plugged in while the charger still held three phases from the last charge took about a minute longer to start
|
|
233
|
+
|
|
234
|
+
### 1.8.0 (2026-10-04)
|
|
235
|
+
|
|
236
|
+
- (hombach) added an installation-wide total current budget (maximum total charging current) that caps the summed current of all wallboxes to protect a shared fuse, serving ChargeNOW before ChargeManager and keeping a wallbox without a connected vehicle off so idle wallboxes neither trip the fuse nor starve one that is already charging
|
|
237
|
+
- (hombach) the total current budget now follows the measured charging current: a wallbox that draws less than allowed has its unused current reclaimed after a dwell and handed to the next wallbox, growing back one ampere per cycle when it uses what it gets - reductions are always applied before increases so the summed current never exceeds the fuse
|
|
238
|
+
- (hombach) added concise debug logging for the ChargeManager control loops (surplus sharing, phase switching, total current budget)
|
|
239
|
+
- (hombach) docs: documented the total current budget
|
|
240
|
+
- (typhosj) the phase mode (`psm`) is now only written when the charger reports a different mode instead of every cycle, because it is a stored charger setting
|
|
241
|
+
- (typhosj) ChargeManager: no charge release, charging current or phase switch is sent while no vehicle is plugged in, and an unchanged release or current is no longer re-sent every cycle - each write woke the charger's LEDs
|
|
242
|
+
- (typhosj) the charging current is no longer re-sent every cycle: the charger reports a written `amx` back as 0 and only shows the applied current in `amp`, so the check for an unchanged value never matched
|
|
243
|
+
- (typhosj) the charge release is no longer re-sent on every single cycle while the vehicle reports that it has finished charging - the charger confirms each write and keeps ignoring it, for up to 90 minutes in one logged case; it is still retried, just at a lower rate after the first five minutes
|
|
244
|
+
- (typhosj) ChargeManager: the charging current no longer follows a one-ampere change of its target, so a passing cloud no longer makes it step back and forth every cycle
|
|
245
|
+
- (typhosj) ChargeManager: a running charge now follows a falling surplus down to the minimum current - the 10 A start current also applied to a running charge, so currents between the minimum and 10 A were never written and the charger stayed at the 10 A written last, drawing the difference from the grid or the home battery until the surplus recovered or the shutdown delay ran out
|
|
246
|
+
- (hombach) updated dependencies
|
|
247
|
+
|
|
217
248
|
### 1.7.0 (2026-09-18)
|
|
218
249
|
|
|
219
250
|
- (typhosj) admin: the wallbox list now explains that its order is the ChargeManager priority - the first entry receives the PV surplus first, later entries only the remainder
|
|
@@ -239,20 +270,6 @@ If you enjoyed this project – or are just feeling generous – consider buying
|
|
|
239
270
|
- (typhosj) ChargeManager: added a battery SoC hysteresis and an optional maximum SoC age so surplus control stops on stale battery data
|
|
240
271
|
- (hombach) admin: moved the maximum charging current to the standard settings tab and clarified that it is an installation-wide limit of the shared power supply, valid for all wallboxes and both charging modes
|
|
241
272
|
|
|
242
|
-
### 1.5.0 (2026-08-25)
|
|
243
|
-
|
|
244
|
-
- (hombach) ChargeManager: grid reserve power and maximum battery bonus are now configurable (defaults 100 W / 2000 W) (#852)
|
|
245
|
-
- (hombach) ChargeManager: minimum and maximum surplus charging current are now configurable, with the maximum raised to up to 32 A (#852)
|
|
246
|
-
- (hombach) the configurable maximum charging current now caps ChargeNOW as well
|
|
247
|
-
- (hombach) admin: moved the ChargeManager settings into their own configuration tab, separate from the standard settings
|
|
248
|
-
- (hombach) updated dependencies
|
|
249
|
-
|
|
250
|
-
### 1.4.1 (2026-08-23)
|
|
251
|
-
|
|
252
|
-
- (typhosj) refactored the ChargeManager control decision into a deterministic, unit-tested function (#846); behavior unchanged
|
|
253
|
-
- (hombach) fixed vulnerabilities
|
|
254
|
-
- (hombach) updated dependencies
|
|
255
|
-
|
|
256
273
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
257
274
|
|
|
258
275
|
## License
|
package/admin/i18n/de.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Name der Wallbox",
|
|
20
20
|
"LBL_cycleTime": "Abrufintervall der Daten von der Wallbox [ms]",
|
|
21
21
|
"LBL_ipAddress": "IP-Adresse des go-eChargers",
|
|
22
|
+
"LBL_maxAmpTotal": "Maximaler Gesamtladestrom über alle Wallboxen [A] (0 = deaktiviert)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Anlagen-Strombudget zum Schutz der Zuleitungssicherung. Der Summenstrom aller Wallboxen überschreitet diesen Wert nie; ChargeNOW wird zuerst bedient, dann ChargeManager nach Priorität. 0 deaktiviert die Begrenzung.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Maximaler Ladestrom des Anschlusses für alle Wallboxen [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Anlagenweites Limit (Hauptsicherung / Anschluss). Begrenzt ChargeManager (PV-Überschuss) und ChargeNOW jeder Wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Nur-Lese-Modus – es wird keine Ladefreigabe an die Wallbox gesendet (für Betrieb mit RFID-Tags)",
|
package/admin/i18n/en.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Charger name",
|
|
20
20
|
"LBL_cycleTime": "Time between data polls from the charger [ms]",
|
|
21
21
|
"LBL_ipAddress": "IP address of the go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Maximum total charging current across all wallboxes [A] (0 = disabled)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Installation current budget protecting the supply fuse. The summed current of all wallboxes never exceeds it; ChargeNOW is served first, then ChargeManager by priority. 0 disables the limit.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Maximum charging current of the power supply for all wallboxes [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Installation-wide limit (main breaker / supply). Caps ChargeManager (PV surplus) and ChargeNOW for every wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Read-only mode - charging release is not sent to the charger (for use with RFID tags)",
|
package/admin/i18n/es.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Nombre del cargador",
|
|
20
20
|
"LBL_cycleTime": "Intervalo de consulta de datos del cargador [ms]",
|
|
21
21
|
"LBL_ipAddress": "Dirección IP del go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Corriente de carga total máxima de todas las wallboxes [A] (0 = desactivado)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Presupuesto de corriente de la instalación para proteger el fusible de la acometida. La corriente sumada de todas las wallboxes nunca lo supera; ChargeNOW se atiende primero, luego ChargeManager por prioridad. 0 desactiva el límite.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Corriente máxima de la acometida para todas las wallbox [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Límite de toda la instalación (interruptor principal / acometida). Limita ChargeManager (excedente FV) y ChargeNOW en cada wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Modo de solo lectura: no se envía la autorización de carga al cargador (para usar con etiquetas RFID)",
|
package/admin/i18n/fr.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Nom du chargeur",
|
|
20
20
|
"LBL_cycleTime": "Intervalle d'interrogation des données du chargeur [ms]",
|
|
21
21
|
"LBL_ipAddress": "Adresse IP du go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Courant de charge total maximal pour toutes les wallboxes [A] (0 = désactivé)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Budget de courant de l'installation protégeant le fusible d'alimentation. Le courant cumulé de toutes les wallboxes ne le dépasse jamais ; ChargeNOW est servi en premier, puis ChargeManager par priorité. 0 désactive la limite.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Courant de charge maximal de l'alimentation pour toutes les wallbox [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Limite globale de l'installation (disjoncteur principal / alimentation). Plafonne ChargeManager (surplus PV) et ChargeNOW pour chaque wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Mode lecture seule - l'autorisation de charge n'est pas envoyée au chargeur (pour une utilisation avec badges RFID)",
|
package/admin/i18n/it.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Nome della wallbox",
|
|
20
20
|
"LBL_cycleTime": "Intervallo di lettura dei dati dalla wallbox [ms]",
|
|
21
21
|
"LBL_ipAddress": "Indirizzo IP del go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Corrente di carica totale massima per tutte le wallbox [A] (0 = disattivato)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Budget di corrente dell'impianto per proteggere il fusibile di alimentazione. La corrente totale di tutte le wallbox non lo supera mai; ChargeNOW viene servito per primo, poi ChargeManager per priorità. 0 disattiva il limite.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Corrente di carica massima dell'impianto per tutte le wallbox [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Limite dell'intero impianto (interruttore generale / alimentazione). Vincola ChargeManager (surplus FV) e ChargeNOW per ogni wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Modalità di sola lettura: l'abilitazione alla carica non viene inviata alla wallbox (per l'uso con tag RFID)",
|
package/admin/i18n/nl.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Naam van de wallbox",
|
|
20
20
|
"LBL_cycleTime": "Interval tussen data-uitlezingen van de wallbox [ms]",
|
|
21
21
|
"LBL_ipAddress": "IP-adres van de go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Maximale totale laadstroom over alle wallboxen [A] (0 = uitgeschakeld)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Stroombudget van de installatie ter bescherming van de hoofdzekering. De opgetelde stroom van alle wallboxen overschrijdt dit nooit; ChargeNOW wordt eerst bediend, daarna ChargeManager op prioriteit. 0 schakelt de limiet uit.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Maximale laadstroom van de voeding voor alle wallboxen [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Limiet voor de hele installatie (hoofdzekering / voeding). Begrenst ChargeManager (PV-overschot) en ChargeNOW voor elke wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Alleen-lezen modus - laadvrijgave wordt niet naar de wallbox gestuurd (voor gebruik met RFID-tags)",
|
package/admin/i18n/pl.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Nazwa ładowarki",
|
|
20
20
|
"LBL_cycleTime": "Odstęp między odpytaniami danych z ładowarki [ms]",
|
|
21
21
|
"LBL_ipAddress": "Adres IP go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Maksymalny łączny prąd ładowania wszystkich wallboxów [A] (0 = wyłączone)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Budżet prądowy instalacji chroniący bezpiecznik zasilania. Sumaryczny prąd wszystkich wallboxów nigdy go nie przekracza; najpierw obsługiwany jest ChargeNOW, potem ChargeManager według priorytetu. 0 wyłącza limit.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Maksymalny prąd ładowania zasilania dla wszystkich wallboxów [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Limit całej instalacji (bezpiecznik główny / zasilanie). Ogranicza ChargeManager (nadwyżka PV) i ChargeNOW dla każdego wallboxa.",
|
|
24
26
|
"LBL_readOnlyMode": "Tryb tylko do odczytu – zezwolenie na ładowanie nie jest wysyłane do ładowarki (do użytku z tagami RFID)",
|
package/admin/i18n/pt.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Nome do carregador",
|
|
20
20
|
"LBL_cycleTime": "Intervalo entre leituras de dados do carregador [ms]",
|
|
21
21
|
"LBL_ipAddress": "Endereço IP do go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Corrente de carga total máxima de todas as wallboxes [A] (0 = desativado)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Orçamento de corrente da instalação para proteger o fusível de alimentação. A corrente somada de todas as wallboxes nunca o excede; o ChargeNOW é servido primeiro, depois o ChargeManager por prioridade. 0 desativa o limite.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Corrente máxima de carga da alimentação para todas as wallboxes [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Limite de toda a instalação (disjuntor principal / alimentação). Limita o ChargeManager (excedente FV) e o ChargeNOW em cada wallbox.",
|
|
24
26
|
"LBL_readOnlyMode": "Modo somente leitura - a liberação de carga não é enviada ao carregador (para uso com tags RFID)",
|
package/admin/i18n/ru.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Название станции",
|
|
20
20
|
"LBL_cycleTime": "Интервал опроса зарядной станции [мс]",
|
|
21
21
|
"LBL_ipAddress": "IP-адрес go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Максимальный суммарный ток зарядки всех wallbox [А] (0 = отключено)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Токовый бюджет установки для защиты питающего предохранителя. Суммарный ток всех wallbox никогда его не превышает; сначала обслуживается ChargeNOW, затем ChargeManager по приоритету. 0 отключает ограничение.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Максимальный ток электросети на все зарядные станции [А]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Общий лимит установки (главный автомат / ввод). Ограничивает ChargeManager (избыток PV) и ChargeNOW для каждой зарядной станции.",
|
|
24
26
|
"LBL_readOnlyMode": "Режим только для чтения — разрешение на зарядку не передаётся станции (для работы с метками RFID)",
|
package/admin/i18n/uk.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "Назва зарядної станції",
|
|
20
20
|
"LBL_cycleTime": "Інтервал опитування даних зарядної станції [мс]",
|
|
21
21
|
"LBL_ipAddress": "IP-адреса go-eCharger",
|
|
22
|
+
"LBL_maxAmpTotal": "Максимальний сумарний струм заряджання всіх wallbox [А] (0 = вимкнено)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "Струмовий бюджет установки для захисту живильного запобіжника. Сумарний струм усіх wallbox ніколи його не перевищує; спочатку обслуговується ChargeNOW, потім ChargeManager за пріоритетом. 0 вимикає обмеження.",
|
|
22
24
|
"LBL_maxChargeCurrent": "Максимальний струм живлення для всіх зарядних станцій [А]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "Обмеження для всієї установки (головний автомат / живлення). Обмежує ChargeManager (надлишок ФЕ) і ChargeNOW для кожної зарядної станції.",
|
|
24
26
|
"LBL_readOnlyMode": "Режим лише для читання — дозвіл на заряджання не надсилається до зарядної станції (для роботи з мітками RFID)",
|
package/admin/i18n/zh-cn.json
CHANGED
|
@@ -19,6 +19,8 @@
|
|
|
19
19
|
"LBL_chargerName": "充电桩名称",
|
|
20
20
|
"LBL_cycleTime": "从充电桩读取数据的间隔 [ms]",
|
|
21
21
|
"LBL_ipAddress": "go-eCharger 的 IP 地址",
|
|
22
|
+
"LBL_maxAmpTotal": "所有充电桩的最大总充电电流 [A](0 = 禁用)",
|
|
23
|
+
"LBL_maxAmpTotalHelp": "用于保护供电保险丝的安装电流预算。所有充电桩的电流总和绝不会超过此值;先分配 ChargeNOW,再按优先级分配 ChargeManager。0 表示禁用该限制。",
|
|
22
24
|
"LBL_maxChargeCurrent": "供电电源对所有充电桩的最大充电电流 [A]",
|
|
23
25
|
"LBL_maxChargeCurrentHelp": "整个电气装置的上限(主断路器/供电)。对每个充电桩的 ChargeManager(光伏盈余)和 ChargeNOW 均生效。",
|
|
24
26
|
"LBL_readOnlyMode": "只读模式——不向充电桩发送充电许可(配合 RFID 标签使用)",
|
package/admin/jsonConfig.json
CHANGED
|
@@ -38,6 +38,22 @@
|
|
|
38
38
|
"xl": 6,
|
|
39
39
|
"newLine": false
|
|
40
40
|
},
|
|
41
|
+
"maxAmpTotal": {
|
|
42
|
+
"type": "number",
|
|
43
|
+
"label": "LBL_maxAmpTotal",
|
|
44
|
+
"help": "LBL_maxAmpTotalHelp",
|
|
45
|
+
"default": 0,
|
|
46
|
+
"min": 6,
|
|
47
|
+
"max": 64,
|
|
48
|
+
"step": 1,
|
|
49
|
+
"unit": "A",
|
|
50
|
+
"xs": 12,
|
|
51
|
+
"sm": 6,
|
|
52
|
+
"md": 6,
|
|
53
|
+
"lg": 6,
|
|
54
|
+
"xl": 6,
|
|
55
|
+
"newLine": true
|
|
56
|
+
},
|
|
41
57
|
"wallBoxList": {
|
|
42
58
|
"type": "accordion",
|
|
43
59
|
"titleAttr": "chargerName",
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PHASE_SWITCH_DELAY_CYCLES = exports.PHASE_VOLTAGE = exports.DEFAULT_MAXIMUM_BATTERY_BONUS = exports.DEFAULT_RESERVE_POWER = exports.SHUTDOWN_DELAY_CYCLES = exports.START_CHARGE_CURRENT = exports.MAX_CHARGE_CURRENT = exports.MIN_CHARGE_CURRENT = void 0;
|
|
3
|
+
exports.DEMAND_HEADROOM = exports.RECLAIM_DELAY_CYCLES = exports.DEMAND_DEADBAND = exports.RELEASE_RETRY_INTERVAL = exports.RELEASE_RETRY_LIMIT = exports.CAR_STATE_FINISHED = exports.CURRENT_DEADBAND = exports.PHASE_SWITCH_DELAY_CYCLES = exports.PHASE_VOLTAGE = exports.DEFAULT_MAXIMUM_BATTERY_BONUS = exports.DEFAULT_RESERVE_POWER = exports.SHUTDOWN_DELAY_CYCLES = exports.START_CHARGE_CURRENT = exports.MAX_CHARGE_CURRENT = exports.MIN_CHARGE_CURRENT = void 0;
|
|
4
4
|
exports.resolveWallboxCurrentLimits = resolveWallboxCurrentLimits;
|
|
5
5
|
exports.evaluateBatteryAvailability = evaluateBatteryAvailability;
|
|
6
6
|
exports.calculateAvailableSurplusPower = calculateAvailableSurplusPower;
|
|
7
7
|
exports.calculateOptimalChargeCurrent = calculateOptimalChargeCurrent;
|
|
8
|
+
exports.resolveStartChargeCurrent = resolveStartChargeCurrent;
|
|
8
9
|
exports.stepChargeCurrent = stepChargeCurrent;
|
|
9
10
|
exports.updateShutdownDelay = updateShutdownDelay;
|
|
10
11
|
exports.decideChargeManager = decideChargeManager;
|
|
11
12
|
exports.decideChargeManagerFleet = decideChargeManagerFleet;
|
|
12
13
|
exports.decidePhaseSwitch = decidePhaseSwitch;
|
|
14
|
+
exports.carryCurrentOverPhaseSwitch = carryCurrentOverPhaseSwitch;
|
|
15
|
+
exports.phaseModeToSend = phaseModeToSend;
|
|
16
|
+
exports.isVehicleDisconnected = isVehicleDisconnected;
|
|
17
|
+
exports.updateReleaseRejects = updateReleaseRejects;
|
|
18
|
+
exports.holdRejectedRelease = holdRejectedRelease;
|
|
19
|
+
exports.dropUnchangedChargerCommands = dropUnchangedChargerCommands;
|
|
13
20
|
exports.buildChargerCommands = buildChargerCommands;
|
|
21
|
+
exports.limitTotalCurrent = limitTotalCurrent;
|
|
22
|
+
exports.effectiveCurrentDemand = effectiveCurrentDemand;
|
|
14
23
|
exports.MIN_CHARGE_CURRENT = 6;
|
|
15
24
|
exports.MAX_CHARGE_CURRENT = 32;
|
|
16
25
|
exports.START_CHARGE_CURRENT = 10;
|
|
@@ -105,15 +114,24 @@ function calculateOptimalChargeCurrent(input) {
|
|
|
105
114
|
const calculatedCurrent = Math.floor(availablePower / exports.PHASE_VOLTAGE / input.phases);
|
|
106
115
|
return Math.max(0, Math.min(calculatedCurrent, input.maximumChargeCurrent));
|
|
107
116
|
}
|
|
108
|
-
function
|
|
117
|
+
function resolveStartChargeCurrent(minimum, maximum) {
|
|
118
|
+
return Math.min(Math.max(exports.START_CHARGE_CURRENT, minimum), maximum);
|
|
119
|
+
}
|
|
120
|
+
exports.CURRENT_DEADBAND = 2;
|
|
121
|
+
function stepChargeCurrent(current, target, maximum = exports.MAX_CHARGE_CURRENT, minimum = exports.MIN_CHARGE_CURRENT) {
|
|
109
122
|
const safeMaximum = Number.isInteger(maximum) && maximum >= exports.MIN_CHARGE_CURRENT && maximum <= exports.MAX_CHARGE_CURRENT ? maximum : exports.MAX_CHARGE_CURRENT;
|
|
123
|
+
const safeMinimum = Number.isInteger(minimum) && minimum >= exports.MIN_CHARGE_CURRENT && minimum <= safeMaximum ? minimum : exports.MIN_CHARGE_CURRENT;
|
|
110
124
|
const safeCurrent = Number.isFinite(current) ? Math.max(0, Math.min(Math.trunc(current), safeMaximum)) : 0;
|
|
111
125
|
const safeTarget = Number.isFinite(target) ? Math.max(0, Math.min(Math.trunc(target), safeMaximum)) : 0;
|
|
112
|
-
|
|
113
|
-
|
|
126
|
+
const gap = safeTarget - safeCurrent;
|
|
127
|
+
if (gap === 0) {
|
|
128
|
+
return safeCurrent;
|
|
114
129
|
}
|
|
115
|
-
|
|
116
|
-
|
|
130
|
+
const start = resolveStartChargeCurrent(safeMinimum, safeMaximum);
|
|
131
|
+
const reachesStart = safeCurrent < start && safeTarget >= start;
|
|
132
|
+
const atRangeEnd = safeTarget <= safeMinimum || safeTarget === safeMaximum || reachesStart;
|
|
133
|
+
if (atRangeEnd || Math.abs(gap) >= exports.CURRENT_DEADBAND) {
|
|
134
|
+
return safeCurrent + Math.sign(gap);
|
|
117
135
|
}
|
|
118
136
|
return safeCurrent;
|
|
119
137
|
}
|
|
@@ -137,11 +155,11 @@ function decideChargeManager(input) {
|
|
|
137
155
|
nextState: { currentAmp: 0, shutdownDelay: 0 },
|
|
138
156
|
};
|
|
139
157
|
}
|
|
140
|
-
const currentAmp = stepChargeCurrent(input.state.currentAmp, optimalCurrent, input.maximumChargeCurrent);
|
|
141
|
-
const startChargeCurrent =
|
|
158
|
+
const currentAmp = stepChargeCurrent(input.state.currentAmp, optimalCurrent, input.maximumChargeCurrent, input.minimumChargeCurrent);
|
|
159
|
+
const startChargeCurrent = resolveStartChargeCurrent(input.minimumChargeCurrent, input.maximumChargeCurrent);
|
|
142
160
|
const isRampingToRaisedMinimum = input.minimumChargeCurrent > exports.START_CHARGE_CURRENT && optimalCurrent >= input.minimumChargeCurrent && currentAmp < input.minimumChargeCurrent;
|
|
143
161
|
let shutdownDelay = isRampingToRaisedMinimum ? 0 : updateShutdownDelay(currentAmp, input.minimumChargeCurrent, input.state.shutdownDelay);
|
|
144
|
-
if (currentAmp >= startChargeCurrent) {
|
|
162
|
+
if (currentAmp >= (input.released === true ? input.minimumChargeCurrent : startChargeCurrent)) {
|
|
145
163
|
return {
|
|
146
164
|
action: "enable",
|
|
147
165
|
reason: "charging-current",
|
|
@@ -183,6 +201,7 @@ function decideChargeManagerFleet(shared, participants) {
|
|
|
183
201
|
minimumChargeCurrent: participant.minimumChargeCurrent,
|
|
184
202
|
phases: participant.phases,
|
|
185
203
|
state: participant.state,
|
|
204
|
+
released: participant.released,
|
|
186
205
|
});
|
|
187
206
|
const availablePower = calculateAvailableSurplusPower(surplus) ?? 0;
|
|
188
207
|
if (participant.claimsPower) {
|
|
@@ -217,6 +236,47 @@ function decidePhaseSwitch(input) {
|
|
|
217
236
|
}
|
|
218
237
|
return { targetPhases: input.currentPhases, switchDelay };
|
|
219
238
|
}
|
|
239
|
+
function carryCurrentOverPhaseSwitch(currentAmp, fromPhases, toPhases, minimumChargeCurrent, maximumChargeCurrent, availablePower) {
|
|
240
|
+
if ((fromPhases !== 1 && fromPhases !== 3) || (toPhases !== 1 && toPhases !== 3) || !Number.isFinite(minimumChargeCurrent)) {
|
|
241
|
+
return currentAmp;
|
|
242
|
+
}
|
|
243
|
+
const samePower = Math.floor((currentAmp * fromPhases) / toPhases);
|
|
244
|
+
if (toPhases >= fromPhases) {
|
|
245
|
+
return Math.min(currentAmp, Math.max(minimumChargeCurrent, samePower));
|
|
246
|
+
}
|
|
247
|
+
if (!Number.isFinite(maximumChargeCurrent) || !Number.isFinite(availablePower)) {
|
|
248
|
+
return currentAmp;
|
|
249
|
+
}
|
|
250
|
+
return Math.max(0, Math.min(samePower, Math.floor(availablePower / exports.PHASE_VOLTAGE / toPhases), maximumChargeCurrent));
|
|
251
|
+
}
|
|
252
|
+
function phaseModeToSend(charge3Phase, enabledPhases) {
|
|
253
|
+
if (enabledPhases === (charge3Phase ? 3 : 1)) {
|
|
254
|
+
return null;
|
|
255
|
+
}
|
|
256
|
+
return charge3Phase ? 2 : 1;
|
|
257
|
+
}
|
|
258
|
+
function isVehicleDisconnected(carState) {
|
|
259
|
+
return carState === 1;
|
|
260
|
+
}
|
|
261
|
+
exports.CAR_STATE_FINISHED = 4;
|
|
262
|
+
exports.RELEASE_RETRY_LIMIT = 30;
|
|
263
|
+
exports.RELEASE_RETRY_INTERVAL = 6;
|
|
264
|
+
function updateReleaseRejects(reportedAllow, requestedAllow, previous) {
|
|
265
|
+
if (requestedAllow === null || !Number.isFinite(reportedAllow) || reportedAllow === requestedAllow) {
|
|
266
|
+
return 0;
|
|
267
|
+
}
|
|
268
|
+
return (Number.isFinite(previous) ? Math.max(0, Math.trunc(previous)) : 0) + 1;
|
|
269
|
+
}
|
|
270
|
+
function holdRejectedRelease(rejects, carState) {
|
|
271
|
+
if (carState !== exports.CAR_STATE_FINISHED || !Number.isFinite(rejects) || rejects < exports.RELEASE_RETRY_LIMIT) {
|
|
272
|
+
return false;
|
|
273
|
+
}
|
|
274
|
+
return (Math.trunc(rejects) - exports.RELEASE_RETRY_LIMIT) % exports.RELEASE_RETRY_INTERVAL !== 0;
|
|
275
|
+
}
|
|
276
|
+
const COMMAND_READBACK = { alw: "alw", amp: "amp", amx: "amp" };
|
|
277
|
+
function dropUnchangedChargerCommands(commands, reported) {
|
|
278
|
+
return commands.filter(command => reported[COMMAND_READBACK[command.parameter]] !== command.value);
|
|
279
|
+
}
|
|
220
280
|
function buildChargerCommands(allow, ampere, firmware) {
|
|
221
281
|
if (!allow) {
|
|
222
282
|
return [{ parameter: "alw", value: 0 }];
|
|
@@ -229,4 +289,58 @@ function buildChargerCommands(allow, ampere, firmware) {
|
|
|
229
289
|
{ parameter: "alw", value: 1 },
|
|
230
290
|
];
|
|
231
291
|
}
|
|
292
|
+
function limitTotalCurrent(participants, maxAmpTotal) {
|
|
293
|
+
if (!Number.isFinite(maxAmpTotal) || maxAmpTotal <= 0) {
|
|
294
|
+
return participants.map(p => ({ allow: p.requestedAmp > 0, ampere: p.requestedAmp > 0 ? p.requestedAmp : 0 }));
|
|
295
|
+
}
|
|
296
|
+
const budget = Math.floor(maxAmpTotal);
|
|
297
|
+
const allocations = participants.map(() => ({ allow: false, ampere: 0 }));
|
|
298
|
+
const order = participants.map((_, index) => index).sort((a, b) => Number(participants[b].chargeNow) - Number(participants[a].chargeNow));
|
|
299
|
+
let used = 0;
|
|
300
|
+
for (const index of order) {
|
|
301
|
+
const participant = participants[index];
|
|
302
|
+
if (participant.requestedAmp <= 0) {
|
|
303
|
+
continue;
|
|
304
|
+
}
|
|
305
|
+
const min = Math.max(exports.MIN_CHARGE_CURRENT, Math.floor(participant.minAmp));
|
|
306
|
+
const want = Math.min(Math.floor(participant.requestedAmp), budget);
|
|
307
|
+
const remaining = budget - used;
|
|
308
|
+
if (want <= remaining) {
|
|
309
|
+
allocations[index] = { allow: true, ampere: want };
|
|
310
|
+
used += want;
|
|
311
|
+
}
|
|
312
|
+
else if (remaining >= min) {
|
|
313
|
+
allocations[index] = { allow: true, ampere: remaining };
|
|
314
|
+
used += remaining;
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
return allocations;
|
|
318
|
+
}
|
|
319
|
+
exports.DEMAND_DEADBAND = 1;
|
|
320
|
+
exports.RECLAIM_DELAY_CYCLES = 3;
|
|
321
|
+
exports.DEMAND_HEADROOM = 1;
|
|
322
|
+
function effectiveCurrentDemand(input) {
|
|
323
|
+
const { commandedAmp, measuredAmp, wishAmp, minAmp, maxAmp, reclaimDelay } = input;
|
|
324
|
+
if (![commandedAmp, measuredAmp, wishAmp, minAmp, maxAmp, reclaimDelay].every(Number.isFinite)) {
|
|
325
|
+
return { demand: Number.isFinite(wishAmp) ? Math.max(0, Math.floor(wishAmp)) : 0, reclaimDelay: 0 };
|
|
326
|
+
}
|
|
327
|
+
const wish = Math.max(0, Math.min(Math.floor(wishAmp), Math.floor(maxAmp)));
|
|
328
|
+
const measured = Math.floor(measuredAmp);
|
|
329
|
+
const commanded = Math.floor(commandedAmp);
|
|
330
|
+
const floor = Math.max(exports.MIN_CHARGE_CURRENT, Math.floor(minAmp));
|
|
331
|
+
if (measured < exports.MIN_CHARGE_CURRENT) {
|
|
332
|
+
return { demand: wish, reclaimDelay: 0 };
|
|
333
|
+
}
|
|
334
|
+
if (measured >= commanded) {
|
|
335
|
+
return { demand: Math.min(wish, commanded + exports.DEMAND_HEADROOM), reclaimDelay: 0 };
|
|
336
|
+
}
|
|
337
|
+
if (measured >= commanded - exports.DEMAND_DEADBAND) {
|
|
338
|
+
return { demand: Math.min(wish, commanded), reclaimDelay: 0 };
|
|
339
|
+
}
|
|
340
|
+
const nextDelay = reclaimDelay + 1;
|
|
341
|
+
if (nextDelay <= exports.RECLAIM_DELAY_CYCLES) {
|
|
342
|
+
return { demand: Math.min(wish, commanded), reclaimDelay: nextDelay };
|
|
343
|
+
}
|
|
344
|
+
return { demand: Math.min(wish, Math.max(floor, measured + exports.DEMAND_HEADROOM)), reclaimDelay: nextDelay };
|
|
345
|
+
}
|
|
232
346
|
//# sourceMappingURL=chargeManagerUtils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chargeManagerUtils.js","sourceRoot":"","sources":["../../src/lib/chargeManagerUtils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chargeManagerUtils.js","sourceRoot":"","sources":["../../src/lib/chargeManagerUtils.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectUtils.js","sourceRoot":"","sources":["../../src/lib/projectUtils.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"projectUtils.js","sourceRoot":"","sources":["../../src/lib/projectUtils.ts"],"names":[],"mappings":"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"}
|