iobroker.easee 2.0.0-alpha.1 → 3.0.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 +11 -7
- package/admin/i18n/{de/translations.json → de.json} +11 -0
- package/admin/i18n/{en/translations.json → en.json} +11 -0
- package/admin/i18n/{es/translations.json → es.json} +11 -0
- package/admin/i18n/{fr/translations.json → fr.json} +11 -0
- package/admin/i18n/{it/translations.json → it.json} +11 -0
- package/admin/i18n/{nl/translations.json → nl.json} +11 -0
- package/admin/i18n/{pl/translations.json → pl.json} +11 -0
- package/admin/i18n/{pt/translations.json → pt.json} +11 -0
- package/admin/i18n/{ru/translations.json → ru.json} +11 -0
- package/admin/i18n/{uk/translations.json → uk.json} +11 -0
- package/admin/i18n/{zh-cn/translations.json → zh-cn.json} +11 -0
- package/admin/jsonConfig.json +84 -1
- package/io-package.json +68 -2
- package/lib/{enum.js → enum.ts} +12 -14
- package/lib/observations.ts +156 -0
- package/lib/signalr-http-client.ts +105 -0
- package/lib/tools.ts +120 -0
- package/{main.js → main.ts} +1245 -225
- package/package.json +11 -9
- package/admin/index_m.html +0 -149
- package/admin/style.css +0 -32
- package/admin/words.js +0 -28
- package/lib/tools.js +0 -97
package/README.md
CHANGED
|
@@ -29,6 +29,8 @@ chargerOpMode =
|
|
|
29
29
|
|
|
30
30
|
dynamicCircuitCurrentPX -> All phases must be set within 500ms (script) otherwise the phase will be set to 0.
|
|
31
31
|
|
|
32
|
+
Session polling can run automatically at a recommended interval of seven minutes per detected charger, or use a manually selected interval per charger. The Admin configuration shows the detected charger count, recommendation, and effective interval. Manual values below the recommendation are raised automatically to preserve the API rate limit. The last session request time is retained across adapter restarts.
|
|
33
|
+
|
|
32
34
|
## Credits
|
|
33
35
|
|
|
34
36
|
This adapter would not have been possible without the great work of @Newan (https://github.com/Newan), who developed former releases of this adapter.
|
|
@@ -38,6 +40,15 @@ This adapter would not have been possible without the great work of @Newan (http
|
|
|
38
40
|
Placeholder for the next version (at the beginning of the line):
|
|
39
41
|
### **WORK IN PROGRESS**
|
|
40
42
|
-->
|
|
43
|
+
### 3.0.0 (2026-10-23)
|
|
44
|
+
- (Voodoo2man) Migrated the adapter to TypeScript; Node.js 22.19.0 or newer is required
|
|
45
|
+
- (Voodoo2man) Updated adapter tooling, Admin configuration, and runtime metadata
|
|
46
|
+
|
|
47
|
+
### 2.0.0 (2026-10-18)
|
|
48
|
+
- (Voodoo2man) Improved charger status and connectivity handling with the Observations API, SignalR resilience, bounded polling, and API retries, incorporating contributions from @Voodoo2man, @Michaelnorge, @Codibris, and @m1chel87, with earlier Node.js and JSON-config groundwork from @NCIceWolf.
|
|
49
|
+
- (Voodoo2man) Improved circuit-current update reliability and added configurable, rate-limit-aware session polling across chargers.
|
|
50
|
+
- (Voodoo2man) Added configurable net charging prices and VAT with synchronized gross prices.
|
|
51
|
+
|
|
41
52
|
### 2.0.0-alpha.1 (2026-10-17)
|
|
42
53
|
- (mcm1957) Adapter has been migrated into the iobroker-community-adapter-organisation
|
|
43
54
|
- (iobroker-bot) Adapter requires node.js >= 22 now.
|
|
@@ -53,13 +64,6 @@ This adapter would not have been possible without the great work of @Newan (http
|
|
|
53
64
|
* (walburgf) modified internationalization to use jsonConfig.json. this needs at least ioBroker.admin version 5
|
|
54
65
|
* (walburgf) added dependency to admin >=v5.1.28
|
|
55
66
|
|
|
56
|
-
### 1.0.8 (2023-07-02)
|
|
57
|
-
* (Newan) small fixes
|
|
58
|
-
|
|
59
|
-
### 1.0.7
|
|
60
|
-
* (Newan) Changed login URL
|
|
61
|
-
|
|
62
|
-
|
|
63
67
|
[Older changelogs can be found there](CHANGELOG_OLD.md)
|
|
64
68
|
|
|
65
69
|
## Donation
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "API-Einstellungen",
|
|
3
3
|
"Account settings": "Account Einstellungen",
|
|
4
4
|
"Api settings": "API-Einstellungen",
|
|
5
|
+
"Automatic": "Automatisch",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Der automatische Modus verwendet sieben Minuten pro erkannter Wallbox. Im manuellen Modus legen Sie das gewünschte Intervall pro Wallbox fest.",
|
|
7
|
+
"Detected chargers": "Erkannte Wallboxen",
|
|
5
8
|
"Donate": "Spenden",
|
|
9
|
+
"Effective interval per charger": "Effektives Intervall pro Wallbox",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Wenn Ihnen der Adapter gefällt und Sie die Weiterentwicklung unterstützen möchten, können Sie sich unter PayPal mit einer Spende bei mir bedanken. Gerne können Sie mir auch Feature-Anfragen für zukünftige Versionen des Adapters senden.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Intervalle unterhalb der Empfehlung werden vorsichtshalber auf die Empfehlung angehoben.",
|
|
12
|
+
"Manual": "Manuell",
|
|
13
|
+
"Manual session interval per charger": "Manuelles Sitzungsintervall pro Wallbox",
|
|
7
14
|
"Password": "Passwort",
|
|
8
15
|
"Poll interval in seconds": "Abfrageintervall in Sekunden",
|
|
16
|
+
"Recommended interval per charger": "Empfohlenes Intervall pro Wallbox",
|
|
17
|
+
"Session polling": "Sitzungsabfrage",
|
|
18
|
+
"Session polling mode": "Modus der Sitzungsabfrage",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "Das konfigurierte Intervall liegt unter der Empfehlung und wird entsprechend angehoben.",
|
|
9
20
|
"Use SignalR": "Verwenden Sie SignalR",
|
|
10
21
|
"Username": "Nutzername",
|
|
11
22
|
"detailed info logging": "detaillierte Info-Protokollierung",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "API settings",
|
|
3
3
|
"Account settings": "Account settings",
|
|
4
4
|
"Api settings": "Api settings",
|
|
5
|
+
"Automatic": "Automatic",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.",
|
|
7
|
+
"Detected chargers": "Detected chargers",
|
|
5
8
|
"Donate": "Donate",
|
|
9
|
+
"Effective interval per charger": "Effective interval per charger",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Intervals below the recommendation are conservatively clamped to the recommendation.",
|
|
12
|
+
"Manual": "Manual",
|
|
13
|
+
"Manual session interval per charger": "Manual session interval per charger",
|
|
7
14
|
"Password": "Password",
|
|
8
15
|
"Poll interval in seconds": "Poll interval in seconds",
|
|
16
|
+
"Recommended interval per charger": "Recommended interval per charger",
|
|
17
|
+
"Session polling": "Session polling",
|
|
18
|
+
"Session polling mode": "Session polling mode",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "The configured interval is below the recommendation and will be clamped.",
|
|
9
20
|
"Use SignalR": "Use SignalR",
|
|
10
21
|
"Username": "Username",
|
|
11
22
|
"detailed info logging": "detailed info logging",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Configuración de la API",
|
|
3
3
|
"Account settings": "Configuraciones de la cuenta",
|
|
4
4
|
"Api settings": "Configuración de api",
|
|
5
|
+
"Automatic": "Automático",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "El modo automático usa siete minutos por cargador detectado. El modo manual establece el intervalo deseado por cargador.",
|
|
7
|
+
"Detected chargers": "Cargadores detectados",
|
|
5
8
|
"Donate": "Donar",
|
|
9
|
+
"Effective interval per charger": "Intervalo efectivo por cargador",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Si le gusta el adaptador y desea apoyar el desarrollo posterior, puede agradecerme con una donación a través de PayPal. También puede enviarme solicitudes de funciones para futuras versiones del adaptador.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Los intervalos inferiores a la recomendación se ajustan a esta por seguridad.",
|
|
12
|
+
"Manual": "Manual",
|
|
13
|
+
"Manual session interval per charger": "Intervalo manual por cargador",
|
|
7
14
|
"Password": "Contraseña",
|
|
8
15
|
"Poll interval in seconds": "Intervalo de sondeo en segundos",
|
|
16
|
+
"Recommended interval per charger": "Intervalo recomendado por cargador",
|
|
17
|
+
"Session polling": "Sondeo de sesiones",
|
|
18
|
+
"Session polling mode": "Modo de sondeo de sesiones",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "El intervalo configurado es inferior a la recomendación y se ajustará.",
|
|
9
20
|
"Use SignalR": "Usar SignalR",
|
|
10
21
|
"Username": "Nombre de usuario",
|
|
11
22
|
"detailed info logging": "registro de información detallada",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Paramètres de l'API",
|
|
3
3
|
"Account settings": "Paramètres du compte",
|
|
4
4
|
"Api settings": "Paramètres de l'API",
|
|
5
|
+
"Automatic": "Automatique",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Le mode automatique utilise sept minutes par borne détectée. Le mode manuel définit l'intervalle souhaité par borne.",
|
|
7
|
+
"Detected chargers": "Bornes détectées",
|
|
5
8
|
"Donate": "Donner",
|
|
9
|
+
"Effective interval per charger": "Intervalle effectif par borne",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Si vous aimez l'adaptateur et souhaitez soutenir le développement ultérieur, vous pouvez me remercier en faisant un don via PayPal. Vous pouvez également m'envoyer des demandes de fonctionnalités pour les futures versions de l'adaptateur.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Les intervalles inférieurs à la recommandation sont relevés par précaution à cette valeur.",
|
|
12
|
+
"Manual": "Manuel",
|
|
13
|
+
"Manual session interval per charger": "Intervalle manuel par borne",
|
|
7
14
|
"Password": "Mot de passe",
|
|
8
15
|
"Poll interval in seconds": "Intervalle d'interrogation en secondes",
|
|
16
|
+
"Recommended interval per charger": "Intervalle recommandé par borne",
|
|
17
|
+
"Session polling": "Interrogation des sessions",
|
|
18
|
+
"Session polling mode": "Mode d'interrogation des sessions",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "L'intervalle configuré est inférieur à la recommandation et sera relevé.",
|
|
9
20
|
"Use SignalR": "Utiliser SignalR",
|
|
10
21
|
"Username": "Nom d'utilisateur",
|
|
11
22
|
"detailed info logging": "journalisation des informations détaillées",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Impostazioni dell'API",
|
|
3
3
|
"Account settings": "Impostazioni dell'account",
|
|
4
4
|
"Api settings": "Impostazioni API",
|
|
5
|
+
"Automatic": "Automatico",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "La modalità automatica usa sette minuti per ogni caricatore rilevato. La modalità manuale imposta l'intervallo desiderato per caricatore.",
|
|
7
|
+
"Detected chargers": "Caricatori rilevati",
|
|
5
8
|
"Donate": "Donare",
|
|
9
|
+
"Effective interval per charger": "Intervallo effettivo per caricatore",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Se ti piace l'adattatore e vuoi supportare l'ulteriore sviluppo, puoi ringraziarmi con una donazione tramite PayPal. Puoi anche inviarmi richieste di funzionalità per le versioni future dell'adattatore.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Gli intervalli inferiori alla raccomandazione vengono aumentati per precauzione.",
|
|
12
|
+
"Manual": "Manuale",
|
|
13
|
+
"Manual session interval per charger": "Intervallo manuale per caricatore",
|
|
7
14
|
"Password": "Parola d'ordine",
|
|
8
15
|
"Poll interval in seconds": "Intervallo di polling in secondi",
|
|
16
|
+
"Recommended interval per charger": "Intervallo consigliato per caricatore",
|
|
17
|
+
"Session polling": "Interrogazione sessioni",
|
|
18
|
+
"Session polling mode": "Modalità di interrogazione sessioni",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "L'intervallo configurato è inferiore alla raccomandazione e verrà aumentato.",
|
|
9
20
|
"Use SignalR": "Usa SignalR",
|
|
10
21
|
"Username": "Nome utente",
|
|
11
22
|
"detailed info logging": "registrazione di informazioni dettagliate",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "API-instellingen",
|
|
3
3
|
"Account settings": "Account instellingen",
|
|
4
4
|
"Api settings": "API-instellingen",
|
|
5
|
+
"Automatic": "Automatisch",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "De automatische modus gebruikt zeven minuten per gedetecteerd laadpunt. In de handmatige modus stelt u het gewenste interval per laadpunt in.",
|
|
7
|
+
"Detected chargers": "Gedetecteerde laadpunten",
|
|
5
8
|
"Donate": "Doneer",
|
|
9
|
+
"Effective interval per charger": "Effectief interval per laadpunt",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Als je de adapter leuk vindt en de verdere ontwikkeling wilt ondersteunen, kun je me bedanken met een donatie via PayPal. U kunt mij ook functieverzoeken sturen voor toekomstige versies van de adapter.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Intervallen onder de aanbeveling worden uit voorzorg verhoogd tot de aanbeveling.",
|
|
12
|
+
"Manual": "Handmatig",
|
|
13
|
+
"Manual session interval per charger": "Handmatig sessie-interval per laadpunt",
|
|
7
14
|
"Password": "Wachtwoord",
|
|
8
15
|
"Poll interval in seconds": "Poll-interval in seconden",
|
|
16
|
+
"Recommended interval per charger": "Aanbevolen interval per laadpunt",
|
|
17
|
+
"Session polling": "Sessiepeiling",
|
|
18
|
+
"Session polling mode": "Sessiepeilingsmodus",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "Het ingestelde interval ligt onder de aanbeveling en wordt verhoogd.",
|
|
9
20
|
"Use SignalR": "Gebruik SignaalR",
|
|
10
21
|
"Username": "Gebruikersnaam",
|
|
11
22
|
"detailed info logging": "gedetailleerde info logging",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Ustawienia interfejsu API",
|
|
3
3
|
"Account settings": "Ustawienia konta",
|
|
4
4
|
"Api settings": "Ustawienia API",
|
|
5
|
+
"Automatic": "Automatycznie",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Tryb automatyczny używa siedmiu minut na wykrytą ładowarkę. Tryb ręczny ustawia żądany interwał dla każdej ładowarki.",
|
|
7
|
+
"Detected chargers": "Wykryte ładowarki",
|
|
5
8
|
"Donate": "Podarować",
|
|
9
|
+
"Effective interval per charger": "Efektywny interwał dla ładowarki",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Jeśli podoba Ci się adapter i chcesz wesprzeć dalszy rozwój, możesz mi podziękować darowizną w systemie PayPal. Zapraszam również do przesyłania mi propozycji funkcji dla przyszłych wersji adaptera.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Interwały krótsze od zalecanych są ostrożnościowo wydłużane do zalecanej wartości.",
|
|
12
|
+
"Manual": "Ręcznie",
|
|
13
|
+
"Manual session interval per charger": "Ręczny interwał dla ładowarki",
|
|
7
14
|
"Password": "Hasło",
|
|
8
15
|
"Poll interval in seconds": "Interwał sondowania w sekundach",
|
|
16
|
+
"Recommended interval per charger": "Zalecany interwał dla ładowarki",
|
|
17
|
+
"Session polling": "Odpytanie sesji",
|
|
18
|
+
"Session polling mode": "Tryb odpytywania sesji",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "Skonfigurowany interwał jest krótszy od zalecanego i zostanie wydłużony.",
|
|
9
20
|
"Use SignalR": "Użyj SignalR",
|
|
10
21
|
"Username": "Nazwa użytkownika",
|
|
11
22
|
"detailed info logging": "szczegółowe rejestrowanie informacji",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "configurações de API",
|
|
3
3
|
"Account settings": "Configurações de Conta",
|
|
4
4
|
"Api settings": "Configurações de API",
|
|
5
|
+
"Automatic": "Automático",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "O modo automático usa sete minutos por carregador detectado. O modo manual define o intervalo desejado por carregador.",
|
|
7
|
+
"Detected chargers": "Carregadores detectados",
|
|
5
8
|
"Donate": "Doar",
|
|
9
|
+
"Effective interval per charger": "Intervalo efetivo por carregador",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Se você gosta do adaptador e deseja apoiar o desenvolvimento, pode me agradecer com uma doação no PayPal. Você também pode me enviar solicitações de recursos para versões futuras do adaptador.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Intervalos abaixo da recomendação são aumentados por precaução até o valor recomendado.",
|
|
12
|
+
"Manual": "Manual",
|
|
13
|
+
"Manual session interval per charger": "Intervalo manual por carregador",
|
|
7
14
|
"Password": "Senha",
|
|
8
15
|
"Poll interval in seconds": "Intervalo de votação em segundos",
|
|
16
|
+
"Recommended interval per charger": "Intervalo recomendado por carregador",
|
|
17
|
+
"Session polling": "Consulta de sessões",
|
|
18
|
+
"Session polling mode": "Modo de consulta de sessões",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "O intervalo configurado está abaixo da recomendação e será aumentado.",
|
|
9
20
|
"Use SignalR": "Usar SignalR",
|
|
10
21
|
"Username": "Nome de usuário",
|
|
11
22
|
"detailed info logging": "registro de informações detalhadas",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Настройки API",
|
|
3
3
|
"Account settings": "Настройки учетной записи",
|
|
4
4
|
"Api settings": "Настройки API",
|
|
5
|
+
"Automatic": "Автоматически",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Автоматический режим использует семь минут на каждую обнаруженную станцию. В ручном режиме задается интервал для каждой станции.",
|
|
7
|
+
"Detected chargers": "Обнаруженные зарядные станции",
|
|
5
8
|
"Donate": "Пожертвовать",
|
|
9
|
+
"Effective interval per charger": "Фактический интервал для станции",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Если вам понравился адаптер и вы хотите поддержать его дальнейшее развитие, вы можете отблагодарить меня пожертвованием через PayPal. Вы также можете присылать мне запросы функций для будущих версий адаптера.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Интервалы ниже рекомендации автоматически увеличиваются до рекомендованного значения.",
|
|
12
|
+
"Manual": "Вручную",
|
|
13
|
+
"Manual session interval per charger": "Интервал опроса зарядной станции вручную",
|
|
7
14
|
"Password": "Пароль",
|
|
8
15
|
"Poll interval in seconds": "Интервал опроса в секундах",
|
|
16
|
+
"Recommended interval per charger": "Рекомендуемый интервал для станции",
|
|
17
|
+
"Session polling": "Опрос сессий",
|
|
18
|
+
"Session polling mode": "Режим опроса сессий",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "Заданный интервал ниже рекомендации и будет увеличен.",
|
|
9
20
|
"Use SignalR": "Используйте сигналR",
|
|
10
21
|
"Username": "Имя пользователя",
|
|
11
22
|
"detailed info logging": "регистрация подробной информации",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "Налаштування API",
|
|
3
3
|
"Account settings": "Налаштування аккаунта",
|
|
4
4
|
"Api settings": "",
|
|
5
|
+
"Automatic": "Автоматично",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "Автоматичний режим використовує сім хвилин для кожної виявленої станції. У ручному режимі задається інтервал для кожної станції.",
|
|
7
|
+
"Detected chargers": "Виявлені зарядні станції",
|
|
5
8
|
"Donate": "Пожертвуйте",
|
|
9
|
+
"Effective interval per charger": "Фактичний інтервал для станції",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "Якщо вам подобається адаптер і ви хочете підтримати подальший розвиток, ви можете віддячити мені пожертвою через PayPal. Ви також можете надсилати мені запити щодо функцій для майбутніх версій адаптера.",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "Інтервали, коротші за рекомендовані, автоматично збільшуються до рекомендованого значення.",
|
|
12
|
+
"Manual": "Вручну",
|
|
13
|
+
"Manual session interval per charger": "Інтервал вручну для зарядної станції",
|
|
7
14
|
"Password": "Пароль",
|
|
8
15
|
"Poll interval in seconds": "Інтервал опитування в секундах",
|
|
16
|
+
"Recommended interval per charger": "Рекомендований інтервал для станції",
|
|
17
|
+
"Session polling": "Опитування сеансів",
|
|
18
|
+
"Session polling mode": "Режим опитування сеансів",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "Заданий інтервал коротший за рекомендований і буде збільшений.",
|
|
9
20
|
"Use SignalR": "Використовуйте SignalR",
|
|
10
21
|
"Username": "Ім'я користувача",
|
|
11
22
|
"detailed info logging": "детальна реєстрація інформації",
|
|
@@ -2,10 +2,21 @@
|
|
|
2
2
|
"API settings": "API设置",
|
|
3
3
|
"Account settings": "帐号设定",
|
|
4
4
|
"Api settings": "api设置",
|
|
5
|
+
"Automatic": "自动",
|
|
6
|
+
"Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger.": "自动模式按每个检测到的充电桩七分钟计算。手动模式设置每个充电桩所需的间隔。",
|
|
7
|
+
"Detected chargers": "检测到的充电桩数量",
|
|
5
8
|
"Donate": "捐",
|
|
9
|
+
"Effective interval per charger": "每个充电桩的实际间隔",
|
|
6
10
|
"If you like the adapter and want to support the further development, you can thank me with a donation under PayPal. You are also welcome to send me feature requests for future versions of the adapter.": "如果您喜欢该适配器并希望支持进一步的开发,您可以通过 PayPal 捐款来感谢我。也欢迎您向我发送有关适配器未来版本的功能请求。",
|
|
11
|
+
"Intervals below the recommendation are conservatively clamped to the recommendation.": "低于建议值的间隔将保守地调整为建议值。",
|
|
12
|
+
"Manual": "手动",
|
|
13
|
+
"Manual session interval per charger": "每个充电桩的手动会话间隔",
|
|
7
14
|
"Password": "密码",
|
|
8
15
|
"Poll interval in seconds": "轮询间隔(以秒为单位)",
|
|
16
|
+
"Recommended interval per charger": "每个充电桩的建议间隔",
|
|
17
|
+
"Session polling": "会话轮询",
|
|
18
|
+
"Session polling mode": "会话轮询模式",
|
|
19
|
+
"The configured interval is below the recommendation and will be clamped.": "配置的间隔低于建议值,将自动调整。",
|
|
9
20
|
"Use SignalR": "使用 SignalR",
|
|
10
21
|
"Username": "用户名",
|
|
11
22
|
"detailed info logging": "详细信息记录",
|
package/admin/jsonConfig.json
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
"lg": 4,
|
|
18
18
|
"xl": 4,
|
|
19
19
|
"label": "Username",
|
|
20
|
-
"help": "
|
|
20
|
+
"help": "username to access Easee cloud"
|
|
21
21
|
},
|
|
22
22
|
"client_secret": {
|
|
23
23
|
"type": "password",
|
|
@@ -47,7 +47,90 @@
|
|
|
47
47
|
"label": "polltime",
|
|
48
48
|
"help": "Poll interval in seconds"
|
|
49
49
|
},
|
|
50
|
+
"_sessionPollingHeadline": {
|
|
51
|
+
"newLine": true,
|
|
52
|
+
"type": "header",
|
|
53
|
+
"size": 2,
|
|
54
|
+
"text": "Session polling"
|
|
55
|
+
},
|
|
56
|
+
"sessionPollMode": {
|
|
57
|
+
"type": "select",
|
|
58
|
+
"xs": 12,
|
|
59
|
+
"sm": 12,
|
|
60
|
+
"md": 6,
|
|
61
|
+
"lg": 4,
|
|
62
|
+
"xl": 4,
|
|
63
|
+
"options": [
|
|
64
|
+
{ "label": "Automatic", "value": "auto" },
|
|
65
|
+
{ "label": "Manual", "value": "manual" }
|
|
66
|
+
],
|
|
67
|
+
"default": "auto",
|
|
68
|
+
"label": "Session polling mode",
|
|
69
|
+
"help": "Automatic mode uses seven minutes per detected charger. Manual mode sets the desired interval per charger."
|
|
70
|
+
},
|
|
71
|
+
"sessionPollInterval": {
|
|
72
|
+
"type": "number",
|
|
73
|
+
"xs": 12,
|
|
74
|
+
"sm": 12,
|
|
75
|
+
"md": 6,
|
|
76
|
+
"lg": 4,
|
|
77
|
+
"xl": 4,
|
|
78
|
+
"min": 7,
|
|
79
|
+
"step": 1,
|
|
80
|
+
"unit": "min",
|
|
81
|
+
"default": 60,
|
|
82
|
+
"label": "Manual session interval per charger",
|
|
83
|
+
"help": "Intervals below the recommendation are conservatively clamped to the recommendation.",
|
|
84
|
+
"hidden": "data.sessionPollMode !== 'manual'"
|
|
85
|
+
},
|
|
86
|
+
"_sessionChargerCount": {
|
|
87
|
+
"newLine": true,
|
|
88
|
+
"type": "state",
|
|
89
|
+
"oid": "info.sessionPollChargerCount",
|
|
90
|
+
"control": "text",
|
|
91
|
+
"xs": 12,
|
|
92
|
+
"sm": 8,
|
|
93
|
+
"md": 6,
|
|
94
|
+
"lg": 4,
|
|
95
|
+
"xl": 4,
|
|
96
|
+
"label": "Detected chargers"
|
|
97
|
+
},
|
|
98
|
+
"_sessionRecommendedInterval": {
|
|
99
|
+
"newLine": true,
|
|
100
|
+
"type": "state",
|
|
101
|
+
"oid": "info.sessionPollRecommendedInterval",
|
|
102
|
+
"control": "text",
|
|
103
|
+
"xs": 12,
|
|
104
|
+
"sm": 8,
|
|
105
|
+
"md": 6,
|
|
106
|
+
"lg": 4,
|
|
107
|
+
"xl": 4,
|
|
108
|
+
"unit": "min",
|
|
109
|
+
"label": "Recommended interval per charger"
|
|
110
|
+
},
|
|
111
|
+
"_sessionEffectiveInterval": {
|
|
112
|
+
"newLine": true,
|
|
113
|
+
"type": "state",
|
|
114
|
+
"oid": "info.sessionPollEffectiveInterval",
|
|
115
|
+
"control": "text",
|
|
116
|
+
"xs": 12,
|
|
117
|
+
"sm": 8,
|
|
118
|
+
"md": 6,
|
|
119
|
+
"lg": 4,
|
|
120
|
+
"xl": 4,
|
|
121
|
+
"unit": "min",
|
|
122
|
+
"label": "Effective interval per charger"
|
|
123
|
+
},
|
|
124
|
+
"_sessionIntervalWarning": {
|
|
125
|
+
"type": "infoBox",
|
|
126
|
+
"boxType": "warning",
|
|
127
|
+
"closeable": false,
|
|
128
|
+
"text": "The configured interval is below the recommendation and will be clamped.",
|
|
129
|
+
"dependsOnStates": { "chargerCount": ".info.sessionPollChargerCount" },
|
|
130
|
+
"hidden": "data.sessionPollMode !== 'manual' || !_states.chargerCount?.val || data.sessionPollInterval >= _states.chargerCount.val * 7"
|
|
131
|
+
},
|
|
50
132
|
"signalR": {
|
|
133
|
+
"newLine": true,
|
|
51
134
|
"type": "checkbox",
|
|
52
135
|
"xs": 12,
|
|
53
136
|
"sm": 12,
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "easee",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "3.0.0",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.0": {
|
|
7
|
+
"en": "Migrated the adapter to TypeScript; Node.js 22.19.0 or newer is required\nUpdated adapter tooling, Admin configuration, and runtime metadata",
|
|
8
|
+
"de": "Adapter auf TypeScript migriert; Node.js 22.19.0 oder neuer nötig\nAdapter-Tools, Admin-Konfiguration und Runtime-Metadaten aktualisiert",
|
|
9
|
+
"ru": "Адаптер перенесен на TypeScript; требуется Node.js 22.19.0 или новее\nОбновленные инструменты адаптера, конфигурация администратора и метаданные времени выполнения",
|
|
10
|
+
"pt": "Migrou o adaptador para o TypeScript; requer Node.js 22.19.0 ou maior\nAdaptador, configuração Admin e metadados de tempo de execução atualizados",
|
|
11
|
+
"nl": "De adapter is overgezet naar TypeScript; Node.js 22.19.0 of nieuwer is vereist\nBijgewerkte adapterhulpmiddelen, beheerdersconfiguratie en runtime-metagegevens",
|
|
12
|
+
"fr": "L'adaptateur a migré vers TypeScript ; Node.js 22.19.0 ou plus récent est requis\nOutils d'adaptation, configuration admin et métadonnées d'exécution mis à jour",
|
|
13
|
+
"it": "È migrato l'adattatore a TypeScript; è richiesto Node.js 22.19.0 o più\nAdapter, configurazione admin e metadati di runtime aggiornati",
|
|
14
|
+
"es": "Migró el adaptador a TypeScript; se necesita Node.js 22.19.0 o más\nSe actualizaron los adaptadores, la configuración de administración y los metadatos",
|
|
15
|
+
"pl": "Przeniesiono adapter do TypeScript; wymagany jest plik Node.js 22.19.0 lub nowszy\nZaktualizowano oprzyrządowanie adaptera, konfigurację administratora i metadane środowiska wykonawczego",
|
|
16
|
+
"uk": "Перемістив адаптер на TypeScript; потрібен Node.js 22.19.0 або новіший\nОновлені інструменти адаптера, конфігурація адміністратора та метадані виконання",
|
|
17
|
+
"zh-cn": "已将适配器迁移到 TypeScript;需要 Node.js 22.19.0 或更高版本\n更新了适配器工具、管理员配置和运行时元数据"
|
|
18
|
+
},
|
|
19
|
+
"2.0.0": {
|
|
20
|
+
"en": "Improved charger status and connectivity handling with the Observations API, SignalR resilience, bounded polling, and API retries, incorporating contributions from @Voodoo2man, @Michaelnorge, @Codibris, and @m1chel87, with earlier Node.js and JSON-config groundwork from @NCIceWolf.\nImproved circuit-current update reliability and added configurable, rate-limit-aware session polling across chargers.\nAdded configurable net charging prices and VAT with synchronized gross prices.",
|
|
21
|
+
"de": "Verbesserter Ladestatus und Konnektivität mit Observations API, SignalR Resilience, Bounded Polling und API-Wiederholungen, mit Beiträgen von @Voodoo2man, @Michaelnorge, @Codibris und @m1chel87, mit früheren Node.js- und JSON-Config-Grundlagen von @NCIceWolf.\nZuverlässiger Stromausgleich und konfigurierbares, ratenbegrenztes Session-Polling auf Ladegeräten hinzugefügt.\nNettopreise und Mehrwertsteuer mit synchronisierten Bruttopreisen hinzugefügt.",
|
|
22
|
+
"ru": "Улучшена обработка состояния зарядного устройства и подключений с помощью API Observations, устойчивость SignalR, ограниченный опрос и повторные попытки подключения к API, включая материалы @Voodoo2man, @Michaelnorge, @Codibris и @m1chel87, а также более ранние разработки Node.js и JSON-Config от. @NCIceWolf\nПовышена надежность обновления тока в цепи и добавлен настраиваемый опрос сеансов зарядных устройств с учетом ограничений скорости.\nДобавлены настраиваемые чистые цены оплаты и НДС с синхронизированными ценами брутто.",
|
|
23
|
+
"pt": "Melhorou o status do carregador e a conectividade com a API Observations, resiliência SignalR, sondagem limitada e novas tentativas de API, incorporando contribuições de @Voodoo2man, @Michaelnorge, @Codibris e @m1chel87, com base anterior em Node.js e JSON-config de @NCIceWolf.\nMaior confiabilidade na atualização de corrente e adição de sondagem configurável e com limite de taxa em carregadores.\nAdicionou preços líquidos configuráveis e IVA com preços brutos sincronizados.",
|
|
24
|
+
"nl": "Verbeterde laadstatus en connectiviteitsafhandeling met de Observations API, de veerkracht van SignalR, begrensde peilingen en API-nieuwe pogingen, met bijdragen van @Voodoo2man, @Michaelnorge, @Codibris en @m1chel87, met eerdere basiswerkzaamheden voor Node.js en JSON-configuratie van @NCIceWolf.\nVerbeterde betrouwbaarheid van de actualisering van het circuit en toegevoegde, configureerbare sessiepeilingen die zich bewust zijn van de snelheidslimieten voor alle laders.\nConfigureerbare netto-laadprijzen en btw toegevoegd aan gesynchroniseerde brutoprijzen.",
|
|
25
|
+
"fr": "Amélioration de l'état du chargeur et de la gestion de la connectivité grâce à l'API Observations, à la résilience de SignalR, aux sondages limités et aux nouvelles tentatives d'API, avec les contributions de @Voodoo2man, @Michaelnorge, @Codibris et @m1chel87, et les bases de Node.js et JSON-Config de @NCIceWolf.\nFiabilité accrue des mises à jour du courant et ajout d'un sondage de session configurable et sensible aux limites de débit sur les chargeurs.\nAjout de prix nets configurables et de TVA avec prix bruts synchronisés.",
|
|
26
|
+
"it": "Migliore gestione dello stato del caricabatterie e della connettività con Observations API, resilienza SignalR, bounded polling e API Retries, con i contributi di @Voodoo2man, @Michaelnorge, @Codibris e @m1chel87, con le precedenti basi di Node.js e JSON-Config di @NCIceWolf.\nMigliore affidabilità degli aggiornamenti di circuito e polling configurabile e sensibile ai limiti di velocità tra i caricabatterie.\nAggiunti prezzi netti configurabili e IVA con prezzi lordi sincronizzati.",
|
|
27
|
+
"es": "Mejora del estado del cargador y el manejo de la conectividad con la API de Observaciones, la resiliencia de SignalR, el sondeo limitado y los reintentos de la API, incorporando contribuciones de @Voodoo2man, @Michaelnorge, @Codibris y @m1chel87, con bases anteriores de Node.js y JSON Config de @NCIceWolf.\nMejora de la fiabilidad de las actualizaciones de los circuitos y añade sondeos de sesión configurables y con límite de velocidad en los cargadores.\nSe han añadido precios netos e IVA configurables con precios brutos sincronizados.",
|
|
28
|
+
"pl": "Poprawiono stan ładowarki i obsługę łączności dzięki interfejsowi API obserwacji, odporności SignalR, ograniczonym sondażom i ponownym próbom API, uwzględniając wkład @Voodoo2man, @Michaelnorge, @Codibris i @m1chel87, z wcześniejszymi podstawami Node.js i JSON-config z @NCIceWolf.\nPoprawiona niezawodność aktualizacji prądu obwodu i dodane konfigurowalne, dostosowane do limitu prędkości sondażu sesji między ładowarkami.\nDodano konfigurowalne ceny naliczania netto i podatek VAT ze zsynchronizowanymi cenami brutto.",
|
|
29
|
+
"uk": "Покращений стан зарядного пристрою та обробка підключення за допомогою API спостережень, стійкості SignalR, обмеженого опитування та повторних спроб API, включаючи внески від @Voodoo2man, @Michaelnorge, @Codibris та @m1chel87, з попередніми основами Node.js та JSON-config від @NCIceWolf.\nПокращена надійність оновлення струму ланцюга та додано настроюване опитування сеансів із урахуванням обмеження швидкості між зарядними пристроями.\nДодані настроювані чисті ціни нарахування та ПДВ із синхронізованими валовими цінами.",
|
|
30
|
+
"zh-cn": "利用观察 API、SignalR 弹性、限定轮询和 API 重试改进了充电器状态和连接处理,整合了来自 @Voodoo2man、@Michaelnorge、@Codibris 和 @m1chel87 的贡献,以及之前来自 @NCIceWolf 的 Node.js 和 JSON-Config 基础工作。\n提高了电路电流更新的可靠性,并增加了充电器之间可配置、可感知速率限制的会话轮询。\n增加了可配置的净收费价格和增值税,并同步了总价格。"
|
|
31
|
+
},
|
|
6
32
|
"2.0.0-alpha.1": {
|
|
7
33
|
"en": "Adapter has been migrated into the iobroker-community-adapter-organisation\nAdapter requires node.js >= 22 now.\nAdapter requires js-controller >= 7.2.2 now\nAdapter requires admin >= 7.7.22 now",
|
|
8
34
|
"de": "Adapter wurde in die Iobroker-Community-Adapter-Organisation migriert\nAdapter benötigt jetzt node.js >= 22.\nAdapter benötigt jetzt JS-Controller >= 7.2.2\nAdapter benötigt jetzt admin >= 7.7.22",
|
|
@@ -102,7 +128,7 @@
|
|
|
102
128
|
"tier": 3,
|
|
103
129
|
"mode": "daemon",
|
|
104
130
|
"type": "vehicle",
|
|
105
|
-
"compact":
|
|
131
|
+
"compact": false,
|
|
106
132
|
"connectionType": "cloud",
|
|
107
133
|
"dataSource": "poll",
|
|
108
134
|
"adminUI": {
|
|
@@ -129,6 +155,8 @@
|
|
|
129
155
|
"username": "+49",
|
|
130
156
|
"client_secret": "",
|
|
131
157
|
"polltime": 30,
|
|
158
|
+
"sessionPollMode": "auto",
|
|
159
|
+
"sessionPollInterval": 60,
|
|
132
160
|
"signalR": false,
|
|
133
161
|
"logtype": false
|
|
134
162
|
},
|
|
@@ -154,6 +182,44 @@
|
|
|
154
182
|
"def": false
|
|
155
183
|
},
|
|
156
184
|
"native": {}
|
|
185
|
+
},
|
|
186
|
+
{
|
|
187
|
+
"_id": "info.sessionPollChargerCount",
|
|
188
|
+
"type": "state",
|
|
189
|
+
"common": {
|
|
190
|
+
"name": "Detected chargers",
|
|
191
|
+
"type": "number",
|
|
192
|
+
"role": "value",
|
|
193
|
+
"read": true,
|
|
194
|
+
"write": false
|
|
195
|
+
},
|
|
196
|
+
"native": {}
|
|
197
|
+
},
|
|
198
|
+
{
|
|
199
|
+
"_id": "info.sessionPollRecommendedInterval",
|
|
200
|
+
"type": "state",
|
|
201
|
+
"common": {
|
|
202
|
+
"name": "Recommended session interval per charger",
|
|
203
|
+
"type": "number",
|
|
204
|
+
"role": "value.interval",
|
|
205
|
+
"unit": "min",
|
|
206
|
+
"read": true,
|
|
207
|
+
"write": false
|
|
208
|
+
},
|
|
209
|
+
"native": {}
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"_id": "info.sessionPollEffectiveInterval",
|
|
213
|
+
"type": "state",
|
|
214
|
+
"common": {
|
|
215
|
+
"name": "Effective session interval per charger",
|
|
216
|
+
"type": "number",
|
|
217
|
+
"role": "value.interval",
|
|
218
|
+
"unit": "min",
|
|
219
|
+
"read": true,
|
|
220
|
+
"write": false
|
|
221
|
+
},
|
|
222
|
+
"native": {}
|
|
157
223
|
}
|
|
158
224
|
]
|
|
159
225
|
}
|
package/lib/{enum.js → enum.ts}
RENAMED
|
@@ -315,7 +315,7 @@
|
|
|
315
315
|
#define COMMAND_SET_LISTEN_TO_CONTROL_PULSE_ARG_LISTEN_TO_CONTROL_PULSE 1 //ListenToControlPulse [Boolean]
|
|
316
316
|
#endif
|
|
317
317
|
*/
|
|
318
|
-
const easeeIds = {
|
|
318
|
+
const easeeIds: Record<number, string> = {
|
|
319
319
|
//config
|
|
320
320
|
31: ".config.isEnabled",
|
|
321
321
|
36: ".config.wiFiSSID",
|
|
@@ -329,19 +329,19 @@ const easeeIds = {
|
|
|
329
329
|
//Status
|
|
330
330
|
46: ".status.ledMode",
|
|
331
331
|
68: ".status.wiFiAPEnabled",
|
|
332
|
-
|
|
332
|
+
80: ".status.chargerFirmware",
|
|
333
333
|
96: ".status.reasonForNoCurrent",
|
|
334
|
-
102: ".
|
|
334
|
+
102: ".config.smartCharging",
|
|
335
335
|
103: ".status.cableLocked",
|
|
336
336
|
109: ".status.chargerOpMode",
|
|
337
|
-
|
|
337
|
+
114: ".status.outputCurrent",
|
|
338
338
|
120: ".status.totalPower",
|
|
339
339
|
122: ".status.energyPerHour",
|
|
340
340
|
124: ".status.lifetimeEnergy",
|
|
341
341
|
132: ".status.wiFiRSSI",
|
|
342
342
|
150: ".status.TempMax",
|
|
343
343
|
//xx: ".status.voltage",
|
|
344
|
-
|
|
344
|
+
250: ".status.isOnline",
|
|
345
345
|
182: ".status.inCurrentT2",
|
|
346
346
|
183: ".status.inCurrentT3",
|
|
347
347
|
184: ".status.inCurrentT4",
|
|
@@ -358,12 +358,10 @@ const easeeIds = {
|
|
|
358
358
|
199: ".status.inVoltageT4T5",
|
|
359
359
|
};
|
|
360
360
|
Object.freeze(easeeIds);
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
|
|
365
|
-
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
},
|
|
369
|
-
};
|
|
361
|
+
export function getNameByEnum(id: number): string | undefined {
|
|
362
|
+
return easeeIds[id];
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
export function getValue(): undefined {
|
|
366
|
+
return undefined;
|
|
367
|
+
}
|