iobroker.alpha-ess 3.0.0 → 3.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -0
- package/io-package.json +15 -15
- package/main.js +13 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -61,6 +61,9 @@ 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
|
+
### 3.0.1 (2024-12-22)
|
|
65
|
+
|
|
66
|
+
- (Gaspode) Optimizations of reading pseudo-realtime power data for slow systems
|
|
64
67
|
|
|
65
68
|
### 3.0.0 (2024-12-21)
|
|
66
69
|
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "alpha-ess",
|
|
4
|
-
"version": "3.0.
|
|
4
|
+
"version": "3.0.1",
|
|
5
5
|
"news": {
|
|
6
|
+
"3.0.1": {
|
|
7
|
+
"en": "Optimizations of reading pseudo-realtime power data for slow systems",
|
|
8
|
+
"de": "Lesen von Pseudo-Realtime-Leistungsdaten für langsame Systeme optimiert",
|
|
9
|
+
"ru": "Оптимизация чтения псевдо-реальных данных питания для медленных систем",
|
|
10
|
+
"pt": "Otimizações de leitura de dados de energia pseudo-realtime para sistemas lentos",
|
|
11
|
+
"nl": "Optimalisaties van het lezen van pseudo-realtime stroomgegevens voor trage systemen",
|
|
12
|
+
"fr": "Optimisation de la lecture des données de puissance pseudo-en temps réel pour les systèmes lents",
|
|
13
|
+
"it": "Ottimizzazione dei dati di potenza pseudo-realtime di lettura per sistemi lenti",
|
|
14
|
+
"es": "Optimizaciones de lectura de datos de energía pseudo-real para sistemas lentos",
|
|
15
|
+
"pl": "Optymalizacja odczytu danych o mocy pseudorealtime dla powolnych systemów",
|
|
16
|
+
"uk": "Оптимізація даних псевдореального часу для повільних систем",
|
|
17
|
+
"zh-cn": "对慢系统读取伪实时功率数据的优化"
|
|
18
|
+
},
|
|
6
19
|
"3.0.0": {
|
|
7
20
|
"en": "**Breaking Change:** Renamed state \"Charging_period 1_end\" to \"Charging_period_1_end\"\nOptimizations in configuration dialog",
|
|
8
21
|
"de": "**Breaking Change:** Zustand \"Charging_period 1_end\" wurde zu \"Charging_period_1_end\" umbenannt\nOptimierungen im Konfigurationsdialog",
|
|
@@ -18,7 +31,7 @@
|
|
|
18
31
|
},
|
|
19
32
|
"2.3.0": {
|
|
20
33
|
"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.",
|
|
21
|
-
"de": "Bietet die Möglichkeit, pseudo-realtime
|
|
34
|
+
"de": "Bietet die Möglichkeit, pseudo-realtime Leistungsdaten 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.",
|
|
22
35
|
"ru": "Предоставляет возможность чтения псевдо-в реальном времени данных питания с использованием функции API getTodayPowerBySn. Эта функция полезна для систем, которые не имеют «поддержки данных в реальном времени». При активации данные загружаются каждые 5 минут и хранятся в папке «Recent».",
|
|
23
36
|
"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\".",
|
|
24
37
|
"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.",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Aktualizacja niektórych formalnych rzeczy",
|
|
81
94
|
"uk": "Оновлено деякі формальні речі",
|
|
82
95
|
"zh-cn": "更新了一些正式的东西"
|
|
83
|
-
},
|
|
84
|
-
"2.1.3": {
|
|
85
|
-
"en": "Increased read timeout from 10s to 20s",
|
|
86
|
-
"de": "Read Timeout von 10 auf 20 Sekunden erhöht",
|
|
87
|
-
"ru": "Увеличение времени чтения с 10 до 20 с",
|
|
88
|
-
"pt": "Aumento do tempo de leitura de 10 a 20 s",
|
|
89
|
-
"nl": "Verhoogde leestijd van 10 tot 20 s",
|
|
90
|
-
"fr": "Augmentation du temps de lecture de 10 à 20 s",
|
|
91
|
-
"it": "Tempo di lettura aumentato da 10 a 20 s",
|
|
92
|
-
"es": "Mayor tiempo de lectura de 10 a 20 s",
|
|
93
|
-
"pl": "Zwiększony czas odczytu od 10 do 20 s",
|
|
94
|
-
"uk": "Підвищений час читання від 10 до 20 с",
|
|
95
|
-
"zh-cn": "阅读超时从10秒增加到20秒"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
package/main.js
CHANGED
|
@@ -279,6 +279,14 @@ class OpenAPI {
|
|
|
279
279
|
type: 'string',
|
|
280
280
|
unit: null,
|
|
281
281
|
},
|
|
282
|
+
{
|
|
283
|
+
alphaAttrName: 'uploadTime',
|
|
284
|
+
role: 'text',
|
|
285
|
+
id: 'Upload_time',
|
|
286
|
+
name: 'Upload time to Alpha ESS Cloud',
|
|
287
|
+
type: 'string',
|
|
288
|
+
unit: null,
|
|
289
|
+
},
|
|
282
290
|
],
|
|
283
291
|
},
|
|
284
292
|
{
|
|
@@ -875,8 +883,8 @@ class OpenAPI {
|
|
|
875
883
|
});
|
|
876
884
|
if (latestEntry.uploadTime != null) {
|
|
877
885
|
const deliveredTs = new Date(latestEntry.uploadTime.replace(' ', 'T')).getTime();
|
|
878
|
-
if (Date.now() - deliveredTs <
|
|
879
|
-
// ensure that the data is not older than
|
|
886
|
+
if (Date.now() - deliveredTs < 600000) {
|
|
887
|
+
// ensure that the data is not older than 10 minutes
|
|
880
888
|
await this.adapter.createAndUpdateStates(group, latestEntry);
|
|
881
889
|
} else {
|
|
882
890
|
this.adapter.log.error(
|
|
@@ -1414,7 +1422,7 @@ class AlphaEss extends utils.Adapter {
|
|
|
1414
1422
|
const groupInfo = this.getStateInfoList()[gidx];
|
|
1415
1423
|
|
|
1416
1424
|
if (groupInfo.isSchedule) {
|
|
1417
|
-
groupInfo.interval =
|
|
1425
|
+
groupInfo.interval = 600; // 10 Minutes, used for watchdog only
|
|
1418
1426
|
} else {
|
|
1419
1427
|
groupInfo.interval = this.config[groupInfo.intervalName] * groupInfo.intervalFactor;
|
|
1420
1428
|
this.log.debug(`${groupInfo.intervalName}: ${groupInfo.interval}`);
|
|
@@ -2058,7 +2066,7 @@ class AlphaEss extends utils.Adapter {
|
|
|
2058
2066
|
*/
|
|
2059
2067
|
calculateIntervalInMs(timeInS, groupInfo) {
|
|
2060
2068
|
if (groupInfo.isSchedule) {
|
|
2061
|
-
// In this case we calculate the seconds until the next full 5 minutes plus
|
|
2069
|
+
// In this case we calculate the seconds until the next full 5 minutes plus 50 seconds
|
|
2062
2070
|
const now = new Date();
|
|
2063
2071
|
const minutes = now.getMinutes();
|
|
2064
2072
|
const seconds = now.getSeconds();
|
|
@@ -2066,7 +2074,7 @@ class AlphaEss extends utils.Adapter {
|
|
|
2066
2074
|
const remainingMinutes = nextFullFiveMinute - minutes - 1;
|
|
2067
2075
|
const remainingSeconds = 60 - seconds;
|
|
2068
2076
|
|
|
2069
|
-
timeInS = remainingMinutes * 60 + remainingSeconds +
|
|
2077
|
+
timeInS = remainingMinutes * 60 + remainingSeconds + 50;
|
|
2070
2078
|
} else {
|
|
2071
2079
|
if (this.errorCount < 5) {
|
|
2072
2080
|
return timeInS * 1000;
|