iobroker.alpha-ess 2.1.6 → 2.3.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 CHANGED
@@ -61,6 +61,14 @@ How to find SN and Check code for registration is described here: https://github
61
61
  **All product and company names or logos are trademarks™ or registered® trademarks of their respective holders. Use of them does not imply any affiliation with or endorsement by them or any associated subsidiaries! This personal project is maintained in spare time and has no business goal.**
62
62
 
63
63
  ## Changelog
64
+ ### 2.3.0 (2024-12-20)
65
+
66
+ - (Gaspode) Provides the ability to read pseudo-realtime power data using the API function getTodayPowerBySn. This feature is useful for systems that lack "realtime data support." When activated, data is fetched every 5 minutes and stored in the "Recent" folder.
67
+
68
+ ### 2.2.0 (2024-12-16)
69
+
70
+ - (Gaspode) Provide system information data (getEssList)
71
+
64
72
  ### 2.1.6 (2024-12-01)
65
73
 
66
74
  - (Gaspode) Migrated to ESLint 9
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Adaptereinstellungen für alpha-ess",
3
- "Username": "Nutzername",
4
- "Password": "Passwort",
5
- "Alpha ESS System ID": "Alpha ESS-System-ID",
6
- "Interval to read realtime data": "Intervall zum Lesen von Echtzeitdaten [s]",
7
- "Interval to read energy data": "Intervall zum Lesen von Energiedaten [min]",
8
- "Interval to read settings data": "Intervall zum Lesen von Einstellungsdaten [min]",
9
- "Interval to read statistical data (today)": "Intervall zum Lesen von statistischen Daten (heute) [min]",
10
- "Interval to read summary data": "Intervall zum Lesen von Zusammenfassungsdaten [min]",
11
- "Update unchanged states": "Unveränderte Zustände aktualisieren",
12
- "Personal APP ID": "Persönliche Application ID",
13
- "Personal APP Secret": "Persönliches Application Secret",
14
- "Interval to read charging settings": "Intervall zum Lesen der Ladeeinstellungen [min]",
15
- "Interval to read discharging settings": "Intervall zum Lesen der Entladeeinstellungen [min]",
16
- "Interval to read wallbox data": "Intervall zum Auslesen der Wallbox-Daten [min]",
17
- "Sorry. Closed API currently not supported!": "Entschuldigung. Closed API wird aufgrund von Änderungen durch Alpha-ESS derzeit nicht unterstützt!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Adaptereinstellungen für alpha-ess",
3
+ "Username": "Nutzername",
4
+ "Password": "Passwort",
5
+ "Alpha ESS System ID": "Alpha ESS-System-ID",
6
+ "Interval to read realtime data": "Intervall zum Lesen von Echtzeitdaten [s]",
7
+ "Interval to read energy data": "Intervall zum Lesen von Energiedaten [min]",
8
+ "Interval to read settings data": "Intervall zum Lesen von Einstellungsdaten [min]",
9
+ "Interval to read statistical data (today)": "Intervall zum Lesen von statistischen Daten (heute) [min]",
10
+ "Interval to read summary data": "Intervall zum Lesen von Zusammenfassungsdaten [min]",
11
+ "Update unchanged states": "Unveränderte Zustände aktualisieren",
12
+ "Personal APP ID": "Persönliche Application ID",
13
+ "Personal APP Secret": "Persönliches Application Secret",
14
+ "Interval to read charging settings": "Intervall zum Lesen der Ladeeinstellungen [min]",
15
+ "Interval to read discharging settings": "Intervall zum Lesen der Entladeeinstellungen [min]",
16
+ "Interval to read wallbox data": "Intervall zum Auslesen der Wallbox-Daten [min]",
17
+ "Sorry. Closed API currently not supported!": "Entschuldigung. Closed API wird aufgrund von Änderungen durch Alpha-ESS derzeit nicht unterstützt!",
18
+ "Interval to read system information data": "Intervall zum Lesen von Systeminformationsdaten [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Lese alle 5 Minuten Pseudo-Echtzeit-Leistungsdaten (für Systeme ohne Echtzeitdatenunterstützung)"
20
+ }
@@ -5,6 +5,7 @@
5
5
  "Alpha ESS System ID": "Alpha ESS System ID",
6
6
  "Interval to read realtime data": "Interval to read realtime data [s]",
7
7
  "Interval to read energy data": "Interval to read energy data [min]",
8
+ "Interval to read system information data": "Interval to read system information data [s]",
8
9
  "Interval to read settings data": "Interval to read settings data [min]",
9
10
  "Interval to read statistical data (today)": "Interval to read statistical data (today) [min]",
10
11
  "Interval to read summary data": "Interval to read summary data [min]",
@@ -14,5 +15,6 @@
14
15
  "Interval to read charging settings": "Interval to read charging settings [min]",
15
16
  "Interval to read discharging settings": "Interval to read discharging settings [min]",
16
17
  "Interval to read wallbox data": "Interval to read wallbox data [min]",
17
- "Sorry. Closed API currently not supported!": "Sorry. Closed API currently not supported due to changes by Alpha-ESS!"
18
+ "Sorry. Closed API currently not supported!": "Sorry. Closed API currently not supported due to changes by Alpha-ESS!",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Get recent power data every 5 minutes (for systems with no realtime data support)"
18
20
  }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Configuración del adaptador para alpha-ess",
3
- "Username": "Nombre de usuario",
4
- "Password": "Contraseña",
5
- "Alpha ESS System ID": "Identificación del sistema Alpha ESS",
6
- "Interval to read realtime data": "Intervalo para leer datos en tiempo real [s]",
7
- "Interval to read energy data": "Intervalo para leer datos de energía [min]",
8
- "Interval to read settings data": "Intervalo para leer los datos de configuración [min]",
9
- "Interval to read statistical data (today)": "Intervalo para leer datos estadísticos (hoy) [min]",
10
- "Interval to read summary data": "Intervalo para leer datos de resumen [min]",
11
- "Update unchanged states": "Actualizar estados sin cambios",
12
- "Personal APP ID": "ID de aplicación personal",
13
- "Personal APP Secret": "Secreto de aplicación personal",
14
- "Interval to read charging settings": "Intervalo para leer la configuración de carga",
15
- "Interval to read discharging settings": "Intervalo para leer la configuración de descarga",
16
- "Interval to read wallbox data": "Intervalo para leer los datos del wallbox [min]",
17
- "Sorry. Closed API currently not supported!": "Lo siento. ¡La API cerrada actualmente no es compatible debido a cambios realizados por Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Configuración del adaptador para alpha-ess",
3
+ "Username": "Nombre de usuario",
4
+ "Password": "Contraseña",
5
+ "Alpha ESS System ID": "Identificación del sistema Alpha ESS",
6
+ "Interval to read realtime data": "Intervalo para leer datos en tiempo real [s]",
7
+ "Interval to read energy data": "Intervalo para leer datos de energía [min]",
8
+ "Interval to read settings data": "Intervalo para leer los datos de configuración [min]",
9
+ "Interval to read statistical data (today)": "Intervalo para leer datos estadísticos (hoy) [min]",
10
+ "Interval to read summary data": "Intervalo para leer datos de resumen [min]",
11
+ "Update unchanged states": "Actualizar estados sin cambios",
12
+ "Personal APP ID": "ID de aplicación personal",
13
+ "Personal APP Secret": "Secreto de aplicación personal",
14
+ "Interval to read charging settings": "Intervalo para leer la configuración de carga",
15
+ "Interval to read discharging settings": "Intervalo para leer la configuración de descarga",
16
+ "Interval to read wallbox data": "Intervalo para leer los datos del wallbox [min]",
17
+ "Sorry. Closed API currently not supported!": "Lo siento. ¡La API cerrada actualmente no es compatible debido a cambios realizados por Alpha-ESS!",
18
+ "Interval to read system information data": "Intervalo para leer datos de información del sistema [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Obtenga datos de energía recientes cada 5 minutos (para sistemas sin soporte de datos en tiempo real)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Paramètres de l'adaptateur pour alpha-ess",
3
- "Username": "Nom d'utilisateur",
4
- "Password": "Mot de passe",
5
- "Alpha ESS System ID": "ID du système Alpha ESS",
6
- "Interval to read realtime data": "Intervalle pour lire les données en temps réel [s]",
7
- "Interval to read energy data": "Intervalle pour lire les données énergétiques [min]",
8
- "Interval to read settings data": "Intervalle pour lire les données de paramètres [min]",
9
- "Interval to read statistical data (today)": "Intervalle pour lire les données statistiques (aujourd'hui) [min]",
10
- "Interval to read summary data": "Intervalle pour lire les données récapitulatives [min]",
11
- "Update unchanged states": "Mettre à jour les états inchangés",
12
- "Personal APP ID": "ID de candidature personnel",
13
- "Personal APP Secret": "Secret d'application personnel",
14
- "Interval to read charging settings": "Intervalle pour lire les paramètres de charge",
15
- "Interval to read discharging settings": "Intervalle pour lire les paramètres de décharge",
16
- "Interval to read wallbox data": "Intervalle de lecture des données de la wallbox [min]",
17
- "Sorry. Closed API currently not supported!": "Désolé. API fermée actuellement non prise en charge en raison de modifications apportées par Alpha-ESS !"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Paramètres de l'adaptateur pour alpha-ess",
3
+ "Username": "Nom d'utilisateur",
4
+ "Password": "Mot de passe",
5
+ "Alpha ESS System ID": "ID du système Alpha ESS",
6
+ "Interval to read realtime data": "Intervalle pour lire les données en temps réel [s]",
7
+ "Interval to read energy data": "Intervalle pour lire les données énergétiques [min]",
8
+ "Interval to read settings data": "Intervalle pour lire les données de paramètres [min]",
9
+ "Interval to read statistical data (today)": "Intervalle pour lire les données statistiques (aujourd'hui) [min]",
10
+ "Interval to read summary data": "Intervalle pour lire les données récapitulatives [min]",
11
+ "Update unchanged states": "Mettre à jour les états inchangés",
12
+ "Personal APP ID": "ID de candidature personnel",
13
+ "Personal APP Secret": "Secret d'application personnel",
14
+ "Interval to read charging settings": "Intervalle pour lire les paramètres de charge",
15
+ "Interval to read discharging settings": "Intervalle pour lire les paramètres de décharge",
16
+ "Interval to read wallbox data": "Intervalle de lecture des données de la wallbox [min]",
17
+ "Sorry. Closed API currently not supported!": "Désolé. API fermée actuellement non prise en charge en raison de modifications apportées par Alpha-ESS !",
18
+ "Interval to read system information data": "Intervalle de lecture des données d'informations système [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Obtenez des données de puissance récentes toutes les 5 minutes (pour les systèmes sans prise en charge des données en temps réel)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Impostazioni dell'adattatore per alpha-ess",
3
- "Username": "Nome utente",
4
- "Password": "Parola d'ordine",
5
- "Alpha ESS System ID": "ID del sistema Alpha ESS",
6
- "Interval to read realtime data": "Intervallo di lettura dei dati in tempo reale [s]",
7
- "Interval to read energy data": "Intervallo di lettura dei dati energetici [min]",
8
- "Interval to read settings data": "Intervallo per leggere i dati delle impostazioni [min]",
9
- "Interval to read statistical data (today)": "Intervallo di lettura dei dati statistici (oggi) [min]",
10
- "Interval to read summary data": "Intervallo di lettura dei dati di riepilogo [min]",
11
- "Update unchanged states": "Aggiorna stati invariati",
12
- "Personal APP ID": "ID applicazione personale",
13
- "Personal APP Secret": "Segreto dell'applicazione personale",
14
- "Interval to read charging settings": "Intervallo per leggere le impostazioni di ricarica",
15
- "Interval to read discharging settings": "Intervallo per leggere le impostazioni di scarica",
16
- "Interval to read wallbox data": "Intervallo per leggere i dati della Wallbox [min]",
17
- "Sorry. Closed API currently not supported!": "Scusa. API chiusa attualmente non supportata a causa di modifiche apportate da Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Impostazioni dell'adattatore per alpha-ess",
3
+ "Username": "Nome utente",
4
+ "Password": "Parola d'ordine",
5
+ "Alpha ESS System ID": "ID del sistema Alpha ESS",
6
+ "Interval to read realtime data": "Intervallo di lettura dei dati in tempo reale [s]",
7
+ "Interval to read energy data": "Intervallo di lettura dei dati energetici [min]",
8
+ "Interval to read settings data": "Intervallo per leggere i dati delle impostazioni [min]",
9
+ "Interval to read statistical data (today)": "Intervallo di lettura dei dati statistici (oggi) [min]",
10
+ "Interval to read summary data": "Intervallo di lettura dei dati di riepilogo [min]",
11
+ "Update unchanged states": "Aggiorna stati invariati",
12
+ "Personal APP ID": "ID applicazione personale",
13
+ "Personal APP Secret": "Segreto dell'applicazione personale",
14
+ "Interval to read charging settings": "Intervallo per leggere le impostazioni di ricarica",
15
+ "Interval to read discharging settings": "Intervallo per leggere le impostazioni di scarica",
16
+ "Interval to read wallbox data": "Intervallo per leggere i dati della Wallbox [min]",
17
+ "Sorry. Closed API currently not supported!": "Scusa. API chiusa attualmente non supportata a causa di modifiche apportate da Alpha-ESS!",
18
+ "Interval to read system information data": "Intervallo per leggere i dati delle informazioni di sistema [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Ottieni dati energetici recenti ogni 5 minuti (per sistemi senza supporto dati in tempo reale)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Adapterinstellingen voor alpha-ess",
3
- "Username": "Gebruikersnaam",
4
- "Password": "Wachtwoord",
5
- "Alpha ESS System ID": "Alpha ESS-systeem-ID",
6
- "Interval to read realtime data": "Interval om realtime gegevens te lezen [s]",
7
- "Interval to read energy data": "Interval om energiegegevens te lezen [min]",
8
- "Interval to read settings data": "Interval om instellingsgegevens te lezen [min]",
9
- "Interval to read statistical data (today)": "Interval om statistische gegevens te lezen (vandaag) [min]",
10
- "Interval to read summary data": "Interval om samenvattingsgegevens te lezen [min]",
11
- "Update unchanged states": "Update ongewijzigde statussen",
12
- "Personal APP ID": "Persoonlijke applicatie-ID",
13
- "Personal APP Secret": "Persoonlijk toepassingsgeheim",
14
- "Interval to read charging settings": "Interval om laadinstellingen te lezen",
15
- "Interval to read discharging settings": "Interval om ontlaadinstellingen te lezen",
16
- "Interval to read wallbox data": "Interval voor het lezen van wallbox-gegevens [min]",
17
- "Sorry. Closed API currently not supported!": "Sorry. Gesloten API momenteel niet ondersteund vanwege wijzigingen door Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Adapterinstellingen voor alpha-ess",
3
+ "Username": "Gebruikersnaam",
4
+ "Password": "Wachtwoord",
5
+ "Alpha ESS System ID": "Alpha ESS-systeem-ID",
6
+ "Interval to read realtime data": "Interval om realtime gegevens te lezen [s]",
7
+ "Interval to read energy data": "Interval om energiegegevens te lezen [min]",
8
+ "Interval to read settings data": "Interval om instellingsgegevens te lezen [min]",
9
+ "Interval to read statistical data (today)": "Interval om statistische gegevens te lezen (vandaag) [min]",
10
+ "Interval to read summary data": "Interval om samenvattingsgegevens te lezen [min]",
11
+ "Update unchanged states": "Update ongewijzigde statussen",
12
+ "Personal APP ID": "Persoonlijke applicatie-ID",
13
+ "Personal APP Secret": "Persoonlijk toepassingsgeheim",
14
+ "Interval to read charging settings": "Interval om laadinstellingen te lezen",
15
+ "Interval to read discharging settings": "Interval om ontlaadinstellingen te lezen",
16
+ "Interval to read wallbox data": "Interval voor het lezen van wallbox-gegevens [min]",
17
+ "Sorry. Closed API currently not supported!": "Sorry. Gesloten API momenteel niet ondersteund vanwege wijzigingen door Alpha-ESS!",
18
+ "Interval to read system information data": "Interval voor het lezen van systeeminformatiegegevens [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Ontvang elke 5 minuten recente stroomgegevens (voor systemen zonder realtime gegevensondersteuning)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Ustawienia adaptera dla alpha-ess",
3
- "Username": "Nazwa użytkownika",
4
- "Password": "Hasło",
5
- "Alpha ESS System ID": "Identyfikator systemu Alpha ESS",
6
- "Interval to read realtime data": "Interwał odczytu danych w czasie rzeczywistym [s]",
7
- "Interval to read energy data": "Interwał odczytu danych dotyczących energii [min]",
8
- "Interval to read settings data": "Interwał odczytu danych ustawień [min]",
9
- "Interval to read statistical data (today)": "Interwał odczytu danych statystycznych (dziś) [min]",
10
- "Interval to read summary data": "Interwał odczytu danych podsumowujących [min]",
11
- "Update unchanged states": "Zaktualizuj niezmienione stany",
12
- "Personal APP ID": "Osobisty identyfikator aplikacji",
13
- "Personal APP Secret": "Tajny wniosek osobisty",
14
- "Interval to read charging settings": "Interwał odczytu ustawień ładowania",
15
- "Interval to read discharging settings": "Interwał odczytu ustawień rozładowania",
16
- "Interval to read wallbox data": "Interwał odczytu danych wallboxa [min]",
17
- "Sorry. Closed API currently not supported!": "Przepraszam. Zamknięte API obecnie nie jest obsługiwane ze względu na zmiany wprowadzone przez Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Ustawienia adaptera dla alpha-ess",
3
+ "Username": "Nazwa użytkownika",
4
+ "Password": "Hasło",
5
+ "Alpha ESS System ID": "Identyfikator systemu Alpha ESS",
6
+ "Interval to read realtime data": "Interwał odczytu danych w czasie rzeczywistym [s]",
7
+ "Interval to read energy data": "Interwał odczytu danych dotyczących energii [min]",
8
+ "Interval to read settings data": "Interwał odczytu danych ustawień [min]",
9
+ "Interval to read statistical data (today)": "Interwał odczytu danych statystycznych (dziś) [min]",
10
+ "Interval to read summary data": "Interwał odczytu danych podsumowujących [min]",
11
+ "Update unchanged states": "Zaktualizuj niezmienione stany",
12
+ "Personal APP ID": "Osobisty identyfikator aplikacji",
13
+ "Personal APP Secret": "Tajny wniosek osobisty",
14
+ "Interval to read charging settings": "Interwał odczytu ustawień ładowania",
15
+ "Interval to read discharging settings": "Interwał odczytu ustawień rozładowania",
16
+ "Interval to read wallbox data": "Interwał odczytu danych wallboxa [min]",
17
+ "Sorry. Closed API currently not supported!": "Przepraszam. Zamknięte API obecnie nie jest obsługiwane ze względu na zmiany wprowadzone przez Alpha-ESS!",
18
+ "Interval to read system information data": "Interwał odczytu danych informacyjnych systemu [s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Uzyskaj najnowsze dane dotyczące zasilania co 5 minut (w przypadku systemów bez obsługi danych w czasie rzeczywistym)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Configurações do adaptador para alpha-ess",
3
- "Username": "Nome de usuário",
4
- "Password": "Senha",
5
- "Alpha ESS System ID": "ID do sistema Alpha ESS",
6
- "Interval to read realtime data": "Intervalo para ler dados em tempo real [s]",
7
- "Interval to read energy data": "Intervalo para ler dados de energia [min]",
8
- "Interval to read settings data": "Intervalo para ler os dados de configuração [min]",
9
- "Interval to read statistical data (today)": "Intervalo para ler dados estatísticos (hoje) [min]",
10
- "Interval to read summary data": "Intervalo para ler os dados resumidos [min]",
11
- "Update unchanged states": "Atualizar estados inalterados",
12
- "Personal APP ID": "ID de aplicativo pessoal",
13
- "Personal APP Secret": "Segredo de aplicativo pessoal",
14
- "Interval to read charging settings": "Intervalo para ler as configurações de carregamento",
15
- "Interval to read discharging settings": "Intervalo para ler as configurações de descarga",
16
- "Interval to read wallbox data": "Intervalo para leitura dos dados da Wallbox [min]",
17
- "Sorry. Closed API currently not supported!": "Desculpe. API fechada atualmente não suportada devido a alterações do Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Configurações do adaptador para alpha-ess",
3
+ "Username": "Nome de usuário",
4
+ "Password": "Senha",
5
+ "Alpha ESS System ID": "ID do sistema Alpha ESS",
6
+ "Interval to read realtime data": "Intervalo para ler dados em tempo real [s]",
7
+ "Interval to read energy data": "Intervalo para ler dados de energia [min]",
8
+ "Interval to read settings data": "Intervalo para ler os dados de configuração [min]",
9
+ "Interval to read statistical data (today)": "Intervalo para ler dados estatísticos (hoje) [min]",
10
+ "Interval to read summary data": "Intervalo para ler os dados resumidos [min]",
11
+ "Update unchanged states": "Atualizar estados inalterados",
12
+ "Personal APP ID": "ID de aplicativo pessoal",
13
+ "Personal APP Secret": "Segredo de aplicativo pessoal",
14
+ "Interval to read charging settings": "Intervalo para ler as configurações de carregamento",
15
+ "Interval to read discharging settings": "Intervalo para ler as configurações de descarga",
16
+ "Interval to read wallbox data": "Intervalo para leitura dos dados da Wallbox [min]",
17
+ "Sorry. Closed API currently not supported!": "Desculpe. API fechada atualmente não suportada devido a alterações do Alpha-ESS!",
18
+ "Interval to read system information data": "Intervalo para leitura de dados de informações do sistema",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Obtenha dados de energia recentes a cada 5 minutos (para sistemas sem suporte de dados em tempo real)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Настройки адаптера для alpha-ess",
3
- "Username": "Имя пользователя",
4
- "Password": "Пароль",
5
- "Alpha ESS System ID": "Идентификатор системы Alpha ESS",
6
- "Interval to read realtime data": "Интервал для чтения данных в реальном времени [с]",
7
- "Interval to read energy data": "Интервал чтения данных об энергии [мин]",
8
- "Interval to read settings data": "Интервал чтения данных настроек [мин]",
9
- "Interval to read statistical data (today)": "Интервал чтения статистических данных (сегодня) [мин]",
10
- "Interval to read summary data": "Интервал чтения сводных данных [мин]",
11
- "Update unchanged states": "Обновить неизмененные состояния",
12
- "Personal APP ID": "Идентификатор личного приложения",
13
- "Personal APP Secret": "Секрет личного приложения",
14
- "Interval to read charging settings": "Интервал чтения настроек зарядки",
15
- "Interval to read discharging settings": "Интервал чтения настроек разрядки",
16
- "Interval to read wallbox data": "Интервал чтения данных Wallbox [мин]",
17
- "Sorry. Closed API currently not supported!": "Извини. Закрытый API в настоящее время не поддерживается из-за изменений Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Настройки адаптера для alpha-ess",
3
+ "Username": "Имя пользователя",
4
+ "Password": "Пароль",
5
+ "Alpha ESS System ID": "Идентификатор системы Alpha ESS",
6
+ "Interval to read realtime data": "Интервал для чтения данных в реальном времени [с]",
7
+ "Interval to read energy data": "Интервал чтения данных об энергии [мин]",
8
+ "Interval to read settings data": "Интервал чтения данных настроек [мин]",
9
+ "Interval to read statistical data (today)": "Интервал чтения статистических данных (сегодня) [мин]",
10
+ "Interval to read summary data": "Интервал чтения сводных данных [мин]",
11
+ "Update unchanged states": "Обновить неизмененные состояния",
12
+ "Personal APP ID": "Идентификатор личного приложения",
13
+ "Personal APP Secret": "Секрет личного приложения",
14
+ "Interval to read charging settings": "Интервал чтения настроек зарядки",
15
+ "Interval to read discharging settings": "Интервал чтения настроек разрядки",
16
+ "Interval to read wallbox data": "Интервал чтения данных Wallbox [мин]",
17
+ "Sorry. Closed API currently not supported!": "Извини. Закрытый API в настоящее время не поддерживается из-за изменений Alpha-ESS!",
18
+ "Interval to read system information data": "Интервал чтения данных системной информации [с]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Получайте последние данные о питании каждые 5 минут (для систем без поддержки данных в реальном времени)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "Налаштування адаптера для alpha-ess",
3
- "Username": "Ім'я користувача",
4
- "Password": "Пароль",
5
- "Alpha ESS System ID": "Ідентифікатор системи Alpha ESS",
6
- "Interval to read realtime data": "Інтервал читання даних у реальному часі [с]",
7
- "Interval to read energy data": "Інтервал зчитування даних про енергію [хв]",
8
- "Interval to read settings data": "Інтервал зчитування даних налаштувань [хв]",
9
- "Interval to read statistical data (today)": "Інтервал читання статистичних даних (сьогодні) [хв]",
10
- "Interval to read summary data": "Інтервал читання підсумкових даних [хв.]",
11
- "Update unchanged states": "Оновити незмінні стани",
12
- "Personal APP ID": "Персональний ID програми",
13
- "Personal APP Secret": "Особистий секрет програми",
14
- "Interval to read charging settings": "Інтервал зчитування параметрів заряджання",
15
- "Interval to read discharging settings": "Інтервал зчитування параметрів розрядки",
16
- "Interval to read wallbox data": "Інтервал зчитування даних Wallbox [хв]",
17
- "Sorry. Closed API currently not supported!": "вибач Закритий API наразі не підтримується через зміни Alpha-ESS!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "Налаштування адаптера для alpha-ess",
3
+ "Username": "Ім'я користувача",
4
+ "Password": "Пароль",
5
+ "Alpha ESS System ID": "Ідентифікатор системи Alpha ESS",
6
+ "Interval to read realtime data": "Інтервал читання даних у реальному часі [с]",
7
+ "Interval to read energy data": "Інтервал зчитування даних про енергію [хв]",
8
+ "Interval to read settings data": "Інтервал зчитування даних налаштувань [хв]",
9
+ "Interval to read statistical data (today)": "Інтервал читання статистичних даних (сьогодні) [хв]",
10
+ "Interval to read summary data": "Інтервал читання підсумкових даних [хв.]",
11
+ "Update unchanged states": "Оновити незмінні стани",
12
+ "Personal APP ID": "Персональний ID програми",
13
+ "Personal APP Secret": "Особистий секрет програми",
14
+ "Interval to read charging settings": "Інтервал зчитування параметрів заряджання",
15
+ "Interval to read discharging settings": "Інтервал зчитування параметрів розрядки",
16
+ "Interval to read wallbox data": "Інтервал зчитування даних Wallbox [хв]",
17
+ "Sorry. Closed API currently not supported!": "вибач Закритий API наразі не підтримується через зміни Alpha-ESS!",
18
+ "Interval to read system information data": "Інтервал читання системної інформації [с]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "Отримувати останні дані про живлення кожні 5 хвилин (для систем без підтримки даних у реальному часі)"
20
+ }
@@ -1,18 +1,20 @@
1
- {
2
- "alpha-ess adapter settings": "alpha-ess 的适配器设置",
3
- "Username": "用户名",
4
- "Password": "密码",
5
- "Alpha ESS System ID": "Alpha ESS 系统 ID",
6
- "Interval to read realtime data": "读取实时数据的间隔[s]",
7
- "Interval to read energy data": "读取能源数据的间隔[分钟]",
8
- "Interval to read settings data": "读取设置数据的间隔[分钟]",
9
- "Interval to read statistical data (today)": "读取统计数据的间隔(今天)[min]",
10
- "Interval to read summary data": "读取摘要数据的间隔[分钟]",
11
- "Update unchanged states": "更新未改变的状态",
12
- "Personal APP ID": "个人申请编号",
13
- "Personal APP Secret": "个人申请秘诀",
14
- "Interval to read charging settings": "读取充电设置的间隔",
15
- "Interval to read discharging settings": "读取放电设置的间隔",
16
- "Interval to read wallbox data": "读取 Wallbox 数据的时间间隔 [min]",
17
- "Sorry. Closed API currently not supported!": "对不起。由于 Alpha-ESS 的更改,目前不支持封闭 API!"
18
- }
1
+ {
2
+ "alpha-ess adapter settings": "alpha-ess 的适配器设置",
3
+ "Username": "用户名",
4
+ "Password": "密码",
5
+ "Alpha ESS System ID": "Alpha ESS 系统 ID",
6
+ "Interval to read realtime data": "读取实时数据的间隔[s]",
7
+ "Interval to read energy data": "读取能源数据的间隔[分钟]",
8
+ "Interval to read settings data": "读取设置数据的间隔[分钟]",
9
+ "Interval to read statistical data (today)": "读取统计数据的间隔(今天)[min]",
10
+ "Interval to read summary data": "读取摘要数据的间隔[分钟]",
11
+ "Update unchanged states": "更新未改变的状态",
12
+ "Personal APP ID": "个人申请编号",
13
+ "Personal APP Secret": "个人申请秘诀",
14
+ "Interval to read charging settings": "读取充电设置的间隔",
15
+ "Interval to read discharging settings": "读取放电设置的间隔",
16
+ "Interval to read wallbox data": "读取 Wallbox 数据的时间间隔 [min]",
17
+ "Sorry. Closed API currently not supported!": "对不起。由于 Alpha-ESS 的更改,目前不支持封闭 API!",
18
+ "Interval to read system information data": "读取系统信息数据的时间间隔[s]",
19
+ "Get recent power data every 5 minutes (for systems with no realtime data)": "每 5 分钟获取一次最新电量数据(适用于不支持实时数据的系统)"
20
+ }
@@ -54,6 +54,37 @@
54
54
  "newLine": false,
55
55
  "disabled": "!data.oAEnableRealtime"
56
56
  },
57
+ "oAEnableRecent": {
58
+ "xs": 9.9,
59
+ "sm": 7.4,
60
+ "md": 3.6,
61
+ "lg": 2.8,
62
+ "xl": 2.8,
63
+ "type": "checkbox",
64
+ "newLine": true,
65
+ "label": "Get recent power data every 5 minutes (for systems with no realtime data)"
66
+ },
67
+ "oAEnableEssList": {
68
+ "xs": 1.1,
69
+ "sm": 0.6,
70
+ "md": 0.4,
71
+ "lg": 0.2,
72
+ "xl": 0.2,
73
+ "type": "checkbox",
74
+ "newLine": true
75
+ },
76
+ "oAIntervalEssList": {
77
+ "xs": 9.9,
78
+ "sm": 7.4,
79
+ "md": 3.6,
80
+ "lg": 2.8,
81
+ "xl": 2.8,
82
+ "min": 10,
83
+ "type": "number",
84
+ "label": "Interval to read system information data",
85
+ "newLine": false,
86
+ "disabled": "!data.oAEnableEssList"
87
+ },
57
88
  "oAEnableEnergy": {
58
89
  "xs": 1.1,
59
90
  "sm": 0.6,
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "alpha-ess",
4
- "version": "2.1.6",
4
+ "version": "2.3.0",
5
5
  "news": {
6
+ "2.3.0": {
7
+ "en": "Provides the ability to read pseudo-realtime power data using the API function getTodayPowerBySn. This feature is useful for systems that lack \"realtime data support.\" When activated, data is fetched every 5 minutes and stored in the \"Recent\" folder.",
8
+ "de": "Bietet die Möglichkeit, pseudo-realtime Stromdaten mit der API-Funktion getTodayPowerBySn zu lesen. Diese Funktion ist nützlich für Systeme, die keinen \"Realtime Data Support\" haben. Wenn aktiviert, werden alle 5 Minuten Daten gelesen und im Ordner \"Recent\" gespeichert.",
9
+ "ru": "Предоставляет возможность чтения псевдо-в реальном времени данных питания с использованием функции API getTodayPowerBySn. Эта функция полезна для систем, которые не имеют «поддержки данных в реальном времени». При активации данные загружаются каждые 5 минут и хранятся в папке «Recent».",
10
+ "pt": "Fornece a capacidade de ler dados de energia pseudo-realtime usando a função API getTodayPowerBySn. Esse recurso é útil para sistemas que não possuem \"apoio de dados em tempo real\". Quando ativado, os dados são obtidos a cada 5 minutos e armazenados na pasta \"Recente\".",
11
+ "nl": "Biedt de mogelijkheid om pseudo-realtime power data te lezen met behulp van de API-functie krijgenTodayPowerBySn. Deze functie is nuttig voor systemen die geen \"realtime data support\" hebben. Wanneer geactiveerd, worden de gegevens elke 5 minuten opgehaald en opgeslagen in de \"Recent\" map.",
12
+ "fr": "Fournit la possibilité de lire des données de puissance pseudo-réel en utilisant la fonction API getTodayPowerBySn. Cette fonctionnalité est utile pour les systèmes qui manquent de « support de données en temps réel ». Une fois activé, les données sont récupérées toutes les 5 minutes et stockées dans le dossier \"Récent\".",
13
+ "it": "Fornisce la capacità di leggere i dati di potenza pseudo-realtime utilizzando la funzione API getTodayPowerBySn. Questa funzione è utile per i sistemi che mancano di \"supporto dati realtime\". Quando si attiva, i dati vengono recuperati ogni 5 minuti e memorizzati nella cartella \"Recent\".",
14
+ "es": "Proporciona la capacidad de leer datos de energía pseudo-realtime usando la función API getTodayPowerBySn. Esta característica es útil para sistemas que carecen de \"apoyo de datos en tiempo real\". Cuando se activa, los datos se recogen cada 5 minutos y se almacenan en la carpeta \"Recent\".",
15
+ "pl": "Zapewnia możliwość odczytu danych o mocy pseudo-realtime za pomocą funkcji API getTodayPowerBySn. Funkcja ta jest przydatna dla systemów, którym brakuje \"wsparcia danych w czasie rzeczywistym\". Po aktywowaniu dane są pobierane co 5 minut i przechowywane w folderze \"Najnowsze\".",
16
+ "uk": "Забезпечує можливість читати дані псевдореального часу за допомогою функції API getTodayPowerBySn. Ця функція є корисною для систем, які не мають підтримки загальних даних. При активації дані подаються кожні 5 хвилин і зберігаються в папці \"Відсоток\".",
17
+ "zh-cn": "提供使用API函数get TodayPowerBySn读取伪实时功率数据的能力. 这个特性对于缺乏\"实时数据支持\"的系统是有用的. 当启动时,数据每5分钟获取一次,并存储在\"Recent\"文件夹中."
18
+ },
19
+ "2.2.0": {
20
+ "en": "Provide system information data (getEssList)",
21
+ "de": "Lesen von System-Informationsdaten (getEssList)",
22
+ "ru": "Предоставление системных информационных данных (getEssList)",
23
+ "pt": "Fornecer dados do sistema de infom (getEssList)",
24
+ "nl": "Geef systeeminformatiemgegevens (getEssList)",
25
+ "fr": "Fournir des informations sur le système (getEssList)",
26
+ "it": "Fornire dati informativi del sistema (getEssList)",
27
+ "es": "Proporcione datos del sistema (getEssList)",
28
+ "pl": "Dostarczanie informacji systemowych (GetesList)",
29
+ "uk": "Забезпечити інформацію про систему (getEssList)",
30
+ "zh-cn": "提供系统信息m数据( getEsList)"
31
+ },
6
32
  "2.1.6": {
7
33
  "en": "Migrated to ESLint 9",
8
34
  "de": "Zu ESLint 9 migriert",
@@ -67,32 +93,6 @@
67
93
  "pl": "Jakość państw zoptymalizowanych",
68
94
  "uk": "Якість держав оптимізовано",
69
95
  "zh-cn": "国家质量得到优化"
70
- },
71
- "2.1.1": {
72
- "en": "Do not longer report read timeouts as error. It should be enough to set the quality of concerned states to values according the table above and to display warnings, if values were not updated for a long time. To see details, debug log level must be enabled by the user.",
73
- "de": "Read Timeouts werden nicht länger als Fehler im Log angezeigt. Es sollte ausreichen, dass die Quality der betreffenden States auf Werte gemäß der obigen Tabelle gesetzt wird und dass Warnungen angezeigt werden, wenn Werte lange nicht aktualisiert wurden. Um Details zu sehen, muss der Log-Level Debug vom Benutzer aktiviert werden.",
74
- "ru": "Не сообщайте больше о времени чтения как об ошибке. Это должно быть достаточно, чтобы установить качество соответствующих состояний к значениям согласно таблице выше и отображать предупреждения, если значения не обновлялись в течение длительного времени. Чтобы увидеть детали, уровень отладки журнала должен быть включен пользователем.",
75
- "pt": "Não reporte mais tempo de leitura como erro. Deve ser suficiente definir a qualidade dos estados em causa para valores de acordo com a tabela acima e para exibir avisos, se os valores não foram atualizados por muito tempo. Para ver detalhes, o nível de log de depuração deve ser ativado pelo usuário.",
76
- "nl": "Niet langer lezen time-outs rapporteren als fout. Het zou voldoende moeten zijn om de kwaliteit van de betrokken staten vast te stellen op waarden volgens bovenstaande tabel en waarschuwingen weer te geven, indien de waarden lange tijd niet werden bijgewerkt. Om details te zien, moet het debug-logniveau door de gebruiker worden ingeschakeld.",
77
- "fr": "Ne déclarez plus les temps de lecture comme erreur. Il devrait suffire de fixer la qualité des états concernés à des valeurs selon le tableau ci-dessus et d'afficher des avertissements, si les valeurs ne sont pas mises à jour pendant longtemps. Pour voir les détails, le niveau de débogage doit être activé par l'utilisateur.",
78
- "it": "Non report più i timeout di lettura come errore. Dovrebbe essere sufficiente impostare la qualità degli stati interessati ai valori secondo la tabella sopra e mostrare avvisi, se i valori non sono stati aggiornati per molto tempo. Per visualizzare i dettagli, il livello di registro del debug deve essere abilitato dall'utente.",
79
- "es": "No reporte más tiempo de lectura como error. Debe ser suficiente para establecer la calidad de los estados interesados a valores según la tabla anterior y para mostrar advertencias, si los valores no se actualizaron durante mucho tiempo. Para ver detalles, el nivel de registro de depuración debe ser habilitado por el usuario.",
80
- "pl": "Nie raportuj już timeout jako błąd. Powinno wystarczyć ustawić jakość danych państw na wartości zgodnie z powyższą tabelą oraz wyświetlić ostrzeżenia, jeżeli wartości nie były aktualizowane przez długi czas. Aby zobaczyć szczegóły, poziom dziennika debugowania musi być włączony przez użytkownika.",
81
- "uk": "Не довший звіт про те, як помилка. Для того, щоб встановити якість занепокоєних станів до значень, зазначених вище таблиці та для відображення попередження, якщо значення не було оновлено протягом тривалого часу. Щоб дізнатися подробиці, рівень дебюг повинен бути включений користувачем.",
82
- "zh-cn": "不再将超时读取为错误 。 如果长期不更新有关数值,则应该足以按照上表的数值确定有关国家的质量,并显示警告。 要查看细节,调试日志级别必须由用户启用."
83
- },
84
- "2.1.0": {
85
- "en": "Adapter requires node.js >= 18 and js-controller >= 5 now\nDependencies updated\nAdapter logo updated. Alpha-ESS has kindly permitted to use the Alpha-ESS logo. This does not imply any affiliation with Alpha-ESS! Alpha-ESS is not the developer or provider of this adapter!",
86
- "de": "Adapter benötigt jetzt node.js >= 18 und js-controller >= 5\nAbhängigkeiten aktualisiert\nAdapter-Logo aktualisiert. Alpha-ESS hat freundlicherweise die Nutzung des Alpha-ESS-Logos genehmigt. Dies impliziert keine Zugehörigkeit zu Alpha-ESS! Alpha-ESS ist nicht der Entwickler oder Anbieter dieses Adapters!",
87
- "ru": "Адаптер требует node.js >= 18 и js-контроллер >= 5 сейчас\nОбновленные данные о зависимостях\nОбновлен логотип адаптера. Alpha-ESS любезно разрешил использовать логотип Alpha-ESS. Это не означает никакой связи с Alpha-ESS! Alpha-ESS не является разработчиком или поставщиком этого адаптера!",
88
- "pt": "Adapter requer node.js >= 18 e js-controller >= 5 agora\nDependências atualizadas\nLogotipo do adaptador atualizado. Alpha-ESS tem permissão para usar o logotipo Alpha-ESS. Isso não implica nenhuma afiliação com Alpha-ESS! Alpha-ESS não é o desenvolvedor ou provedor deste adaptador!",
89
- "nl": "Voor adaptor zijn node.js < 18 en js-controller > Nu 5\nAfhankelijkheden bijgewerkt\nAdapterlogo bijgewerkt. Alpha-ESS mag het Alpha-ESS-logo gebruiken. Dit impliceert geen band met Alpha-ESS! Alpha-ESS is niet de ontwikkelaar of leverancier van deze adapter!",
90
- "fr": "L'adaptateur nécessite node.js >= 18 et js-controller >= 5 maintenant\nDépendances actualisées\nLogo de l'adaptateur mis à jour. Alpha-ESS a permis d'utiliser le logo Alpha-ESS. Cela n'implique aucune affiliation avec Alpha-ESS ! Alpha-ESS n'est pas le développeur ou le fournisseur de cet adaptateur !",
91
- "it": "Adattatore richiede node.js >= 18 e js-controller >= 5 ora\nDipendenze aggiornate\nLogo adattatore aggiornato. Alpha-ESS ha gentilmente permesso di utilizzare il logo Alpha-ESS. Questo non implica alcuna affiliazione con Alpha-ESS! Alpha-ESS non è lo sviluppatore o il fornitore di questo adattatore!",
92
- "es": "Adaptador requiere node.js √≥= 18 y js-controller 5 ahora\nActualización de las dependencias\nAdaptador logo actualizado. Alpha-ESS ha permitido utilizar el logotipo de Alpha-ESS. ¡Esto no implica ninguna afiliación con Alpha-ESS! Alpha-ESS no es el desarrollador o proveedor de este adaptador!",
93
- "pl": "Adapter wymaga node.js > = 18 i kontroler js- > = 5 teraz\nAktualizacja zależności\nAktualizacja logo adaptera. Alpha- ESS uprzejmie zezwolił na użycie logo Alpha- ESS. To nie oznacza żadnego związku z AlphaESS! Alpha- ESS nie jest deweloperem ani dostawcą tego adaptera!",
94
- "uk": "Адаптер вимагає node.js >= 18 і js-controller >= 5 тепер\nЗалежність оновлено\nОновлено логотип адаптера. Альфа-ESS дозволяє використовувати логотип Альфа-ESS. Це не означає афілію Альфа-ESS! Альфа-ESS не є розробником або постачальником цього адаптера!",
95
- "zh-cn": "适配器需要节点.js QQ18和js控制器 QQ 现在5号\n更新的依赖关系\n适配器标志更新. Alpha-ESS允许使用Alpha-ESS标志。 这并不意味着与Alpha -ESS有任何关系! Alpha-ESS不是这个适配器的开发者或提供者!"
96
96
  }
97
97
  },
98
98
  "titleLang": {
@@ -173,6 +173,9 @@
173
173
  "systemId": "",
174
174
  "oAEnableRealtime": true,
175
175
  "oAIntervalRealtime": 30,
176
+ "oAEnableRecent": false,
177
+ "oAEnableEssList": true,
178
+ "oAIntervalEssList": 30,
176
179
  "oAEnableEnergy": true,
177
180
  "oAIntervalEnergyMins": 5,
178
181
  "oAEnableSettingsCharge": true,
package/main.js CHANGED
@@ -216,6 +216,152 @@ class OpenAPI {
216
216
  },
217
217
  ],
218
218
  },
219
+ {
220
+ Group: 'Recent',
221
+ fnct: this.getLatestTodayPowerBySn.bind(this),
222
+ enabledName: 'oAEnableRecent',
223
+ intervalFactor: 1, // For scheduled group not used
224
+ isSchedule: true,
225
+ states: [
226
+ {
227
+ alphaAttrName: 'ppv',
228
+ role: 'value.power',
229
+ id: 'PV_power_total',
230
+ name: 'PV power total',
231
+ type: 'number',
232
+ unit: 'W',
233
+ },
234
+ {
235
+ alphaAttrName: 'load',
236
+ role: 'value.power',
237
+ id: 'Load_total',
238
+ name: 'Load total',
239
+ type: 'number',
240
+ unit: 'W',
241
+ },
242
+ {
243
+ alphaAttrName: 'cbat',
244
+ role: 'value.battery',
245
+ id: 'Battery_SOC',
246
+ name: 'State of charge',
247
+ type: 'number',
248
+ unit: '%',
249
+ },
250
+ {
251
+ alphaAttrName: 'gridCharge',
252
+ role: 'value.power',
253
+ id: 'Grid_power_total_charge',
254
+ name: 'Grid power total charge',
255
+ type: 'number',
256
+ unit: 'W',
257
+ },
258
+ {
259
+ alphaAttrName: 'feedIn',
260
+ role: 'value.power',
261
+ id: 'Grid_power_total_feedin',
262
+ name: 'Grid power total feedin',
263
+ type: 'number',
264
+ unit: 'W',
265
+ },
266
+ {
267
+ alphaAttrName: 'pchargingPile',
268
+ role: 'value.power',
269
+ id: 'Charging_pile_power_total',
270
+ name: 'Charging pile (Wallbox) power total',
271
+ type: 'number',
272
+ unit: 'W',
273
+ },
274
+ {
275
+ alphaAttrName: 'sysSn',
276
+ role: 'text',
277
+ id: 'System_SN',
278
+ name: 'System S/N',
279
+ type: 'string',
280
+ unit: null,
281
+ },
282
+ ],
283
+ },
284
+ {
285
+ Group: 'System',
286
+ fnct: this.getEssList.bind(this),
287
+ enabledName: 'oAEnableEssList',
288
+ intervalName: 'oAIntervalEssList',
289
+ intervalFactor: 1,
290
+ states: [
291
+ {
292
+ alphaAttrName: 'cobat',
293
+ role: 'value.energy',
294
+ id: 'Battery_capacity',
295
+ name: 'Battery capacity',
296
+ type: 'number',
297
+ unit: 'kWh',
298
+ },
299
+ {
300
+ alphaAttrName: 'emsStatus',
301
+ role: 'text',
302
+ id: 'EMS_status',
303
+ name: 'EMS status',
304
+ type: 'string',
305
+ unit: null,
306
+ },
307
+ {
308
+ alphaAttrName: 'mbat',
309
+ role: 'text',
310
+ id: 'Battery_model',
311
+ name: 'Battery model',
312
+ type: 'string',
313
+ unit: null,
314
+ },
315
+ {
316
+ alphaAttrName: 'minv',
317
+ role: 'text',
318
+ id: 'Inverter_model',
319
+ name: 'Inverter model',
320
+ type: 'string',
321
+ unit: null,
322
+ },
323
+ {
324
+ alphaAttrName: 'poinv',
325
+ role: 'value.power',
326
+ id: 'Inverter_nominal_power',
327
+ name: 'Inverter nominal Power',
328
+ type: 'number',
329
+ unit: 'kW',
330
+ },
331
+ {
332
+ alphaAttrName: 'popv',
333
+ role: 'value.power',
334
+ id: 'PV_nominal_power',
335
+ name: 'PV nominal Power',
336
+ type: 'number',
337
+ unit: 'kW',
338
+ },
339
+ {
340
+ alphaAttrName: 'surplusCobat',
341
+ role: 'value.energy',
342
+ id: 'Battery_capacity_remaining',
343
+ name: 'Battery capacity remaining',
344
+ type: 'number',
345
+ unit: 'kWh',
346
+ },
347
+ {
348
+ alphaAttrName: 'usCapacity',
349
+ role: 'value',
350
+ id: 'Battery_available_percentage',
351
+ name: 'Battery Available Percentage',
352
+ type: 'number',
353
+ unit: '%',
354
+ },
355
+ {
356
+ alphaAttrName: 'sysSn',
357
+ role: 'text',
358
+ id: 'System_SN',
359
+ name: 'System S/N',
360
+ type: 'string',
361
+ unit: null,
362
+ },
363
+ ],
364
+ },
219
365
  {
220
366
  Group: 'Energy',
221
367
  fnct: this.getOneDateEnergyBySn.bind(this),
@@ -692,7 +838,7 @@ class OpenAPI {
692
838
  */
693
839
  async getLastPowerData(group) {
694
840
  try {
695
- this.adapter.stopGroupTimeout(group);
841
+ await this.adapter.stopGroupTimeout(group);
696
842
 
697
843
  this.adapter.log.debug(`Fetching ${group} data...`);
698
844
 
@@ -709,12 +855,72 @@ class OpenAPI {
709
855
  await this.startGroupTimeout(group);
710
856
  }
711
857
 
858
+ /**
859
+ * @param group Group name
860
+ */
861
+ async getLatestTodayPowerBySn(group) {
862
+ try {
863
+ await this.adapter.stopGroupTimeout(group);
864
+ this.adapter.log.debug(`Fetching ${group} data...`);
865
+
866
+ const dt = new Date();
867
+ const dts = `${dt.getFullYear()}-${`0${dt.getMonth() + 1}`.slice(-2)}-${`0${dt.getDate()}`.slice(-2)}`;
868
+ const res = await this.getRequest(
869
+ `getOneDayPowerBySn?sysSn=${this.adapter.config.systemId}&queryDate=${dts}`,
870
+ {},
871
+ );
872
+ if (res && res['status'] == 200 && res.data && res.data.data) {
873
+ const latestEntry = res.data.data.reduce((latest, current) => {
874
+ return new Date(current.uploadTime) > new Date(latest.uploadTime) ? current : latest;
875
+ });
876
+ if (latestEntry.uploadTime != null) {
877
+ const deliveredTs = new Date(latestEntry.uploadTime.replace(' ', 'T')).getTime();
878
+ if (Date.now() - deliveredTs < 300000) {
879
+ // ensure that the data is not older than 5 minutes
880
+ await this.adapter.createAndUpdateStates(group, latestEntry);
881
+ } else {
882
+ this.adapter.log.error(
883
+ `Time received for data of group ${group} is too old or invalid (${latestEntry.uploadTime})! States not updated!`,
884
+ );
885
+ }
886
+ } else {
887
+ this.adapter.log.error(`No time received for data of group ${group}! States not updated!`);
888
+ }
889
+ } else {
890
+ await this.handleError(res, group);
891
+ }
892
+ } catch (e) {
893
+ this.adapter.log.error(`Fetching data for group ${group}: Exception occurred: ${e}`);
894
+ await this.handleError(this.emptyBody, group);
895
+ }
896
+ await this.startGroupTimeout(group);
897
+ }
898
+
899
+ async getEssList(group) {
900
+ try {
901
+ await this.adapter.stopGroupTimeout(group);
902
+
903
+ this.adapter.log.debug(`Fetching ${group} data...`);
904
+
905
+ const res = await this.getRequest('getEssList', {});
906
+ if (res && res['status'] == 200 && res.data && res.data.data) {
907
+ await this.adapter.createAndUpdateStates(group, res.data.data);
908
+ } else {
909
+ await this.handleError(res, group);
910
+ }
911
+ } catch (e) {
912
+ this.adapter.log.error(`Fetching data for group ${group}: Exception occurred: ${e}`);
913
+ await this.handleError(this.emptyBody, group);
914
+ }
915
+ await this.startGroupTimeout(group);
916
+ }
917
+
712
918
  /**
713
919
  * @param group Group name
714
920
  */
715
921
  async getOneDateEnergyBySn(group) {
716
922
  try {
717
- this.adapter.stopGroupTimeout(group);
923
+ await this.adapter.stopGroupTimeout(group);
718
924
 
719
925
  this.adapter.log.debug(`Fetching ${group} data...`);
720
926
 
@@ -741,7 +947,7 @@ class OpenAPI {
741
947
  */
742
948
  async getChargeConfigInfo(group) {
743
949
  try {
744
- this.adapter.stopGroupTimeout(group);
950
+ await this.adapter.stopGroupTimeout(group);
745
951
 
746
952
  this.adapter.log.debug(`Fetching ${group} data...`);
747
953
 
@@ -763,7 +969,7 @@ class OpenAPI {
763
969
  */
764
970
  async getDisChargeConfigInfo(group) {
765
971
  try {
766
- this.adapter.stopGroupTimeout(group);
972
+ await this.adapter.stopGroupTimeout(group);
767
973
 
768
974
  this.adapter.log.debug(`Fetching ${group} data...`);
769
975
 
@@ -785,7 +991,7 @@ class OpenAPI {
785
991
  */
786
992
  async getSumDataForCustomer(group) {
787
993
  try {
788
- this.adapter.stopGroupTimeout(group);
994
+ await this.adapter.stopGroupTimeout(group);
789
995
 
790
996
  this.adapter.log.debug(`Fetching ${group} data...`);
791
997
 
@@ -812,7 +1018,7 @@ class OpenAPI {
812
1018
  */
813
1019
  async getWallboxData(group) {
814
1020
  try {
815
- this.adapter.stopGroupTimeout(group);
1021
+ await this.adapter.stopGroupTimeout(group);
816
1022
 
817
1023
  this.adapter.log.debug(`Fetching ${group} data...`);
818
1024
  // First we need to get SN if not already done:
@@ -877,7 +1083,7 @@ class OpenAPI {
877
1083
  async writeConfigInfo(group, _updState, _updStateInfo) {
878
1084
  try {
879
1085
  this.adapter.stopGroupWriteTimeout(group);
880
- this.adapter.stopGroupTimeout(group);
1086
+ await this.adapter.stopGroupTimeout(group);
881
1087
 
882
1088
  this.adapter.log.debug(`Writing ${group} data...`);
883
1089
 
@@ -927,7 +1133,7 @@ class OpenAPI {
927
1133
  async writeWallboxChargerControl(group, _updState, updStateInfo) {
928
1134
  try {
929
1135
  this.adapter.stopGroupWriteTimeout(group);
930
- this.adapter.stopGroupTimeout(group);
1136
+ await this.adapter.stopGroupTimeout(group);
931
1137
 
932
1138
  this.adapter.log.debug(`Writing ${group} data...`);
933
1139
 
@@ -1165,12 +1371,15 @@ class AlphaEss extends utils.Adapter {
1165
1371
  this.log.debug(`config systemId: ${this.config.systemId}`);
1166
1372
  this.log.debug(`config oAIntervalRealtime: ${this.config.oAIntervalRealtime}`);
1167
1373
  this.log.debug(`config oAIntervalEnergyMins: ${this.config.oAIntervalEnergyMins}`);
1374
+ this.log.debug(`config oAIntervalEnergyMins: ${this.config.oAIntervalEssList}`);
1168
1375
  this.log.debug(`config oAIntervalSettingsChargeMins ${this.config.oAIntervalSettingsChargeMins}`);
1169
1376
  this.log.debug(`config oAIntervalSettingsDischargeMins ${this.config.oAIntervalSettingsDischargeMins}`);
1170
1377
  this.log.debug(`config oAIntervalSummaryMins: ${this.config.oAIntervalSummaryMins}`);
1171
1378
  this.log.debug(`config oAIntervalWallboxMins: ${this.config.oAIntervalWallboxMins}`);
1172
1379
  this.log.debug(`config oAEnableRealtime: ${this.config.oAEnableRealtime}`);
1380
+ this.log.debug(`config oAEnableRealtime: ${this.config.oAEnableRecent}`);
1173
1381
  this.log.debug(`config oAEnableEnergy: ${this.config.oAEnableEnergy}`);
1382
+ this.log.debug(`config oAEnableEnergy: ${this.config.oAEnableEssList}`);
1174
1383
  this.log.debug(`config oAEnableSettingsCharge: ${this.config.oAEnableSettingsCharge}`);
1175
1384
  this.log.debug(`config oAEnableSettingsCharge: ${this.config.oAEnableSettingsCharge}`);
1176
1385
  this.log.debug(`config oAEnableSettingsDischarge: ${this.config.oAEnableSettingsDischarge}`);
@@ -1210,28 +1419,31 @@ class AlphaEss extends utils.Adapter {
1210
1419
  for (const gidx of Object.keys(this.getStateInfoList())) {
1211
1420
  const groupInfo = this.getStateInfoList()[gidx];
1212
1421
 
1213
- groupInfo.interval = this.config[groupInfo.intervalName] * groupInfo.intervalFactor;
1214
- this.log.debug(`${groupInfo.intervalName}: ${groupInfo.interval}`);
1422
+ if (groupInfo.isSchedule) {
1423
+ groupInfo.interval = 300; // 5 Minutes, used for watchdog only
1424
+ } else {
1425
+ groupInfo.interval = this.config[groupInfo.intervalName] * groupInfo.intervalFactor;
1426
+ this.log.debug(`${groupInfo.intervalName}: ${groupInfo.interval}`);
1215
1427
 
1216
- if (
1217
- this.jsonConfig.items[groupInfo.intervalName] &&
1218
- this.jsonConfig.items[groupInfo.intervalName].min
1219
- ) {
1220
1428
  if (
1221
- groupInfo.interval <
1222
- this.jsonConfig.items[groupInfo.intervalName].min * groupInfo.intervalFactor
1429
+ this.jsonConfig.items[groupInfo.intervalName] &&
1430
+ this.jsonConfig.items[groupInfo.intervalName].min
1223
1431
  ) {
1224
- const oldVal = groupInfo.interval;
1225
- groupInfo.interval =
1226
- this.jsonConfig.items[groupInfo.intervalName].min * groupInfo.intervalFactor;
1227
- if (this.config[groupInfo.enabledName]) {
1228
- this.log.warn(
1229
- `Configured interval ${oldVal} for ${groupInfo.Group} no longer supported. Changed to ${groupInfo.interval}. Please change your configuration!`,
1230
- );
1432
+ if (
1433
+ groupInfo.interval <
1434
+ this.jsonConfig.items[groupInfo.intervalName].min * groupInfo.intervalFactor
1435
+ ) {
1436
+ const oldVal = groupInfo.interval;
1437
+ groupInfo.interval =
1438
+ this.jsonConfig.items[groupInfo.intervalName].min * groupInfo.intervalFactor;
1439
+ if (this.config[groupInfo.enabledName]) {
1440
+ this.log.warn(
1441
+ `Configured interval ${oldVal} for ${groupInfo.Group} no longer supported. Changed to ${groupInfo.interval}. Please change your configuration!`,
1442
+ );
1443
+ }
1231
1444
  }
1232
1445
  }
1233
1446
  }
1234
-
1235
1447
  if (this.config[groupInfo.enabledName]) {
1236
1448
  await this.setQualityForGroup(groupInfo.Group, 0x2);
1237
1449
  await groupInfo.fnct(groupInfo.Group);
@@ -1411,11 +1623,12 @@ class AlphaEss extends utils.Adapter {
1411
1623
  */
1412
1624
  startGroupTimeout(intervalInS, group) {
1413
1625
  const gidx = this.getStateInfoList().findIndex(i => i.Group == group);
1414
- if (!this.getStateInfoList()[gidx].timeoutHandle) {
1415
- const interval = this.calculateIntervalInMs(intervalInS, group);
1626
+ const groupInfo = this.getStateInfoList()[gidx];
1627
+ if (!groupInfo.timeoutHandle) {
1628
+ const interval = this.calculateIntervalInMs(intervalInS, groupInfo);
1416
1629
  this.log.debug(`Timeout with interval ${interval} ms started for group ${group}`);
1417
- this.getStateInfoList()[gidx].timeoutHandle = this.setTimeout(() => {
1418
- this.getStateInfoList()[gidx].fnct(group);
1630
+ groupInfo.timeoutHandle = this.setTimeout(() => {
1631
+ groupInfo.fnct(group);
1419
1632
  }, interval);
1420
1633
  }
1421
1634
  }
@@ -1847,17 +2060,29 @@ class AlphaEss extends utils.Adapter {
1847
2060
  * This is to avoid too many requests and flooding the ioBroker log file with messages
1848
2061
  *
1849
2062
  * @param timeInS Interval time in seconds
1850
- * @param group Group name
2063
+ * @param groupInfo Group Info
1851
2064
  */
1852
- calculateIntervalInMs(timeInS, group) {
1853
- if (this.errorCount < 5) {
1854
- return timeInS * 1000;
1855
- }
2065
+ calculateIntervalInMs(timeInS, groupInfo) {
2066
+ if (groupInfo.isSchedule) {
2067
+ // In this case we calculate the seconds until the next full 5 minutes plus 10 seconds
2068
+ const now = new Date();
2069
+ const minutes = now.getMinutes();
2070
+ const seconds = now.getSeconds();
2071
+ const nextFullFiveMinute = Math.ceil((minutes + 1) / 5) * 5;
2072
+ const remainingMinutes = nextFullFiveMinute - minutes - 1;
2073
+ const remainingSeconds = 60 - seconds;
2074
+
2075
+ timeInS = remainingMinutes * 60 + remainingSeconds + 10;
2076
+ } else {
2077
+ if (this.errorCount < 5) {
2078
+ return timeInS * 1000;
2079
+ }
1856
2080
 
1857
- if (timeInS < 300000) {
1858
- // 5 minutes
1859
- this.log.error(`${group}: Five or more errors occurred, next request in 5 minutes.`);
1860
- return 300000;
2081
+ if (timeInS < 300000) {
2082
+ // 5 minutes
2083
+ this.log.error(`${groupInfo.Group}: Five or more errors occurred, next request in 5 minutes.`);
2084
+ return 300000;
2085
+ }
1861
2086
  }
1862
2087
 
1863
2088
  return timeInS * 1000;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.alpha-ess",
3
- "version": "2.1.6",
3
+ "version": "2.3.0",
4
4
  "description": "Read and write data from and to Alpha ESS systems.",
5
5
  "author": {
6
6
  "name": "Gaspode",