iobroker.poolcontrol 0.8.0 → 0.8.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/io-package.json +14 -14
- package/lib/helpers/aiForecastHelper.js +5 -0
- package/lib/helpers/aiHelper.js +16 -4
- package/package.json +2 -2
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "0.8.
|
|
4
|
+
"version": "0.8.1",
|
|
5
5
|
"news": {
|
|
6
|
+
"0.8.1": {
|
|
7
|
+
"en": "Fix: AI messages were executed multiple times (e.g. 3x in Telegram). The timer system in aiHelper has been reworked: late executions now only run during the first 3 minutes after adapter start. All AI weather modules now trigger exactly once per day again. Stability improvements in the daily timers.",
|
|
8
|
+
"de": "Fix: KI-Meldungen wurden mehrfach ausgeführt (z.B. 3× in Telegram). Das Timer-System im aiHelper wurde überarbeitet: Nachholausführungen laufen jetzt nur noch in den ersten 3 Minuten nach Adapterstart. Alle AI-Wettermodule werden wieder exakt einmal pro Tag ausgelöst. Stabilitätsverbesserungen bei den täglichen Timern.",
|
|
9
|
+
"ru": "Исправление: сообщения ИИ выполнялись несколько раз (например, 3× в Telegram). Таймерная система в aiHelper была переработана: пропущенные задачи выполняются только в первые 3 минуты после запуска адаптера. Все модули погоды ИИ снова выполняются строго один раз в день.",
|
|
10
|
+
"pt": "Correção: mensagens de IA eram executadas várias vezes (ex.: 3× no Telegram). O sistema de temporizadores do aiHelper foi reestruturado: execuções atrasadas agora ocorrem apenas nos primeiros 3 minutos após iniciar o adaptador. Todos os módulos de clima da IA voltam a ser executados exatamente uma vez por dia.",
|
|
11
|
+
"nl": "Fix: AI-berichten werden meerdere keren uitgevoerd (bijv. 3× in Telegram). Het timersysteem in aiHelper is herwerkt: inhaaluitvoeringen draaien nu alleen in de eerste 3 minuten na adapterstart. Alle AI-weermodules worden weer precies één keer per dag uitgevoerd.",
|
|
12
|
+
"fr": "Correctif : les messages IA étaient exécutés plusieurs fois (ex. 3× dans Telegram). Le système de minuteries dans aiHelper a été revu : les exécutions différées ne s'exécutent plus que pendant les 3 premières minutes après le démarrage. Tous les modules météo IA se déclenchent à nouveau exactement une fois par jour.",
|
|
13
|
+
"it": "Fix: i messaggi dell'IA venivano eseguiti più volte (es. 3× su Telegram). Il sistema di timer dell'aiHelper è stato rivisto: le esecuzioni recuperate ora avvengono solo nei primi 3 minuti dopo l'avvio dell'adattatore. Tutti i moduli meteo IA ora si attivano nuovamente una sola volta al giorno.",
|
|
14
|
+
"es": "Corrección: los mensajes de IA se ejecutaban varias veces (p. ej., 3× en Telegram). Se ha rediseñado el sistema de temporizadores en aiHelper: las ejecuciones atrasadas ahora solo ocurren en los primeros 3 minutos tras iniciar el adaptador. Todos los módulos meteorológicos de IA vuelven a ejecutarse una sola vez al día.",
|
|
15
|
+
"pl": "Poprawka: komunikaty AI były wykonywane wielokrotnie (np. 3× w Telegramie). System timerów w aiHelper został przebudowany: zaległe wykonania działają teraz tylko w pierwszych 3 minutach po uruchomieniu adaptera. Wszystkie moduły pogodowe AI znów uruchamiają się dokładnie raz dziennie.",
|
|
16
|
+
"uk": "Виправлення: повідомлення ШІ виконувалися кілька разів (наприклад, 3× у Telegram). Систему таймерів в aiHelper перероблено: запізнілі виконання відбуваються лише в перші 3 хвилини після запуску. Усі погодні модулі ШІ знову працюють рівно один раз на добу.",
|
|
17
|
+
"zh-cn": "修复:AI 消息会被多次执行(例如在 Telegram 中出现 3 次)。已重构 aiHelper 中的计时器系统:补偿执行现在仅在适配器启动后的前 3 分钟内运行。所有 AI 天气模块现在每天只会执行一次。"
|
|
18
|
+
},
|
|
6
19
|
"0.8.0": {
|
|
7
20
|
"en": "New: Introduction of the AI Forecast System (aiForecastHelper). The adapter now creates a daily weather forecast for tomorrow, including temperature range, weather description, rain probability, wind analysis, and pool recommendations. New switches, schedules and outputs were added under ai.weather.*. First execution runs automatically at adapter start. Admin interface updated with important AI information.",
|
|
8
21
|
"de": "Neu: Einführung des KI-Vorhersagesystems (aiForecastHelper). Der Adapter erstellt nun täglich eine Wettervorhersage für morgen – inklusive Temperaturspanne, Wetterbeschreibung, Regenwahrscheinlichkeit, Windanalyse und Pool-Empfehlungen. Neue Schalter, Zeitpläne und Ausgaben unter ai.weather.* hinzugefügt. Erste Ausführung erfolgt automatisch beim Adapterstart. Admin-Oberfläche um wichtige KI-Hinweise erweitert.",
|
|
@@ -80,19 +93,6 @@
|
|
|
80
93
|
"pl": "Dodano pełną integrację czujnika ciśnienia (pump.pressure.*), w tym wykrywanie trendów, samo uczące się wartości min/max, dane diagnostyczne oraz konfigurowalny zakres ciśnienia normalnego. Bez automatycznej logiki – wyłącznie informacyjne.",
|
|
81
94
|
"uk": "Додано повну інтеграцію датчика тиску (pump.pressure.*), включаючи визначення трендів, самонавчальні мін/макс значення, діагностичний вихід та налаштовуваний діапазон нормального тиску. Без автоматичної логіки – лише інформаційно.",
|
|
82
95
|
"zh-cn": "新增完整压力传感器集成 (pump.pressure.*),包括趋势检测、自学习最小/最大值、诊断输出以及可配置的正常压力范围。无自动控制逻辑,仅提供信息。"
|
|
83
|
-
},
|
|
84
|
-
"0.6.5": {
|
|
85
|
-
"en": "Fix for weekly, monthly and yearly reset in consumptionHelper",
|
|
86
|
-
"de": "Fix für Wochen-, Monats- und Jahres-Reset im ConsumptionHelper",
|
|
87
|
-
"ru": "Исправление еженедельного, ежемесячного и ежегодного сброса в consumptionHelper",
|
|
88
|
-
"pt": "Correção para redefinição semanal, mensal e anual no consumptionHelper",
|
|
89
|
-
"nl": "Fix voor wekelijkse, maandelijkse en jaarlijkse reset in consumptionHelper",
|
|
90
|
-
"fr": "Correctif pour la réinitialisation hebdomadaire, mensuelle et annuelle dans consumptionHelper",
|
|
91
|
-
"it": "Correzione per il reset settimanale, mensile e annuale in consumptionHelper",
|
|
92
|
-
"es": "Corrección para el reinicio semanal, mensual y anual en consumptionHelper",
|
|
93
|
-
"pl": "Poprawka cotygodniowego, comiesięcznego i corocznego resetu w consumptionHelper",
|
|
94
|
-
"uk": "Виправлення щотижневого, щомісячного та щорічного скидання в consumptionHelper",
|
|
95
|
-
"zh-cn": "修复 consumptionHelper 中每周、每月和每年重置的问题"
|
|
96
96
|
}
|
|
97
97
|
},
|
|
98
98
|
"titleLang": {
|
|
@@ -38,6 +38,11 @@ const aiForecastHelper = {
|
|
|
38
38
|
|
|
39
39
|
await this._refreshTimer();
|
|
40
40
|
|
|
41
|
+
// ----------------------------------------------------------
|
|
42
|
+
// NEU: Delay, damit ioBroker alle States laden kann
|
|
43
|
+
// ----------------------------------------------------------
|
|
44
|
+
await new Promise(res => setTimeout(res, 1500));
|
|
45
|
+
|
|
41
46
|
// ----------------------------------------------------------
|
|
42
47
|
// NEU: Sofortige Ausführung beim Adapterstart (wenn aktiviert)
|
|
43
48
|
// ----------------------------------------------------------
|
package/lib/helpers/aiHelper.js
CHANGED
|
@@ -47,6 +47,8 @@ const aiHelper = {
|
|
|
47
47
|
_lastScheduleValues: {}, // NEU: merkt sich letzte Zeitwerte
|
|
48
48
|
_debugMode: false,
|
|
49
49
|
|
|
50
|
+
_adapterStartedAt: Date.now(), // FIX: Zeitpunkt des Adapterstarts
|
|
51
|
+
|
|
50
52
|
// Anti-Spam-Level (merkt sich letzte Warnungen)
|
|
51
53
|
_lastPoolTipCode: null,
|
|
52
54
|
_lastPoolTipWindLevel: null,
|
|
@@ -120,6 +122,11 @@ const aiHelper = {
|
|
|
120
122
|
// Timer neu aufbauen
|
|
121
123
|
await this._refreshTimers();
|
|
122
124
|
|
|
125
|
+
// ----------------------------------------------------------
|
|
126
|
+
// NEU: Delay, damit ioBroker alle States laden kann
|
|
127
|
+
// ----------------------------------------------------------
|
|
128
|
+
await new Promise(res => setTimeout(res, 1500));
|
|
129
|
+
|
|
123
130
|
// NEU: Wenn Uhrzeit heute noch in der Zukunft liegt → sofort ausführen
|
|
124
131
|
try {
|
|
125
132
|
const now = new Date();
|
|
@@ -303,15 +310,20 @@ const aiHelper = {
|
|
|
303
310
|
const timer = setInterval(async () => {
|
|
304
311
|
const now = new Date();
|
|
305
312
|
|
|
306
|
-
// ---
|
|
313
|
+
// --- FIX: Nachholen nur in den ersten 3 Minuten nach Adapterstart ---
|
|
307
314
|
const diffMinutes = now.getHours() * 60 + now.getMinutes() - (hour * 60 + minute);
|
|
308
315
|
|
|
309
|
-
|
|
316
|
+
const adapterUptimeMs = Date.now() - this._adapterStartedAt;
|
|
317
|
+
const withinStartupWindow = adapterUptimeMs <= 3 * 60 * 1000; // 3 Minuten
|
|
318
|
+
|
|
319
|
+
if (withinStartupWindow && diffMinutes > 0 && diffMinutes <= 2) {
|
|
310
320
|
try {
|
|
311
321
|
await callback();
|
|
312
|
-
this.adapter.log.
|
|
322
|
+
this.adapter.log.info(
|
|
323
|
+
'[aiHelper] Nachholung ausgeführt (innerhalb der ersten 3 Minuten nach Start)',
|
|
324
|
+
);
|
|
313
325
|
} catch (err) {
|
|
314
|
-
this.adapter.log.warn(`[aiHelper] Fehler bei
|
|
326
|
+
this.adapter.log.warn(`[aiHelper] Fehler bei Nachholung: ${err.message}`);
|
|
315
327
|
}
|
|
316
328
|
}
|
|
317
329
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
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",
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
],
|
|
16
16
|
"repository": {
|
|
17
17
|
"type": "git",
|
|
18
|
-
"url": "https://github.com/DasBo1975/ioBroker.poolcontrol.git"
|
|
18
|
+
"url": "git+https://github.com/DasBo1975/ioBroker.poolcontrol.git"
|
|
19
19
|
},
|
|
20
20
|
"engines": {
|
|
21
21
|
"node": ">= 20"
|