iobroker.poolcontrol 0.5.4 → 0.5.5
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/admin/jsonConfig.json +1 -2
- package/io-package.json +14 -14
- package/lib/helpers/statisticsHelperMonth.js +21 -16
- package/lib/helpers/statisticsHelperWeek.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -121,6 +121,9 @@ Funktionen können sich ändern – bitte regelmäßig den Changelog beachten.
|
|
|
121
121
|
## Changelog
|
|
122
122
|
### **WORK IN PROGRESS**
|
|
123
123
|
|
|
124
|
+
## v0.5.5 (2025-11-01)
|
|
125
|
+
- Endlosschleife in Statistik Woche und Monat behoben
|
|
126
|
+
|
|
124
127
|
## v0.5.3 (2025-10-30)
|
|
125
128
|
- Telegram-Benutzerwahl hinzugefügt
|
|
126
129
|
|
package/admin/jsonConfig.json
CHANGED
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "0.5.
|
|
4
|
+
"version": "0.5.5",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.5.5": {
|
|
7
|
+
"en": "Fixed remaining timer recursion issue in weekly and monthly statistics to fully prevent infinite reset loops. Cleaned up jsonConfig structure and improved timer handling.",
|
|
8
|
+
"de": "Verbleibende Timer-Rekursion in Wochen- und Monatsstatistik behoben, um Endlosschleifen beim Reset endgültig zu verhindern. jsonConfig-Struktur bereinigt und Timer-Handling verbessert.",
|
|
9
|
+
"ru": "Исправлена оставшаяся рекурсия таймера в еженедельной и ежемесячной статистике для полного предотвращения бесконечных циклов сброса. Упрощена структура jsonConfig и улучшено управление таймерами.",
|
|
10
|
+
"pt": "Corrigida a recursão restante do temporizador nas estatísticas semanais e mensais para evitar completamente loops de redefinição infinitos. Estrutura jsonConfig limpa e manuseio de temporizador aprimorado.",
|
|
11
|
+
"nl": "Overgebleven timerrecursie in week- en maandstatistieken opgelost om oneindige resetlussen volledig te voorkomen. jsonConfig-structuur opgeschoond en timerafhandeling verbeterd.",
|
|
12
|
+
"fr": "Correction de la récursion restante du minuteur dans les statistiques hebdomadaires et mensuelles afin d'éviter définitivement les boucles de réinitialisation infinies. Structure jsonConfig nettoyée et gestion du minuteur améliorée.",
|
|
13
|
+
"it": "Corretta la ricorsione residua del timer nelle statistiche settimanali e mensili per prevenire completamente i loop di reset infiniti. Pulita la struttura jsonConfig e migliorata la gestione dei timer.",
|
|
14
|
+
"es": "Corregida la recursión restante del temporizador en las estadísticas semanales y mensuales para evitar completamente los bucles de reinicio infinitos. Estructura jsonConfig limpiada y manejo del temporizador mejorado.",
|
|
15
|
+
"pl": "Naprawiono pozostałą rekursję timera w statystykach tygodniowych i miesięcznych, aby całkowicie zapobiec nieskończonym pętlom resetowania. Uporządkowano strukturę jsonConfig i ulepszono obsługę timera.",
|
|
16
|
+
"uk": "Виправлено залишкову рекурсію таймера у тижневій та місячній статистиці, щоб повністю запобігти нескінченним циклам скидання. Очищено структуру jsonConfig і покращено обробку таймерів.",
|
|
17
|
+
"zh-cn": "修复了每周和每月统计中的剩余计时器递归问题,以完全防止无限重置循环。清理了 jsonConfig 结构并改进了计时器处理。"
|
|
18
|
+
},
|
|
6
19
|
"0.5.4": {
|
|
7
20
|
"en": "Fixed a rare infinite loop during weekly and monthly statistics reset that could cause Redis overload. Added timer protection and improved stability.",
|
|
8
21
|
"de": "Selten auftretende Endlosschleife beim Wochen- und Monatsreset der Statistik behoben, die zu Redis-Überlastung führen konnte. Timer-Schutz und Stabilität verbessert.",
|
|
@@ -78,19 +91,6 @@
|
|
|
78
91
|
"pl": "Dodano dzienne statystyki temperatury w analytics.statistics.temperature.today z automatycznym śledzeniem wartości min/max/średnich, podsumowaniami JSON i HTML oraz resetem o północy.",
|
|
79
92
|
"uk": "Додано щоденну статистику температури в analytics.statistics.temperature.today з автоматичним відстеженням мін/макс/середніх значень, JSON і HTML зведеннями та скиданням опівночі.",
|
|
80
93
|
"zh-cn": "在 analytics.statistics.temperature.today 中添加了每日温度统计,具有自动最小/最大/平均跟踪、JSON 和 HTML 摘要以及午夜重置功能。"
|
|
81
|
-
},
|
|
82
|
-
"0.3.1": {
|
|
83
|
-
"en": "Frost protection logic stabilized: fixed hysteresis of +2 °C and rounded temperature values to avoid pump switching fluctuations around 3 °C.",
|
|
84
|
-
"de": "Frostschutz-Logik stabilisiert: feste Hysterese von +2 °C und gerundete Temperaturwerte zur Vermeidung von Pumpenschaltflattern um 3 °C.",
|
|
85
|
-
"ru": "Логика защиты от замерзания стабилизирована: фиксированная гистерезис +2 °C и округленные значения температуры для предотвращения колебаний включения насоса около 3 °C.",
|
|
86
|
-
"pt": "Lógica de proteção contra congelamento estabilizada: histerese fixa de +2 °C e valores de temperatura arredondados para evitar flutuações de comutação da bomba em torno de 3 °C.",
|
|
87
|
-
"nl": "Vorstbeschermingslogica gestabiliseerd: vaste hysterese van +2 °C en afgeronde temperatuurwaarden om pompfluctuaties rond 3 °C te voorkomen.",
|
|
88
|
-
"fr": "Logique de protection antigel stabilisée : hystérésis fixe de +2 °C et valeurs de température arrondies pour éviter les fluctuations de commutation de la pompe autour de 3 °C.",
|
|
89
|
-
"it": "Logica di protezione antigelo stabilizzata: isteresi fissa di +2 °C e valori di temperatura arrotondati per evitare fluttuazioni di commutazione della pompa intorno a 3 °C.",
|
|
90
|
-
"es": "Lógica de protección contra heladas estabilizada: histéresis fija de +2 °C y valores de temperatura redondeados para evitar fluctuaciones de conmutación de la bomba alrededor de 3 °C.",
|
|
91
|
-
"pl": "Ustabilizowano logikę ochrony przed zamarzaniem: stała histereza +2 °C i zaokrąglone wartości temperatury, aby uniknąć wahań przełączania pompy w okolicach 3 °C.",
|
|
92
|
-
"uk": "Стабілізовано логіку захисту від замерзання: фіксована гістерезис +2 °C і округлені значення температури, щоб уникнути коливань увімкнення насоса біля 3 °C.",
|
|
93
|
-
"zh-cn": "防冻逻辑稳定:固定 +2 °C 滞后并四舍五入温度值,以避免泵在 3 °C 附近频繁切换。"
|
|
94
94
|
}
|
|
95
95
|
},
|
|
96
96
|
"titleLang": {
|
|
@@ -347,26 +347,31 @@ const statisticsHelperMonth = {
|
|
|
347
347
|
|
|
348
348
|
const now = new Date();
|
|
349
349
|
const nextReset = new Date(now.getFullYear(), now.getMonth() + 1, 1, 0, 5, 0, 0);
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
//
|
|
353
|
-
if (
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
);
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
364
|
-
return;
|
|
350
|
+
let msUntilReset = nextReset.getTime() - now.getTime();
|
|
351
|
+
|
|
352
|
+
// Wenn heute bereits der 1. ist → keinen sofortigen Reset starten!
|
|
353
|
+
if (now.getDate() === 1) {
|
|
354
|
+
adapter.log.debug('statisticsHelperMonth: Heute ist bereits der 1. – Reset wurde übersprungen.');
|
|
355
|
+
// Plan auf nächsten Monat verschieben
|
|
356
|
+
nextReset.setMonth(nextReset.getMonth() + 1);
|
|
357
|
+
msUntilReset = nextReset.getTime() - now.getTime();
|
|
358
|
+
}
|
|
359
|
+
|
|
360
|
+
// Wenn Berechnung negativ oder zu klein ist → Sicherheit
|
|
361
|
+
if (msUntilReset <= 0 || msUntilReset < 10 * 60 * 1000) {
|
|
362
|
+
adapter.log.debug('statisticsHelperMonth: msUntilReset war zu klein – korrigiere Timer.');
|
|
363
|
+
msUntilReset = 10 * 60 * 1000; // mindestens 10 Minuten warten
|
|
365
364
|
}
|
|
366
365
|
|
|
366
|
+
// Timer setzen
|
|
367
367
|
this.monthResetTimer = setTimeout(async () => {
|
|
368
|
+
if (this.isResetting) {
|
|
369
|
+
adapter.log.debug('statisticsHelperMonth: Reset läuft bereits – Timer übersprungen.');
|
|
370
|
+
return;
|
|
371
|
+
}
|
|
372
|
+
|
|
368
373
|
await this._resetMonthlyTemperatureStats();
|
|
369
|
-
await this._scheduleMonthReset();
|
|
374
|
+
// await this._scheduleMonthReset();
|
|
370
375
|
}, msUntilReset);
|
|
371
376
|
|
|
372
377
|
adapter.log.debug(
|
|
@@ -389,7 +389,7 @@ const statisticsHelperWeek = {
|
|
|
389
389
|
|
|
390
390
|
this.weekResetTimer = setTimeout(async () => {
|
|
391
391
|
await this._resetWeeklyTemperatureStats();
|
|
392
|
-
await this._scheduleWeekReset();
|
|
392
|
+
// await this._scheduleWeekReset();
|
|
393
393
|
}, msUntilReset);
|
|
394
394
|
|
|
395
395
|
adapter.log.debug(`statisticsHelperWeek: Wochen-Reset geplant in ${Math.round(msUntilReset / 60000)} Minuten.`);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "0.5.
|
|
3
|
+
"version": "0.5.5",
|
|
4
4
|
"description": "Steuerung & Automatisierung für den Pool (Pumpe, Heizung, Ventile, Sensoren).",
|
|
5
5
|
"author": "DasBo1975 <dasbo1975@outlook.de>",
|
|
6
6
|
"homepage": "https://github.com/DasBo1975/ioBroker.poolcontrol",
|