iobroker.go-e-charger 1.7.0 → 1.8.0
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 +28 -8
- 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 +109 -9
- package/build/lib/chargeManagerUtils.js.map +1 -1
- package/build/lib/projectUtils.js.map +1 -1
- package/build/main.js +160 -18
- package/build/main.js.map +1 -1
- package/io-package.json +15 -14
- 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,20 @@ 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.0 (2026-10-04)
|
|
230
|
+
|
|
231
|
+
- (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
|
|
232
|
+
- (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
|
|
233
|
+
- (hombach) added concise debug logging for the ChargeManager control loops (surplus sharing, phase switching, total current budget)
|
|
234
|
+
- (hombach) docs: documented the total current budget
|
|
235
|
+
- (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
|
|
236
|
+
- (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
|
|
237
|
+
- (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
|
|
238
|
+
- (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
|
|
239
|
+
- (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
|
|
240
|
+
- (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
|
|
241
|
+
- (hombach) updated dependencies
|
|
242
|
+
|
|
217
243
|
### 1.7.0 (2026-09-18)
|
|
218
244
|
|
|
219
245
|
- (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
|
|
@@ -247,12 +273,6 @@ If you enjoyed this project – or are just feeling generous – consider buying
|
|
|
247
273
|
- (hombach) admin: moved the ChargeManager settings into their own configuration tab, separate from the standard settings
|
|
248
274
|
- (hombach) updated dependencies
|
|
249
275
|
|
|
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
276
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
257
277
|
|
|
258
278
|
## 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,24 @@
|
|
|
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.phaseModeToSend = phaseModeToSend;
|
|
15
|
+
exports.isVehicleDisconnected = isVehicleDisconnected;
|
|
16
|
+
exports.updateReleaseRejects = updateReleaseRejects;
|
|
17
|
+
exports.holdRejectedRelease = holdRejectedRelease;
|
|
18
|
+
exports.dropUnchangedChargerCommands = dropUnchangedChargerCommands;
|
|
13
19
|
exports.buildChargerCommands = buildChargerCommands;
|
|
20
|
+
exports.limitTotalCurrent = limitTotalCurrent;
|
|
21
|
+
exports.effectiveCurrentDemand = effectiveCurrentDemand;
|
|
14
22
|
exports.MIN_CHARGE_CURRENT = 6;
|
|
15
23
|
exports.MAX_CHARGE_CURRENT = 32;
|
|
16
24
|
exports.START_CHARGE_CURRENT = 10;
|
|
@@ -105,15 +113,24 @@ function calculateOptimalChargeCurrent(input) {
|
|
|
105
113
|
const calculatedCurrent = Math.floor(availablePower / exports.PHASE_VOLTAGE / input.phases);
|
|
106
114
|
return Math.max(0, Math.min(calculatedCurrent, input.maximumChargeCurrent));
|
|
107
115
|
}
|
|
108
|
-
function
|
|
116
|
+
function resolveStartChargeCurrent(minimum, maximum) {
|
|
117
|
+
return Math.min(Math.max(exports.START_CHARGE_CURRENT, minimum), maximum);
|
|
118
|
+
}
|
|
119
|
+
exports.CURRENT_DEADBAND = 2;
|
|
120
|
+
function stepChargeCurrent(current, target, maximum = exports.MAX_CHARGE_CURRENT, minimum = exports.MIN_CHARGE_CURRENT) {
|
|
109
121
|
const safeMaximum = Number.isInteger(maximum) && maximum >= exports.MIN_CHARGE_CURRENT && maximum <= exports.MAX_CHARGE_CURRENT ? maximum : exports.MAX_CHARGE_CURRENT;
|
|
122
|
+
const safeMinimum = Number.isInteger(minimum) && minimum >= exports.MIN_CHARGE_CURRENT && minimum <= safeMaximum ? minimum : exports.MIN_CHARGE_CURRENT;
|
|
110
123
|
const safeCurrent = Number.isFinite(current) ? Math.max(0, Math.min(Math.trunc(current), safeMaximum)) : 0;
|
|
111
124
|
const safeTarget = Number.isFinite(target) ? Math.max(0, Math.min(Math.trunc(target), safeMaximum)) : 0;
|
|
112
|
-
|
|
113
|
-
|
|
125
|
+
const gap = safeTarget - safeCurrent;
|
|
126
|
+
if (gap === 0) {
|
|
127
|
+
return safeCurrent;
|
|
114
128
|
}
|
|
115
|
-
|
|
116
|
-
|
|
129
|
+
const start = resolveStartChargeCurrent(safeMinimum, safeMaximum);
|
|
130
|
+
const reachesStart = safeCurrent < start && safeTarget >= start;
|
|
131
|
+
const atRangeEnd = safeTarget <= safeMinimum || safeTarget === safeMaximum || reachesStart;
|
|
132
|
+
if (atRangeEnd || Math.abs(gap) >= exports.CURRENT_DEADBAND) {
|
|
133
|
+
return safeCurrent + Math.sign(gap);
|
|
117
134
|
}
|
|
118
135
|
return safeCurrent;
|
|
119
136
|
}
|
|
@@ -137,11 +154,11 @@ function decideChargeManager(input) {
|
|
|
137
154
|
nextState: { currentAmp: 0, shutdownDelay: 0 },
|
|
138
155
|
};
|
|
139
156
|
}
|
|
140
|
-
const currentAmp = stepChargeCurrent(input.state.currentAmp, optimalCurrent, input.maximumChargeCurrent);
|
|
141
|
-
const startChargeCurrent =
|
|
157
|
+
const currentAmp = stepChargeCurrent(input.state.currentAmp, optimalCurrent, input.maximumChargeCurrent, input.minimumChargeCurrent);
|
|
158
|
+
const startChargeCurrent = resolveStartChargeCurrent(input.minimumChargeCurrent, input.maximumChargeCurrent);
|
|
142
159
|
const isRampingToRaisedMinimum = input.minimumChargeCurrent > exports.START_CHARGE_CURRENT && optimalCurrent >= input.minimumChargeCurrent && currentAmp < input.minimumChargeCurrent;
|
|
143
160
|
let shutdownDelay = isRampingToRaisedMinimum ? 0 : updateShutdownDelay(currentAmp, input.minimumChargeCurrent, input.state.shutdownDelay);
|
|
144
|
-
if (currentAmp >= startChargeCurrent) {
|
|
161
|
+
if (currentAmp >= (input.released === true ? input.minimumChargeCurrent : startChargeCurrent)) {
|
|
145
162
|
return {
|
|
146
163
|
action: "enable",
|
|
147
164
|
reason: "charging-current",
|
|
@@ -183,6 +200,7 @@ function decideChargeManagerFleet(shared, participants) {
|
|
|
183
200
|
minimumChargeCurrent: participant.minimumChargeCurrent,
|
|
184
201
|
phases: participant.phases,
|
|
185
202
|
state: participant.state,
|
|
203
|
+
released: participant.released,
|
|
186
204
|
});
|
|
187
205
|
const availablePower = calculateAvailableSurplusPower(surplus) ?? 0;
|
|
188
206
|
if (participant.claimsPower) {
|
|
@@ -217,6 +235,34 @@ function decidePhaseSwitch(input) {
|
|
|
217
235
|
}
|
|
218
236
|
return { targetPhases: input.currentPhases, switchDelay };
|
|
219
237
|
}
|
|
238
|
+
function phaseModeToSend(charge3Phase, enabledPhases) {
|
|
239
|
+
if (enabledPhases === (charge3Phase ? 3 : 1)) {
|
|
240
|
+
return null;
|
|
241
|
+
}
|
|
242
|
+
return charge3Phase ? 2 : 1;
|
|
243
|
+
}
|
|
244
|
+
function isVehicleDisconnected(carState) {
|
|
245
|
+
return carState === 1;
|
|
246
|
+
}
|
|
247
|
+
exports.CAR_STATE_FINISHED = 4;
|
|
248
|
+
exports.RELEASE_RETRY_LIMIT = 30;
|
|
249
|
+
exports.RELEASE_RETRY_INTERVAL = 6;
|
|
250
|
+
function updateReleaseRejects(reportedAllow, requestedAllow, previous) {
|
|
251
|
+
if (requestedAllow === null || !Number.isFinite(reportedAllow) || reportedAllow === requestedAllow) {
|
|
252
|
+
return 0;
|
|
253
|
+
}
|
|
254
|
+
return (Number.isFinite(previous) ? Math.max(0, Math.trunc(previous)) : 0) + 1;
|
|
255
|
+
}
|
|
256
|
+
function holdRejectedRelease(rejects, carState) {
|
|
257
|
+
if (carState !== exports.CAR_STATE_FINISHED || !Number.isFinite(rejects) || rejects < exports.RELEASE_RETRY_LIMIT) {
|
|
258
|
+
return false;
|
|
259
|
+
}
|
|
260
|
+
return (Math.trunc(rejects) - exports.RELEASE_RETRY_LIMIT) % exports.RELEASE_RETRY_INTERVAL !== 0;
|
|
261
|
+
}
|
|
262
|
+
const COMMAND_READBACK = { alw: "alw", amp: "amp", amx: "amp" };
|
|
263
|
+
function dropUnchangedChargerCommands(commands, reported) {
|
|
264
|
+
return commands.filter(command => reported[COMMAND_READBACK[command.parameter]] !== command.value);
|
|
265
|
+
}
|
|
220
266
|
function buildChargerCommands(allow, ampere, firmware) {
|
|
221
267
|
if (!allow) {
|
|
222
268
|
return [{ parameter: "alw", value: 0 }];
|
|
@@ -229,4 +275,58 @@ function buildChargerCommands(allow, ampere, firmware) {
|
|
|
229
275
|
{ parameter: "alw", value: 1 },
|
|
230
276
|
];
|
|
231
277
|
}
|
|
278
|
+
function limitTotalCurrent(participants, maxAmpTotal) {
|
|
279
|
+
if (!Number.isFinite(maxAmpTotal) || maxAmpTotal <= 0) {
|
|
280
|
+
return participants.map(p => ({ allow: p.requestedAmp > 0, ampere: p.requestedAmp > 0 ? p.requestedAmp : 0 }));
|
|
281
|
+
}
|
|
282
|
+
const budget = Math.floor(maxAmpTotal);
|
|
283
|
+
const allocations = participants.map(() => ({ allow: false, ampere: 0 }));
|
|
284
|
+
const order = participants.map((_, index) => index).sort((a, b) => Number(participants[b].chargeNow) - Number(participants[a].chargeNow));
|
|
285
|
+
let used = 0;
|
|
286
|
+
for (const index of order) {
|
|
287
|
+
const participant = participants[index];
|
|
288
|
+
if (participant.requestedAmp <= 0) {
|
|
289
|
+
continue;
|
|
290
|
+
}
|
|
291
|
+
const min = Math.max(exports.MIN_CHARGE_CURRENT, Math.floor(participant.minAmp));
|
|
292
|
+
const want = Math.min(Math.floor(participant.requestedAmp), budget);
|
|
293
|
+
const remaining = budget - used;
|
|
294
|
+
if (want <= remaining) {
|
|
295
|
+
allocations[index] = { allow: true, ampere: want };
|
|
296
|
+
used += want;
|
|
297
|
+
}
|
|
298
|
+
else if (remaining >= min) {
|
|
299
|
+
allocations[index] = { allow: true, ampere: remaining };
|
|
300
|
+
used += remaining;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
return allocations;
|
|
304
|
+
}
|
|
305
|
+
exports.DEMAND_DEADBAND = 1;
|
|
306
|
+
exports.RECLAIM_DELAY_CYCLES = 3;
|
|
307
|
+
exports.DEMAND_HEADROOM = 1;
|
|
308
|
+
function effectiveCurrentDemand(input) {
|
|
309
|
+
const { commandedAmp, measuredAmp, wishAmp, minAmp, maxAmp, reclaimDelay } = input;
|
|
310
|
+
if (![commandedAmp, measuredAmp, wishAmp, minAmp, maxAmp, reclaimDelay].every(Number.isFinite)) {
|
|
311
|
+
return { demand: Number.isFinite(wishAmp) ? Math.max(0, Math.floor(wishAmp)) : 0, reclaimDelay: 0 };
|
|
312
|
+
}
|
|
313
|
+
const wish = Math.max(0, Math.min(Math.floor(wishAmp), Math.floor(maxAmp)));
|
|
314
|
+
const measured = Math.floor(measuredAmp);
|
|
315
|
+
const commanded = Math.floor(commandedAmp);
|
|
316
|
+
const floor = Math.max(exports.MIN_CHARGE_CURRENT, Math.floor(minAmp));
|
|
317
|
+
if (measured < exports.MIN_CHARGE_CURRENT) {
|
|
318
|
+
return { demand: wish, reclaimDelay: 0 };
|
|
319
|
+
}
|
|
320
|
+
if (measured >= commanded) {
|
|
321
|
+
return { demand: Math.min(wish, commanded + exports.DEMAND_HEADROOM), reclaimDelay: 0 };
|
|
322
|
+
}
|
|
323
|
+
if (measured >= commanded - exports.DEMAND_DEADBAND) {
|
|
324
|
+
return { demand: Math.min(wish, commanded), reclaimDelay: 0 };
|
|
325
|
+
}
|
|
326
|
+
const nextDelay = reclaimDelay + 1;
|
|
327
|
+
if (nextDelay <= exports.RECLAIM_DELAY_CYCLES) {
|
|
328
|
+
return { demand: Math.min(wish, commanded), reclaimDelay: nextDelay };
|
|
329
|
+
}
|
|
330
|
+
return { demand: Math.min(wish, Math.max(floor, measured + exports.DEMAND_HEADROOM)), reclaimDelay: nextDelay };
|
|
331
|
+
}
|
|
232
332
|
//# 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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"}
|
package/build/main.js
CHANGED
|
@@ -52,6 +52,7 @@ let chargeManagerReservePower = chargeManagerUtils_1.DEFAULT_RESERVE_POWER;
|
|
|
52
52
|
let chargeManagerMaxBatteryBonus = chargeManagerUtils_1.DEFAULT_MAXIMUM_BATTERY_BONUS;
|
|
53
53
|
let chargeManagerMinCurrent = chargeManagerUtils_1.MIN_CHARGE_CURRENT;
|
|
54
54
|
let maxChargeCurrent = chargeManagerUtils_1.MAX_CHARGE_CURRENT;
|
|
55
|
+
let maxAmpTotal = 0;
|
|
55
56
|
let chargeManagerBatteryMode = "priority";
|
|
56
57
|
let chargeManagerBatterySocHysteresis = 0;
|
|
57
58
|
let chargeManagerBatterySocMaxAgeSeconds = 0;
|
|
@@ -97,6 +98,10 @@ class go_e_charger extends utils.Adapter {
|
|
|
97
98
|
maxChargeCurrent = chargeManagerUtils_1.MAX_CHARGE_CURRENT;
|
|
98
99
|
}
|
|
99
100
|
this.log.debug(`ChargeManager current range: ${chargeManagerMinCurrent}-${maxChargeCurrent} A`);
|
|
101
|
+
maxAmpTotal = this.validateBoundedIntConfig(this.config.maxAmpTotal, 0, 0, 250, "maxAmpTotal");
|
|
102
|
+
if (maxAmpTotal > 0) {
|
|
103
|
+
this.log.debug(`Installation total current budget: ${maxAmpTotal} A`);
|
|
104
|
+
}
|
|
100
105
|
chargeManagerBatteryMode = this.validateBatteryModeConfig(this.config.batteryMode);
|
|
101
106
|
chargeManagerBatterySocHysteresis = this.validateNonNegativeConfig(this.config.batterySocHysteresis, 0, "batterySocHysteresis");
|
|
102
107
|
chargeManagerBatterySocMaxAgeSeconds = this.validateBoundedIntConfig(this.config.batterySocMaxAgeSeconds, 0, 0, 86400, "batterySocMaxAgeSeconds");
|
|
@@ -131,6 +136,10 @@ class go_e_charger extends utils.Adapter {
|
|
|
131
136
|
HardwareMinAmp: 0,
|
|
132
137
|
DelayOff: 0,
|
|
133
138
|
PhaseSwitchDelay: 0,
|
|
139
|
+
ReclaimDelay: 0,
|
|
140
|
+
Reported: {},
|
|
141
|
+
RequestedAllow: null,
|
|
142
|
+
ReleaseRejects: 0,
|
|
134
143
|
CurrentHysteresis: 0,
|
|
135
144
|
SetOptAmp: 5,
|
|
136
145
|
SetOptAllow: false,
|
|
@@ -412,22 +421,78 @@ class go_e_charger extends utils.Adapter {
|
|
|
412
421
|
}
|
|
413
422
|
}
|
|
414
423
|
const chargePlans = await this.planChargeManagerCycle();
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
424
|
+
const budgetActive = maxAmpTotal > 0;
|
|
425
|
+
const budgetAllocations = budgetActive ? this.planTotalCurrentBudget(chargePlans) : [];
|
|
426
|
+
const applyOrder = [...this.config.wallBoxList.keys()];
|
|
427
|
+
if (budgetActive) {
|
|
428
|
+
const targetAmp = (iWB) => {
|
|
429
|
+
const info = this.wallboxInfoList[iWB];
|
|
430
|
+
const hasVehicle = info.CarState === 2 || info.CarState === 3;
|
|
431
|
+
const alloc = budgetAllocations[iWB];
|
|
432
|
+
return hasVehicle && alloc?.allow ? alloc.ampere : 0;
|
|
433
|
+
};
|
|
434
|
+
applyOrder.sort((a, b) => targetAmp(a) - this.wallboxInfoList[a].SetAmp - (targetAmp(b) - this.wallboxInfoList[b].SetAmp));
|
|
435
|
+
}
|
|
436
|
+
for (const iWB of applyOrder) {
|
|
437
|
+
const info = this.wallboxInfoList[iWB];
|
|
438
|
+
const hasVehicle = info.CarState === 2 || info.CarState === 3;
|
|
439
|
+
if (info.ChargeNOW) {
|
|
440
|
+
if (budgetActive) {
|
|
441
|
+
const alloc = budgetAllocations[iWB];
|
|
442
|
+
if (hasVehicle && alloc.allow) {
|
|
443
|
+
info.SetAmp = alloc.ampere;
|
|
444
|
+
await this.Charge_Config("1", alloc.ampere, `activate go-eCharger for forced charging`, iWB);
|
|
445
|
+
}
|
|
446
|
+
else {
|
|
447
|
+
info.SetAmp = 0;
|
|
448
|
+
const reason = hasVehicle ? `ChargeNOW off: installation current budget exhausted` : `ChargeNOW waiting for vehicle`;
|
|
449
|
+
await this.Charge_Config("0", info.MinAmp, reason, iWB);
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
else {
|
|
453
|
+
const chargeNowCurrent = Math.min(Math.max(info.ChargeCurrent, info.MinAmp), info.MaxAmp);
|
|
454
|
+
info.SetAmp = chargeNowCurrent;
|
|
455
|
+
await this.Charge_Config("1", chargeNowCurrent, `activate go-eCharger for forced charging`, iWB);
|
|
456
|
+
}
|
|
457
|
+
await this.Switch_3Phases(info.Charge3Phase, iWB);
|
|
458
|
+
if (info.HardwareMin3) {
|
|
421
459
|
await this.Read_ChargerAPIV2(iWB);
|
|
422
460
|
}
|
|
423
461
|
}
|
|
424
|
-
else if (
|
|
462
|
+
else if (info.ChargeManager) {
|
|
425
463
|
const plan = chargePlans[iWB];
|
|
426
|
-
if (plan?.decision) {
|
|
427
|
-
|
|
428
|
-
|
|
464
|
+
if ((0, chargeManagerUtils_1.isVehicleDisconnected)(this.wallboxInfoList[iWB].CarState) && plan?.decision && plan.decision.optimalCurrent !== null) {
|
|
465
|
+
this.wallboxInfoList[iWB].SetOptAmp = plan.decision.optimalCurrent;
|
|
466
|
+
this.wallboxInfoList[iWB].SetAmp = plan.decision.nextState.currentAmp;
|
|
467
|
+
this.wallboxInfoList[iWB].DelayOff = plan.decision.nextState.shutdownDelay;
|
|
468
|
+
if ((await this.projectUtils.getStateValue(`Wallbox_${iWB}.Power.ChargingAllowed`)) == true) {
|
|
469
|
+
await this.Charge_Config("0", this.wallboxInfoList[iWB].MinAmp, `No vehicle connected`, iWB);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
else if (plan?.decision) {
|
|
473
|
+
const decision = plan.decision;
|
|
474
|
+
const useAutoPhase = this.config.wallBoxList[iWB].autoPhaseSwitch && info.HardwareMin3;
|
|
475
|
+
const targetPhase = useAutoPhase ? info.ManagedCharge3Phase : info.Charge3Phase;
|
|
429
476
|
await this.Switch_3Phases(targetPhase, iWB);
|
|
430
|
-
|
|
477
|
+
if (budgetActive && !hasVehicle) {
|
|
478
|
+
await this.stopChargeManager(`No vehicle connected`, iWB);
|
|
479
|
+
}
|
|
480
|
+
else if (budgetActive && decision.optimalCurrent !== null && decision.action !== "disable") {
|
|
481
|
+
const alloc = budgetAllocations[iWB];
|
|
482
|
+
if (!alloc.allow) {
|
|
483
|
+
await this.stopChargeManager(`Installation current budget exhausted`, iWB);
|
|
484
|
+
}
|
|
485
|
+
else {
|
|
486
|
+
if (alloc.ampere < decision.nextState.currentAmp) {
|
|
487
|
+
decision.nextState.currentAmp = alloc.ampere;
|
|
488
|
+
decision.action = "enable";
|
|
489
|
+
}
|
|
490
|
+
await this.Charge_Manager(iWB, decision);
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
else {
|
|
494
|
+
await this.Charge_Manager(iWB, decision);
|
|
495
|
+
}
|
|
431
496
|
}
|
|
432
497
|
else if (plan?.batteryReason === "stale") {
|
|
433
498
|
await this.stopChargeManager(`Battery state of charge is stale`, iWB);
|
|
@@ -531,6 +596,9 @@ class go_e_charger extends utils.Adapter {
|
|
|
531
596
|
await this.ParseStatusAPIV1(result, iWB);
|
|
532
597
|
})
|
|
533
598
|
.catch(error => {
|
|
599
|
+
this.wallboxInfoList[iWB].Reported = {};
|
|
600
|
+
this.wallboxInfoList[iWB].RequestedAllow = null;
|
|
601
|
+
this.wallboxInfoList[iWB].ReleaseRejects = 0;
|
|
534
602
|
if (error.message && error.message.includes("EHOSTUNREACH")) {
|
|
535
603
|
this.log.error(`Charger unreachable error when calling go-eCharger API: ${error}`);
|
|
536
604
|
this.wallboxInfoList[iWB].Firmware = `EHostUnreach`;
|
|
@@ -565,6 +633,12 @@ class go_e_charger extends utils.Adapter {
|
|
|
565
633
|
}
|
|
566
634
|
void this.projectUtils.checkAndSetValueNumber(`${basePath}.Power.ChargeCurrent`, Number(status.amp), `Charge current output`, "A", "level.current");
|
|
567
635
|
void this.projectUtils.checkAndSetValueNumber(`${basePath}.Power.ChargeCurrentVolatile`, Number(status.amx), `Charge current output volatile`, "A", "value.current");
|
|
636
|
+
this.wallboxInfoList[iWB].Reported = { alw: Number(status.alw), amp: Number(status.amp), amx: Number(status.amx) };
|
|
637
|
+
const rejectsBefore = this.wallboxInfoList[iWB].ReleaseRejects;
|
|
638
|
+
this.wallboxInfoList[iWB].ReleaseRejects = (0, chargeManagerUtils_1.updateReleaseRejects)(Number(status.alw), this.wallboxInfoList[iWB].RequestedAllow, rejectsBefore);
|
|
639
|
+
if (rejectsBefore < chargeManagerUtils_1.RELEASE_RETRY_LIMIT && this.wallboxInfoList[iWB].ReleaseRejects >= chargeManagerUtils_1.RELEASE_RETRY_LIMIT) {
|
|
640
|
+
this.log.info(`Charger ${iWB}: the charge release was ignored ${this.wallboxInfoList[iWB].ReleaseRejects} times in a row - still retrying, but only every ${chargeManagerUtils_1.RELEASE_RETRY_INTERVAL} cycles from now on`);
|
|
641
|
+
}
|
|
568
642
|
switch (status.alw) {
|
|
569
643
|
case "0":
|
|
570
644
|
await this.projectUtils.checkAndSetValueBoolean(`${basePath}.Power.ChargingAllowed`, false, `Charging allowed`, "indicator");
|
|
@@ -578,7 +652,9 @@ class go_e_charger extends utils.Adapter {
|
|
|
578
652
|
this.setWallboxHardwareLimits(iWB, this.combineHardwareMax(Number(status.ama), Number(status.cbl)), 0, basePath);
|
|
579
653
|
void this.projectUtils.checkAndSetValueNumber(`${basePath}.statistics.chargedEnergy`, status.eto / 10, `Totally charged in wallbox lifetime`, "kWh", "value.energy.consumed");
|
|
580
654
|
void this.projectUtils.checkAndSetValueNumber(`${basePath}.Power.Charge`, status.nrg[11] * 10, `actual charging-power`, "W", "value.power");
|
|
581
|
-
|
|
655
|
+
const measuredMaxPhaseCurrent = Math.max(...status.nrg.slice(4, 7)) / 10;
|
|
656
|
+
void this.projectUtils.checkAndSetValueNumber(`${basePath}.Power.MeasuredMaxPhaseCurrent`, measuredMaxPhaseCurrent, `Measured max. current of grid phases`, "A", "value.current");
|
|
657
|
+
this.wallboxInfoList[iWB].MeasuredMaxChargeAmp = Math.round(measuredMaxPhaseCurrent);
|
|
582
658
|
this.wallboxInfoList[iWB].Firmware = status.fwv;
|
|
583
659
|
void this.projectUtils.checkAndSetValue(`${basePath}.info.firmwareVersion`, status.fwv, `Firmware version of charger`, `info.firmware`);
|
|
584
660
|
if (status.ast !== undefined && status.ast !== null) {
|
|
@@ -625,7 +701,7 @@ class go_e_charger extends utils.Adapter {
|
|
|
625
701
|
}
|
|
626
702
|
async Read_ChargerAPIV2(iWB) {
|
|
627
703
|
await axiosInstance
|
|
628
|
-
.get(`http://${this.config.wallBoxList[iWB].ipAddress}/api/status?filter=alw,acu,eto,amp,rbc,rbt,car,pha,fwv,nrg,psm,typ,trx,ast,ama,cbl,mca,rca,rcr,rcd,rc4,rc5,rc6,rc7,rc8,rc9,rc1,rna,rnm,rne,rn4,rn5,rn6,rn7,rn8,rn9,rn1,eca,ecr,ecd,ec4,ec5,ec6,ec7,ec8,ec9,ec1`, {
|
|
704
|
+
.get(`http://${this.config.wallBoxList[iWB].ipAddress}/api/status?filter=alw,frc,modelStatus,acu,eto,amp,rbc,rbt,car,pha,fwv,nrg,psm,typ,trx,ast,ama,cbl,mca,rca,rcr,rcd,rc4,rc5,rc6,rc7,rc8,rc9,rc1,rna,rnm,rne,rn4,rn5,rn6,rn7,rn8,rn9,rn1,eca,ecr,ecd,ec4,ec5,ec6,ec7,ec8,ec9,ec1`, {
|
|
629
705
|
transformResponse: r => r,
|
|
630
706
|
})
|
|
631
707
|
.then(async (response) => {
|
|
@@ -677,7 +753,10 @@ class go_e_charger extends utils.Adapter {
|
|
|
677
753
|
this.log.debug(`Charger ${iWB} is in read-only mode - skipping phase switching`);
|
|
678
754
|
return;
|
|
679
755
|
}
|
|
680
|
-
const psm = Charge3Phase
|
|
756
|
+
const psm = (0, chargeManagerUtils_1.phaseModeToSend)(Charge3Phase, this.wallboxInfoList[iWB].EnabledPhases);
|
|
757
|
+
if (psm === null) {
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
681
760
|
await axiosInstance
|
|
682
761
|
.get(`http://${this.config.wallBoxList[iWB].ipAddress}/api/set?psm=${psm}`, { transformResponse: r => r })
|
|
683
762
|
.then(response => {
|
|
@@ -689,10 +768,9 @@ class go_e_charger extends utils.Adapter {
|
|
|
689
768
|
});
|
|
690
769
|
}
|
|
691
770
|
async Charge_Config(Allow, Ampere, LogMessage, iWB) {
|
|
692
|
-
this.log.debug(`${LogMessage} - ${Ampere} Ampere`);
|
|
693
771
|
const basePath = `Wallbox_${iWB}`;
|
|
694
772
|
if (this.config.wallBoxList[iWB].readOnlyMode) {
|
|
695
|
-
this.log.debug(`Charger ${iWB} is in read-only mode - skipping charge config write`);
|
|
773
|
+
this.log.debug(`Charger ${iWB} is in read-only mode - skipping charge config write (${LogMessage} - ${Ampere} Ampere)`);
|
|
696
774
|
return;
|
|
697
775
|
}
|
|
698
776
|
if (Allow !== "0" && Allow !== "1") {
|
|
@@ -704,11 +782,20 @@ class go_e_charger extends utils.Adapter {
|
|
|
704
782
|
this.log.warn(`Invalid charging current for charger ${iWB}: ${Ampere} A`);
|
|
705
783
|
return;
|
|
706
784
|
}
|
|
707
|
-
|
|
785
|
+
let pending = (0, chargeManagerUtils_1.dropUnchangedChargerCommands)(commands, this.wallboxInfoList[iWB].Reported);
|
|
786
|
+
if ((0, chargeManagerUtils_1.holdRejectedRelease)(this.wallboxInfoList[iWB].ReleaseRejects, this.wallboxInfoList[iWB].CarState)) {
|
|
787
|
+
pending = pending.filter(command => command.parameter === "alw" && command.value === 0);
|
|
788
|
+
}
|
|
789
|
+
if (pending.length === 0) {
|
|
790
|
+
return;
|
|
791
|
+
}
|
|
792
|
+
this.log.debug(`${LogMessage} - ${Ampere} Ampere`);
|
|
793
|
+
for (const command of pending) {
|
|
708
794
|
try {
|
|
709
795
|
const response = await axiosInstance.get(`http://${this.config.wallBoxList[iWB].ipAddress}/mqtt?payload=${command.parameter}=${command.value}`, { transformResponse: r => r });
|
|
710
796
|
this.log.debug(`Sent to charger ${iWB}: ${command.parameter}=${command.value}`);
|
|
711
797
|
if (command.parameter === "alw") {
|
|
798
|
+
this.wallboxInfoList[iWB].RequestedAllow = command.value;
|
|
712
799
|
await this.projectUtils.checkAndSetValueBoolean(`${basePath}.Power.ChargingAllowed`, command.value === 1, `Charging allowed`, `indicator`);
|
|
713
800
|
}
|
|
714
801
|
else {
|
|
@@ -766,6 +853,7 @@ class go_e_charger extends utils.Adapter {
|
|
|
766
853
|
minimumChargeCurrent: Math.min(Math.max(chargeManagerMinCurrent, this.wallboxInfoList[iWB].MinAmp), this.wallboxInfoList[iWB].MaxAmp),
|
|
767
854
|
state: { currentAmp: this.wallboxInfoList[iWB].SetAmp, shutdownDelay: this.wallboxInfoList[iWB].DelayOff },
|
|
768
855
|
claimsPower: carState === 2 || carState === 3,
|
|
856
|
+
released: this.wallboxInfoList[iWB].Reported.alw === 1,
|
|
769
857
|
});
|
|
770
858
|
served.push(iWB);
|
|
771
859
|
fleetChargePower += this.wallboxInfoList[iWB].ChargePower;
|
|
@@ -786,7 +874,12 @@ class go_e_charger extends utils.Adapter {
|
|
|
786
874
|
}, participants);
|
|
787
875
|
served.forEach((iWB, index) => {
|
|
788
876
|
plans[iWB] = { decision: decisions[index], batteryReason: "available" };
|
|
789
|
-
|
|
877
|
+
const decision = decisions[index];
|
|
878
|
+
const carState = this.wallboxInfoList[iWB].CarState;
|
|
879
|
+
this.log.debug(`ChargeManager charger ${iWB}: surplus ${Math.round(decision.availablePower)} W → optimal ${decision.optimalCurrent ?? 0} A, ramp ${decision.nextState.currentAmp} A, action=${decision.action} (${decision.reason}), car=${carState}`);
|
|
880
|
+
if (this.config.wallBoxList[iWB].autoPhaseSwitch &&
|
|
881
|
+
this.wallboxInfoList[iWB].HardwareMin3 &&
|
|
882
|
+
!(0, chargeManagerUtils_1.isVehicleDisconnected)(this.wallboxInfoList[iWB].CarState)) {
|
|
790
883
|
const participant = participants[index];
|
|
791
884
|
const phaseDecision = (0, chargeManagerUtils_1.decidePhaseSwitch)({
|
|
792
885
|
currentPhases: this.wallboxInfoList[iWB].EnabledPhases,
|
|
@@ -796,6 +889,7 @@ class go_e_charger extends utils.Adapter {
|
|
|
796
889
|
switchDelay: this.wallboxInfoList[iWB].PhaseSwitchDelay,
|
|
797
890
|
});
|
|
798
891
|
this.wallboxInfoList[iWB].PhaseSwitchDelay = phaseDecision.switchDelay;
|
|
892
|
+
this.log.debug(`ChargeManager charger ${iWB} phase: ${this.wallboxInfoList[iWB].EnabledPhases}p now, target ${phaseDecision.targetPhases}p, dwell ${phaseDecision.switchDelay}`);
|
|
799
893
|
this.wallboxInfoList[iWB].ManagedCharge3Phase = phaseDecision.targetPhases === 3;
|
|
800
894
|
if (phaseDecision.targetPhases !== this.wallboxInfoList[iWB].EnabledPhases) {
|
|
801
895
|
this.log.info(`ChargeManager: switching charger ${iWB} to ${phaseDecision.targetPhases}-phase charging (surplus ${Math.round(decisions[index].availablePower)} W)`);
|
|
@@ -804,6 +898,54 @@ class go_e_charger extends utils.Adapter {
|
|
|
804
898
|
});
|
|
805
899
|
return plans;
|
|
806
900
|
}
|
|
901
|
+
planTotalCurrentBudget(chargePlans) {
|
|
902
|
+
const participants = this.config.wallBoxList.map((_, iWB) => {
|
|
903
|
+
const info = this.wallboxInfoList[iWB];
|
|
904
|
+
const hasVehicle = info.CarState === 2 || info.CarState === 3;
|
|
905
|
+
if (!hasVehicle) {
|
|
906
|
+
info.ReclaimDelay = 0;
|
|
907
|
+
return { requestedAmp: 0, minAmp: info.MinAmp, chargeNow: !!info.ChargeNOW };
|
|
908
|
+
}
|
|
909
|
+
let wish = 0;
|
|
910
|
+
let chargeNow = false;
|
|
911
|
+
if (info.ChargeNOW) {
|
|
912
|
+
wish = Math.min(Math.max(info.ChargeCurrent, info.MinAmp), info.MaxAmp);
|
|
913
|
+
chargeNow = true;
|
|
914
|
+
}
|
|
915
|
+
else if (info.ChargeManager) {
|
|
916
|
+
const decision = chargePlans[iWB]?.decision;
|
|
917
|
+
wish = decision && decision.optimalCurrent !== null && decision.action !== "disable" ? decision.nextState.currentAmp : 0;
|
|
918
|
+
}
|
|
919
|
+
if (wish <= 0) {
|
|
920
|
+
info.ReclaimDelay = 0;
|
|
921
|
+
return { requestedAmp: 0, minAmp: info.MinAmp, chargeNow };
|
|
922
|
+
}
|
|
923
|
+
const { demand, reclaimDelay } = (0, chargeManagerUtils_1.effectiveCurrentDemand)({
|
|
924
|
+
commandedAmp: info.SetAmp,
|
|
925
|
+
measuredAmp: info.MeasuredMaxChargeAmp,
|
|
926
|
+
wishAmp: wish,
|
|
927
|
+
minAmp: info.MinAmp,
|
|
928
|
+
maxAmp: info.MaxAmp,
|
|
929
|
+
reclaimDelay: info.ReclaimDelay,
|
|
930
|
+
});
|
|
931
|
+
info.ReclaimDelay = reclaimDelay;
|
|
932
|
+
return { requestedAmp: demand, minAmp: info.MinAmp, chargeNow };
|
|
933
|
+
});
|
|
934
|
+
const allocations = (0, chargeManagerUtils_1.limitTotalCurrent)(participants, maxAmpTotal);
|
|
935
|
+
let used = 0;
|
|
936
|
+
const summary = allocations.map((alloc, iWB) => {
|
|
937
|
+
used += alloc.ampere;
|
|
938
|
+
const req = participants[iWB].requestedAmp;
|
|
939
|
+
if (req <= 0) {
|
|
940
|
+
return `box${iWB} idle`;
|
|
941
|
+
}
|
|
942
|
+
const tag = participants[iWB].chargeNow ? "NOW" : "CM";
|
|
943
|
+
const state = !alloc.allow ? "off" : alloc.ampere < req ? `${alloc.ampere} A throttled` : `${alloc.ampere} A`;
|
|
944
|
+
return `box${iWB} ${tag} req ${req}->${state}`;
|
|
945
|
+
});
|
|
946
|
+
this.log.debug(`Total current budget ${maxAmpTotal} A: ${summary.join(" | ")} (used ${used}/${maxAmpTotal} A)`);
|
|
947
|
+
return allocations;
|
|
948
|
+
}
|
|
807
949
|
async Charge_Manager(iWB, decision) {
|
|
808
950
|
if (decision.optimalCurrent === null) {
|
|
809
951
|
this.log.warn(`ChargeManager inputs are invalid for charger ${iWB}; charging will be disabled`);
|
package/build/main.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":"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"}
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "go-e-charger",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.8.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.8.0": {
|
|
7
|
+
"en": "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\nthe 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\nadded concise debug logging for the ChargeManager control loops (surplus sharing, phase switching, total current budget)\ndocs: documented the total current budget\nthe 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\nChargeManager: 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\nthe 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\nthe 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\nChargeManager: 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\nChargeManager: 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\nupdated dependencies",
|
|
8
|
+
"de": "hat ein Gesamtstrombudget (maximaler Ladestrom) hinzugefügt, das den Gesamtstrom aller Wallboxen begrenzt, um eine gemeinsame Sicherung zu schützen. ChargeNow vor ChargeManager und eine Wallbox ohne angeschlossenes Fahrzeug aus, sodass im Leerlauf weder die Sicherung auslöst noch eine, die bereits geladen ist, abschalten\nDas Gesamtstrombudget folgt nun dem gemessenen Ladestrom: Bei einer Wallbox, die weniger als erlaubt verbraucht, wird der Strom nach einer Weile wieder aufgenommen und an die nächste Wallbox weitergeleitet. Je nach Bedarf wächst sie um ein Ampere nach — vor Erhöhungen wird immer reduziert, sodass der Summenstrom nie die Sicherung übersteigt.\nKurzes Debug-Logging für die ChargeManager-Regelkreise hinzugefügt (Überschussteilung, Phasenwechsel, Gesamtbudget)\nDocs: hat das Gesamtbudget dokumentiert\nDer Phasenmodus (`psm`) wird jetzt nur geschrieben, wenn das Ladegerät einen anderen Modus meldet, da er gespeichert ist\nChargeManager: kein Ladestrom oder Phasenschalter wird gesendet, wenn kein Fahrzeug angeschlossen ist, und der Strom wird nicht mehr bei jedem Zyklus neu gesendet — jeder Ladevorgang weckte die LEDs\nDer Ladestrom wird nicht mehr bei jedem Zyklus neu gesendet: Das Ladegerät meldet `amx` zurück als 0 und zeigt nur den Strom in `Amp` an, also die Prüfung auf einen unveränderten Wert\nDie Ladefreigabe wird nicht mehr bei jedem Zyklus erneut gesendet, solange das Fahrzeug den Ladevorgang beendet hat. Das Ladegerät bestätigt jeden Schreibvorgang und ignoriert ihn bis zu 90 Minuten lang. Es wird immer noch wiederholt, nur nach den ersten fünf Minuten\nChargeManager: Der Ladestrom folgt nicht mehr einer Änderung des Sollwerts um 1 Ampere, sodass er nicht mehr bei jedem Zyklus hin- und herbewegt\nChargeManager: Auf eine laufende Ladung folgt nun ein sinkender Überschuss bis zum Mindeststrom. Der Startstrom von 10 A gilt auch für eine laufende Ladung. Ströme zwischen Minimum und 10 A wurden nie geschrieben und das Ladegerät blieb bei 10 A und zog die Differenz aus dem Netz oder der Batterie, bis der Überschuss wieder da ist oder die Abschaltverzögerung abgelaufen ist\nNeue Abhängigkeiten",
|
|
9
|
+
"ru": "добавлен общий расход тока на всей установке (максимальный общий зарядный ток), который ограничивает суммарный ток всех настенных блоков для защиты общего предохранителя. Зарядка подается сейчас перед ChargeManager и не отключает настенный бокс без подключенного транспортного средства, чтобы простаивающие настенные коробки не отключали предохранитель и не морили голодом тот, кто уже заряжается\nобщий текущий бюджет теперь соответствует измеренному зарядному току: в настенной коробке, потребляющей меньше допустимого, неиспользованный ток после простоя рекуперируют и передают следующему настенному боксу. При использовании полученного зарядного устройства его значение возрастает на 1 ампер за цикл; при использовании получаемого заряда всегда применяются понижающие значения, поэтому суммарный ток никогда не превышает величину предохранителя\nдобавлено краткое протоколирование отладки контуров управления ChargeManager (распределение излишков, переключение фаз, общий текущий бюджет)\nдокументы: задокументировал общий текущий бюджет\nфазовый режим (`psm`) теперь записывается только тогда, когда зарядное устройство сообщает о другом режиме, а не о каждом цикле, потому что это сохраненная настройка зарядного устройства\nChargeManager: отключатель заряда, зарядный ток или фазовый переключатель не отправляются, пока автомобиль не подключен к сети, а неизменный ток или ток больше не подаются повторно каждый цикл — каждая запись выводила из строя светодиоды зарядного устройства\nток зарядки больше не передается повторно каждый цикл: зарядное устройство возвращает значение «amx» в обратном направлении как 0 и показывает только приложенный ток в «ампере», поэтому проверка на неизменность значения так и не была проверена\nсрабатывание заряда больше не отправляется повторно после каждого цикла, пока автомобиль сообщает, что зарядка закончилась. Зарядное устройство подтверждает каждую запись и игнорирует ее в течение 90 минут в одном зарегистрированном случае; повторная попытка все равно повторяется, но по прошествии первых пяти минут с меньшей скоростью\nChargeManager: ток зарядки больше не следует за изменением целевого значения на один ампер, поэтому проходящее облако больше не заставляет его двигаться вперед и назад каждый цикл\nChargeManager: при работающем заряде теперь происходит снижение избыточного тока до минимального значения. Пусковой ток 10 А также применяется к работающему заряду, поэтому ток в диапазоне от минимального до 10 А никогда не записывался, а зарядное устройство оставалось на уровне 10 А, записанное последним, в чем разница между электросетью или домашней батареей до тех пор, пока избыток не восстановился или не закончилась задержка отключения\nобновленные зависимости",
|
|
10
|
+
"pt": "adicionou um orçamento atual total de toda a instalação (corrente máxima de carga total) que limita a corrente total de todas as caixas de parede para proteger um fusível compartilhado, servindo o ChargeNow antes do ChargeManager e mantendo uma caixa sem veículo conectado desligada.\no orçamento atual total agora segue a corrente de carga medida: uma caixa de parede que consome menos do que o permitido tem sua corrente não utilizada recuperada e entregue à próxima caixa de parede, voltando a crescer um ampere por ciclo quando usa o que recebe - reduções são sempre aplicadas antes do aumento para que a corrente somada nunca exceda o fusível\nadicionou um log de depuração conciso para os circuitos de controle do ChargeManager (excedente, mudança de fase, orçamento total)\ndocs: documentou o orçamento atual\no modo de fase (`psm`) agora só é escrito quando o carregador relata um modo diferente em vez de cada ciclo, pois é um ajuste armazenado\nChargeManager: nenhuma liberação de carga, corrente de carga ou chave de fase é enviada sem o veículo estar conectado, e uma corrente inalterada não é mais reenviada a cada ciclo - cada gravação ativa os LEDs do carregador\na corrente de carga não é mais reenviada a cada ciclo: o carregador reporta `amx` como 0 e mostra apenas a corrente aplicada em `amp`, então a verificação de um valor inalterado nunca coincide\na liberação de carga não é mais reenviada a cada ciclo enquanto o veículo informa que terminou de carregar - o carregador confirma cada gravação e a ignora por até 90 minutos em uma caixa registrada; ele ainda é tentado novamente, logo após os primeiros cinco minutos\nChargeManager: a corrente de carga não segue mais uma mudança de um ampere de seu alvo, então uma nuvem que passa não a faz mais ir e voltar a cada ciclo\nChargeManager: a corrente de partida de 10 A também se aplica a uma carga em funcionamento, então as correntes entre o mínimo e 10 A nunca foram gravadas e o carregador permaneceu no 10 A por último, tirando a diferença da rede ou da bateria doméstica até que o excedente se recuperasse ou o atraso de desligamento acabasse\nnovas dependências",
|
|
11
|
+
"nl": "een totaal huidig budget voor de hele installatie toegevoegd (maximale totale laadstroom) dat de totale stroomsterkte van alle wallboxen beperkt om een gedeelde zekering te beschermen, waarbij ChargeNow vóór ChargeManager wordt bediend en waarbij een wallbox zonder aangesloten voertuig uitgeschakeld blijft, zodat stationaire wallboxen de zekering niet uitschakelen en een wallbox die al aan het opladen is, ook niet verhongeren\nhet totale huidige budget volgt nu de gemeten laadstroom: bij een wallbox die minder verbruikt dan toegestaan, wordt de ongebruikte stroom na een pauze teruggewonnen en naar de volgende wallbox gestuurd, waarbij één ampère per cyclus wordt teruggedrongen wanneer hij gebruikt wat hij krijgt - reducties worden altijd toegepast vóór verhogingen, zodat de gesommeerde stroom nooit hoger is dan de zekering\nbeknopte foutopsporingsregistratie toegevoegd voor de ChargeManager-regelkringen (overschot delen, faseomschakeling, totaal huidig budget)\ndocs: documenteerde het totale huidige budget\nde fasemodus (`psm`) wordt nu alleen geschreven als de lader een andere modus meldt in plaats van elke cyclus, omdat het een opgeslagen laderinstelling is\nChargeManager: er wordt geen laadstroom afgegeven, er wordt laadstroom of faseschakelaar verzonden terwijl er geen auto is aangesloten, en er wordt niet langer elke cyclus een ongewijzigde ontlading of stroom verzonden - bij elk schrijven werden de LED's van de oplader gewekt\nde laadstroom wordt niet langer elke cyclus opnieuw verzonden: de lader meldt een geschreven `amx` terug als 0 en toont alleen de toegepaste stroom in `amp`, dus de controle op een ongewijzigde waarde kwam nooit overeen\nde oplaadontgrendeling wordt niet langer bij elke cyclus opnieuw verzonden terwijl het voertuig meldt dat het opladen is voltooid - de lader bevestigt elke schrijffout en blijft deze negeren, gedurende maximaal 90 minuten in één geregistreerd geval; het wordt nog steeds opnieuw geprobeerd, alleen met een lager tempo na de eerste vijf minuten\nChargeManager: de laadstroom volgt niet langer een verandering van één ampère van het doel, dus een passerende wolk zorgt ervoor dat hij niet langer elke cyclus heen en weer gaat\nChargeManager: een lopende lading volgt nu op een dalend overschot tot aan de minimumstroom - de startstroom van 10 A werd ook toegepast op een lopende lading, dus stromen tussen het minimum en 10 A werden nooit afgeschreven en de lader bleef op de 10 A staan die als laatste werd geschreven, waarbij het verschil werd berekend met het elektriciteitsnet of de thuisbatterij totdat het overschot hersteld was of de uitschakelvertraging op was\nbijgewerkte afhankelijkheden",
|
|
12
|
+
"fr": "a ajouté un budget courant total pour l'ensemble de l'installation (courant de charge total maximum) qui plafonne le courant cumulé de toutes les boîtiers pour protéger un fusible partagé, en diffusant ChargeNow avant ChargeManager et en éteignant un boîtier mural sans véhicule connecté afin que les boîtiers inactifs ne déclenchent pas le fusible ni n'affament un boîtier déjà en charge\nle budget actuel total suit désormais le courant de charge mesuré : le courant inutilisé d'un boîtier mural est récupéré après un arrêt et transféré au boîtier mural suivant, remontant d'un ampère par cycle quand il en consomme ce qu'il reçoit. Les réductions sont toujours appliquées avant les augmentations afin que le courant cumulé ne dépasse jamais le fusible\najout d'un journal de débogage concis pour les boucles de contrôle ChargeManager (partage des surplus, changement de phase, budget actuel total)\ndocs : a documenté le budget total actuel\nle mode phase (« psm ») n'est désormais écrit que lorsque le chargeur indique un mode différent à chaque cycle, car il s'agit d'un réglage mémorisé\nChargeManager : aucun déclencheur, courant de charge ou interrupteur de phase n'est envoyé tant qu'aucun véhicule n'est branché, et aucun courant inchangé n'est plus renvoyé à chaque cycle. Chaque écriture réveillait les LED du chargeur\nle courant de charge n'est plus renvoyé à chaque cycle : le chargeur renvoie un « amx » écrit à 0 et n'affiche que le courant appliqué en « ampères », donc la vérification d'une valeur inchangée n'a jamais abouti\nle déchargement n'est plus renvoyé à chaque cycle tant que le véhicule indique qu'il a fini de se recharger. Le chargeur confirme chaque écriture et l'ignore, jusqu'à 90 minutes dans un cas enregistré ; il est quand même reessayé, juste à un rythme inférieur après les cinq premières minutes\nChargeManager : le courant de charge ne varie plus d'un ampère par rapport à sa cible, donc un nuage qui passe ne le fait plus d'avant en arrière à chaque cycle\nChargeManager : une charge en marche suit désormais une baisse du courant jusqu'au courant minimum. Le courant de démarrage de 10 A s'applique également à une charge en marche. Les courants compris entre le minimum et 10 A n'ont donc jamais été enregistrés et le chargeur est resté au 10 A écrit en dernier, en faisant la différence avec le réseau ou la batterie domestique jusqu'à ce que le surplus soit rétabli ou que le délai d'arrêt soit écoulé\ndépendances mises à jour",
|
|
13
|
+
"it": "ha aggiunto un budget attuale totale per l'installazione (corrente massima di ricarica totale) che limita la corrente sommata di tutte le wallbox per proteggere un fusibile condiviso, servendo ChargeNow prima di ChargeManager e tenendo spenta una wallbox senza veicolo connesso in modo che le wallbox inattive non facciano scattare il fusibile\nil budget attuale totale ora segue la corrente di carica misurata: una wallbox che assorbe meno del consentito viene recuperata dopo una sosta e passata alla wallbox successiva, ricresce di un ampere per ciclo quando usa ciò che riceve - le riduzioni vengono sempre applicate prima degli aumenti in modo che la corrente sommata non superi mai il fusibile\naggiunto un breve log di debug per i loop di controllo ChargeManager (surplus sharing, phase switching, budget attuale totale)\ndocs: ha documentato il budget attuale\nla modalità fase (`psm`) ora viene scritta solo quando il caricabatterie segnala una modalità diversa invece di ogni ciclo\nChargeManager: non viene inviato alcun interruttore di carica o di fase senza che il veicolo sia collegato e non viene più inviato a ogni ciclo: ogni scrittura attiva i LED del caricabatterie\nla corrente di carica non viene più inviata a ogni ciclo: il caricabatterie riporta «amx» come 0 e mostra solo la corrente applicata in «amp», quindi il valore invariato non corrisponde\nil caricabatterie non viene più inviato nuovamente ad ogni ciclo mentre il veicolo segnala di aver terminato la ricarica: conferma ogni scrittura e continua a ignorarla, fino a 90 minuti in un caso registrato; viene comunque riprovato, solo a una velocità inferiore dopo i primi cinque minuti\nChargeManager: la corrente di carica non segue più un cambio di 1 ampere, quindi un cloud che passa non fa più un passo avanti e indietro ad ogni ciclo\nChargeManager: una carica corrente segue ora una corrente in eccesso fino alla corrente minima. La corrente iniziale di 10 A si applicava anche a una carica corrente, quindi le correnti tra il minimo e i 10 A non sono mai state scritte e il caricabatterie è rimasto ai 10 A scritti per ultimi, assorbendo la differenza dalla rete o dalla batteria di casa\ndipendenze aggiornate",
|
|
14
|
+
"es": "añadió un presupuesto de corriente total para toda la instalación (corriente de carga total máxima) que limita la corriente total de todas las cajas de pared para proteger un fusible compartido, sirve ChargeNow antes que ChargeManager y mantiene apagada una caja de pared sin un vehículo conectado para que las cajas de pared inactivas no quemen el fusible ni maten de hambre a la que ya se está cargando\nel presupuesto actual total sigue ahora la corriente de carga medida: una caja de pared que consume menos de lo permitido recupera su corriente no utilizada después de una parada y se entrega a la siguiente caja de pared, que vuelve a crecer un amperio por ciclo cuando usa lo que tiene; las reducciones siempre se aplican antes de los aumentos para que la corriente sumada nunca supere el fusible\nañadió un registro de depuración conciso para los bucles de control de ChargeManager (superávit, cambio de fase, presupuesto actual total)\ndocs: documentó el presupuesto actual total\nel modo de fase (`psm`) ahora solo se escribe cuando el cargador informa de un modo diferente en lugar de cada ciclo, porque es un ajuste de cargador almacenado\nChargeManager: sin liberación de carga, se envía la corriente de carga o el interruptor de fase mientras no hay ningún vehículo conectado y la liberación o corriente sin cambios ya no se reenvía en cada ciclo, cada escritura despierta los LED del cargador\nla corriente de carga ya no se reenvía cada ciclo: el cargador indica que una «amx» escrita es 0 y solo muestra la corriente aplicada en «amperios», por lo que la comprobación de un valor sin cambios nunca coincidió\nla liberación de carga ya no se reenvía en cada ciclo mientras el vehículo informa que ha terminado de cargarse; el cargador confirma cada escritura y sigue ignorándola, hasta 90 minutos en un caso registrado; se vuelve a intentar, solo que a un ritmo menor después de los primeros cinco minutos\nChargeManager: la corriente de carga ya no sigue un cambio de un amperio en su objetivo, por lo que una nube que pasa ya no hace que vaya y venga en cada ciclo\nChargeManager: una carga continua ahora sigue a una caída del superávit hasta la corriente mínima. La corriente de arranque de 10 A también se aplica a una carga en funcionamiento, por lo que las corrientes entre el mínimo y los 10 A nunca se anotaron y el cargador se quedó en los 10 A escritos en último lugar, sacando la diferencia de la red o de la batería doméstica hasta que el superávit se recuperó o se agotó el retraso de apagado\ndependencias actualizadas",
|
|
15
|
+
"pl": "dodano całkowity budżet bieżący dla całej instalacji (maksymalny całkowity prąd ładowania), który ogranicza zsumowany prąd wszystkich skrzynek ściennych, aby chronić wspólny bezpiecznik, obsługując ChargeNow przed ChargeManager i utrzymując skrzynkę ścienną bez podłączonego pojazdu wyłączoną, dzięki czemu bezczynne skrzynki ścienne nie wyłączają bezpiecznika ani nie zagładzają tego, który już się ładuje\ncałkowity bieżący budżet jest teraz zgodny ze zmierzonym prądem ładowania: skrzynka ścienna, która pobiera mniej niż dozwolone, odzyskuje niewykorzystany prąd po zatrzymaniu i przekazuje do następnej skrzynki ściennej, odrastając o jeden amper na cykl, gdy wykorzystuje to, co otrzymuje - redukcje są zawsze stosowane przed wzrostem, więc zsumowany prąd nigdy nie przekracza bezpiecznika\ndodano zwięzłe rejestrowanie debugowania dla pętli kontrolnych ChargeManager (współdzielenie nadwyżek, przełączanie faz, całkowity bieżący budżet)\ndocs: udokumentowano całkowity bieżący budżet\ntryb fazowy („psm”) jest teraz zapisywany tylko wtedy, gdy ładowarka zgłasza inny tryb zamiast każdego cyklu, ponieważ jest to zapisane ustawienie ładowarki\nChargeManager: brak zwolnienia ładowania, prądu ładowania lub przełącznika fazowego nie jest wysyłany, gdy żaden pojazd nie jest podłączony, a niezmienione zwolnienie lub prąd nie są już wysyłane ponownie w każdym cyklu - każdy zapis budzi diody LED ładowarki\nprąd ładowania nie jest już wysyłany ponownie w każdym cyklu: ładowarka zgłasza zapisane „amx” z powrotem jako 0 i pokazuje tylko przyłożony prąd w „amp”, więc sprawdzenie niezmienionej wartości nigdy się nie zgadza\nzwolnienie ładowania nie jest już wysyłane ponownie w każdym cyklu, gdy pojazd zgłasza, że zakończył ładowanie - ładowarka potwierdza każdy zapis i ignoruje go, do 90 minut w jednej zarejestrowanej obudowie; nadal jest próbowana ponownie, tylko z niższą szybkością po pierwszych pięciu minutach\nChargeManager: prąd ładowania nie następuje już po zmianie celu o jeden amper, więc przechodząca chmura nie sprawia, że przechodząca chmura nie powoduje już przesuwania się w przód iw tył w każdym cyklu\nChargeManager: ładunek bieżący następuje teraz po spadku nadwyżki do minimalnego prądu - prąd startowy 10 A jest również stosowany do ładunku bieżącego, więc prądy między minimalnym a 10 A nigdy nie były zapisywane, a ładowarka pozostawała na ostatnim zapisanym poziomie 10 A, czerpiąc różnicę od sieci lub akumulatora domowego, dopóki nadwyżka nie wyczerpie się lub opóźnienie wyłączenia\nzaktualizowane zależności",
|
|
16
|
+
"uk": "додано загальний поточний бюджет для всієї установки (максимальний загальний струм зарядки), який обмежує підсумований струм усіх настінних боксів для захисту спільного запобіжника, обслуговуючи ChargeNow перед ChargeManager та зберігаючи настінну коробку без підключеного автомобіля вимкненим, щоб непрацюючі настінні коробки не відключали запобіжник і не голодували той, який вже заряджається\nзагальний поточний бюджет тепер відповідає виміряному струму зарядки: настінний блок, який споживає менше дозволеного, невикористаний струм відновлюється після затримки та передається наступному настінному боксу, збільшуючи назад один ампер за цикл, коли він використовує те, що отримує - зменшення завжди застосовуються до збільшення, тому підсумований струм ніколи не перевищує запобіжник\nдодано стислий журнал налагодження для контрольних циклів ChargeManager (розподіл надлишків, перемикання фаз, загальний поточний бюджет)\ndocs: задокументовано загальний поточний бюджет\nфазовий режим (`psm`) тепер записується лише тоді, коли зарядний пристрій повідомляє про інший режим замість кожного циклу, оскільки це збережена настройка зарядного пристрою\nChargeManager: не надсилається заряд, струм зарядки або фазовий перемикач, поки жоден автомобіль не підключений, і незмінний випуск або струм більше не надсилаються кожен цикл - кожен запис пробудив світлодіоди зарядного пристрою\nструм зарядки більше не пересилається кожен цикл: зарядний пристрій повідомляє про записаний `amx` як 0 і показує лише прикладений струм у `ампера`, тому перевірка на незмінне значення ніколи не збігається\nвипуск заряду більше не надсилається на кожному окремому циклі, поки автомобіль повідомляє, що він закінчив зарядку - зарядний пристрій підтверджує кожен запис і продовжує ігнорувати його протягом 90 хвилин в одному зареєстрованому випадку; він все ще повторюється, лише з меншою швидкістю після перших п'яти хвилин\nChargeManager: струм зарядки більше не слідує за зміною цілі на один ампер, тому прохідна хмара більше не змушує його крокувати вперед-назад кожен цикл\nChargeManager: поточний заряд тепер слідує за падінням надлишку до мінімального струму - пусковий струм 10 А також застосовується до працюючого заряду, тому струми від мінімального до 10 А ніколи не записувалися, а зарядний пристрій залишався на 10 А, записуючи різницю від сітки або домашнього акумулятора, поки надлишок не відновиться або затримка відключення не закінчиться\nоновлені залежності",
|
|
17
|
+
"zh-cn": "增加了整个装置的总电流预算(最大总充电电流),该预算限制了所有墙盒的总电流以保护共享保险丝,在 ChargeManager 之前为 ChargeNow 提供服务,并在没有联网车辆的情况下关闭墙箱,这样闲置的墙箱既不会跳闸保险丝,也不会使已经在充电的墙箱饿死\n现在,总电流预算遵循测得的充电电流:消耗低于允许的充电电流的壁箱在停留后将其未使用的电流回收并移交给下一个壁箱,当它使用所获得的电流时,每个周期向后增加一安培——减少的电流总是在增加之前进行的,因此总和的电流永远不会超过保险丝\n为ChargeManager控制回路添加了简洁的调试日志(剩余共享、相位切换、总电流预算)\n文档:记录了当前的总预算\n相位模式 (`psm`) 现在仅在充电器报告不同的模式而不是每个周期时编写,因为它是存储的充电器设置\nChargeManager:没有充电释放、充电电流或相位开关在没有车辆的情况下发送充电电流或相位开关,并且不再每个周期都重新发送不变的释放器或电流——每次写入都会唤醒充电器的 LED\n不再每个周期都会重新发送充电电流:充电器将写入的 “amx” 返回为 0,并且仅以 “amp” 显示施加的电流,因此检查值是否保持不变\n当车辆报告已完成充电时,充电释放不再在每个周期中重新发送-充电器确认每次写入并一直忽略写入,在一个记录的案例中持续长达 90 分钟;它仍在重试,只是前五分钟后速度较低\nChargeManager:充电电流不再遵循目标一安培的变化,因此流过的云层不再使其每个周期都来回移动\nChargeManager:现在,运行电荷会使剩余电流下降到最小电流-10 A 的启动电流也适用于运行中的电荷,因此从来没有写入最小值和 10 A 之间的电流,充电器保持在最后写入的 10 A,从电网或家用电池中抽出差值,直到剩余电流恢复或关机延迟用完\n更新的依赖关系"
|
|
18
|
+
},
|
|
6
19
|
"1.7.0": {
|
|
7
20
|
"en": "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\nChargeManager: the PV surplus is now shared between all wallboxes instead of being offered to each one in full; wallboxes are served in configuration order, so the first entry has priority and later ones only receive the remaining surplus\nChargeManager: a wallbox without a connected vehicle no longer reserves surplus and can no longer starve a wallbox that has a car waiting\nChargeManager: optional automatic 1-/3-phase switching per wallbox (gen 3+, off by default) - switches up when one-phase charging saturates and back down when the surplus can no longer sustain three phases, with a dwell time to prevent flapping\nfixed: automatic phase switching no longer overwrites the manual `Settings.Charge3Phase` request - the automatic decision is now tracked internally, so the user's manual 1-/3-phase setting is preserved (and no longer persisted across restarts as if the user had set it)\ndocs: clarified the multi-wallbox behaviour (list order = priority) and noted that no combined current limit across wallboxes is enforced yet\nupdated axios\nswitch to iobroker testing 6.x\nfixed repochecker warnings\nadded node 26 tests",
|
|
8
21
|
"de": "Admin: Die Wallbox-Liste erklärt jetzt, dass sie ChargeManager-Priorität hat — zuerst erhält der PV-Überschuss, später nur den Rest\nChargeManager: Der PV-Überschuss wird nun auf alle Wallboxen aufgeteilt und nicht mehr auf alle Wallboxen verteilt. Die Wallboxen werden in der Reihenfolge bedient, die anderen erhalten nur den Rest.\nChargeManager: Eine Wallbox ohne vernetztes Fahrzeug reserviert keinen Überschuss mehr und verhungert keine Wallbox mehr, auf die ein Auto wartet\nChargeManager: optionale 1-/3-phasige Umschaltung pro Wallbox (Gen 3+, standardmäßig aus) — schaltet hoch, wenn einphasiges Laden voll ist, und wieder runter, wenn der Überschuss drei Phasen überdauert, mit Haltezeit\nBehoben: Die automatische Phasenumschaltung überschreibt nicht mehr die manuelle Anfrage `Settings.Charge3Phase` — die automatische Entscheidung wird nun intern verfolgt, sodass die 1-/3-Phasen-Einstellung beibehalten wird (und nicht mehr bei Neustarts so, als ob der Nutzer sie gesetzt hätte)\nDocs: hat das Verhalten mehrerer Wallboxen geklärt (Reihenfolge = Priorität) und festgestellt, dass es noch kein Limit gibt\nAxios aktualisiert\nzu iobroker test 6.x wechseln\nRepocheckerwarnungen behoben\nNode 26 Tests hinzugefügt",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "dodano info.unlockedByRFIDName z nazwą karty RFID bieżącej sesji, równolegle do unlockedByRFIDNo (#634)\nprojectUtils: użyj extendObject zamiast setObject w forceMode, aby dostosowania użytkownika przetrwały ponowne uruchomienia\nprojectUtils: naprawiono usuwanie wartości min./maks./kroku z definicji stanu liczbowego\nzaktualizowane zależności",
|
|
81
94
|
"uk": "додано info.unlockedByRFIDName з назвою RFID-картки поточного сеансу, паралельно з unlockedByRFIDNo (#634)\nprojectUtils: використано extendObject замість setObject у forceMode, щоб налаштування користувача зберігалися після перезапусків\nprojectUtils: виправлено помилку, через яку значення min/max/step, рівне 0, видалялося з визначень числових станів\nоновлені залежності",
|
|
82
95
|
"zh-cn": "添加了 info.unlockedByRFIDName,其中包含当前会话的 RFID 卡的名称,与 unlockedByRFIDNo (#634) 并行。\nprojectUtils:在 forceMode 模式下使用 extendObject 而不是 setObject,以便用户自定义设置能够保留在重启后。\nprojectUtils:修复了从数值状态定义中删除最小值/最大值/步长值为 0 的问题\n更新依赖项"
|
|
83
|
-
},
|
|
84
|
-
"1.3.1": {
|
|
85
|
-
"en": "fixed \"unlocked by RFID\" always 0 on gen 3+ chargers: API V2 uses the \"trx\" key instead of \"uby\" (#634)\nlive data is now refreshed every cycle in all modes, so read-only monitoring stays up to date\nAPI V2 not being reachable is now a single warning instead of an error (normal on hardware gen 1/2)\nuse generic go-e brand logo as adapter icon (#843)",
|
|
86
|
-
"de": "Behoben: „Entsperrt durch RFID“ war bei Ladegeräten der 3. Generation und höher immer 0: API V2 verwendet den Schlüssel „trx“ anstelle von „uby“ (#634)\nDie Live-Daten werden nun in allen Modi in jedem Zyklus aktualisiert, sodass die schreibgeschützte Überwachung stets auf dem neuesten Stand bleibt.\nWenn API V2 nicht erreichbar ist, wird nun eine einzelne Warnung anstelle eines Fehlers ausgegeben (normal auf Hardware der 1. und 2. Generation).\ngenerisches go-e Markenlogo als Adaptersymbol verwenden (#843)",
|
|
87
|
-
"ru": "Исправлена ошибка, из-за которой значение \"разблокировано по RFID\" всегда было равно 0 на зарядных устройствах 3-го поколения и выше: API V2 использует ключ \"trx\" вместо \"uby\" (#634)\nТеперь данные в режиме реального времени обновляются каждый цикл во всех режимах, поэтому мониторинг только для чтения всегда остается актуальным.\nТеперь недоступность API V2 отображается в виде одного предупреждения вместо ошибки (что обычно происходит на оборудовании первого/второго поколения).\nиспользовать стандартный логотип бренда go-e в качестве значка адаптера (#843)",
|
|
88
|
-
"pt": "Corrigido o problema \"desbloqueado por RFID\" sempre retornando 0 em carregadores de geração 3+: a API V2 usa a chave \"trx\" em vez de \"uby\" (#634)\nOs dados em tempo real agora são atualizados a cada ciclo em todos os modos, mantendo o monitoramento somente leitura sempre atualizado.\nA inacessibilidade da API V2 agora é exibida como um único aviso, em vez de um erro (comum em hardware de geração 1/2).\nusar o logotipo genérico da marca go-e como ícone do adaptador (#843)",
|
|
89
|
-
"nl": "De waarde \"ontgrendeld door RFID\" is nu altijd 0 op laders van de derde generatie en later: API V2 gebruikt de \"trx\"-sleutel in plaats van \"uby\" (#634).\nLivegegevens worden nu in alle modi bij elke cyclus vernieuwd, zodat de alleen-lezen monitoring altijd actueel blijft.\nAls API V2 niet bereikbaar is, wordt dit nu weergegeven als een enkele waarschuwing in plaats van een foutmelding (normaal op hardware van de eerste en tweede generatie).\nGebruik het generieke Go-E-merklogo als adapterpictogram (#843)",
|
|
90
|
-
"fr": "Correction du problème « déverrouillé par RFID » qui affichait toujours 0 sur les chargeurs de 3e génération et plus : l’API V2 utilise la clé « trx » au lieu de « uby » (#634)\nLes données en direct sont désormais actualisées à chaque cycle dans tous les modes, ce qui permet à la surveillance en lecture seule de rester à jour.\nL'impossibilité d'accéder à l'API V2 est désormais signalée par un simple avertissement au lieu d'une erreur (ce qui était normal sur le matériel de génération 1/2).\nutiliser le logo générique de la marque go-e comme icône d'adaptateur (#843)",
|
|
91
|
-
"it": "Risolto il problema \"sbloccato tramite RFID\" sempre 0 sui caricabatterie di terza generazione e successivi: l'API V2 utilizza la chiave \"trx\" invece di \"uby\" (#634)\nI dati in tempo reale vengono ora aggiornati a ogni ciclo in tutte le modalità, in modo che il monitoraggio in sola lettura rimanga sempre aggiornato.\nL'impossibilità di raggiungere l'API V2 ora genera un singolo avviso anziché un errore (normale sull'hardware di prima/seconda generazione).\nUtilizzare il logo generico del marchio go-e come icona dell'adattatore (#843)",
|
|
92
|
-
"es": "Se corrigió el error \"desbloqueado por RFID\" que siempre era 0 en los cargadores de tercera generación o posteriores: la API V2 usa la clave \"trx\" en lugar de \"uby\" (#634).\nLos datos en tiempo real ahora se actualizan en cada ciclo en todos los modos, por lo que la monitorización de solo lectura se mantiene actualizada.\nEl hecho de que la API V2 no sea accesible ahora se manifiesta como una simple advertencia en lugar de un error (lo cual es normal en hardware de primera y segunda generación).\nusar el logotipo genérico de la marca go-e como icono del adaptador (#843)",
|
|
93
|
-
"pl": "naprawiono błąd „odblokowane przez RFID” zawsze wynoszący 0 na ładowarkach gen. 3+: API V2 używa klucza „trx” zamiast „uby” (#634)\ndane na żywo są teraz odświeżane w każdym cyklu we wszystkich trybach, dzięki czemu monitorowanie w trybie tylko do odczytu pozostaje aktualne\nBrak dostępu do API V2 jest teraz sygnalizowany pojedynczym ostrzeżeniem zamiast błędu (co jest normalne w przypadku sprzętu generacji 1/2)\nużyj ogólnego logo marki go-e jako ikony adaptera (#843)",
|
|
94
|
-
"uk": "виправлено помилку «розблоковано RFID» завжди на 0 на зарядних пристроях покоління 3+: API V2 використовує ключ «trx» замість «uby» (#634)\nДані в реальному часі тепер оновлюються кожного циклу у всіх режимах, тому моніторинг лише для читання залишається актуальним\nНедоступність API V2 тепер відображається як окреме попередження, а не помилка (звичайно на апаратному забезпеченні покоління 1/2).\nвикористовувати загальний логотип бренду go-e як значок адаптера (#843)",
|
|
95
|
-
"zh-cn": "修复了第三代及以后充电器上“通过 RFID 解锁”始终为 0 的问题:API V2 使用“trx”密钥而不是“uby”密钥(#634)\n现在所有模式下的实时数据都会在每个周期刷新,因此只读监控也能保持最新状态。\nAPI V2 无法访问现在只会显示一个警告,而不是错误(在第一代/第二代硬件上属于正常情况)。\n使用通用的 go-e 品牌标志作为适配器图标(#843)"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -176,6 +176,7 @@
|
|
|
176
176
|
"chargeManagerMaxBatteryBonus": 2000,
|
|
177
177
|
"chargeManagerMinCurrent": 6,
|
|
178
178
|
"maxChargeCurrent": 16,
|
|
179
|
+
"maxAmpTotal": 0,
|
|
179
180
|
"batteryMode": "priority",
|
|
180
181
|
"batterySocHysteresis": 0,
|
|
181
182
|
"batterySocMaxAgeSeconds": 0
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.go-e-charger",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.8.0",
|
|
4
4
|
"description": "Adapter for reading go-eCharger data",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Hombach",
|
|
@@ -33,10 +33,10 @@
|
|
|
33
33
|
"@alcalzone/release-script-plugin-manual-review": "^5.2.0",
|
|
34
34
|
"@iobroker/adapter-dev": "^1.5.0",
|
|
35
35
|
"@iobroker/eslint-config": "^2.3.4",
|
|
36
|
-
"@iobroker/testing": "^6.
|
|
37
|
-
"@iobroker/types": "^7.2.
|
|
36
|
+
"@iobroker/testing": "^6.3.0",
|
|
37
|
+
"@iobroker/types": "^7.2.4",
|
|
38
38
|
"@tsconfig/node22": "^22.0.6",
|
|
39
|
-
"@types/node": "^22.20.
|
|
39
|
+
"@types/node": "^22.20.4",
|
|
40
40
|
"source-map-support": "^0.5.21",
|
|
41
41
|
"ts-node": "^10.9.2",
|
|
42
42
|
"typescript": "^6.0.3"
|