iobroker.poolcontrol 1.3.27 → 1.3.28
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 +6 -12
- package/io-package.json +14 -14
- package/lib/helpers/pumpHelper.js +14 -3
- package/lib/stateDefinitions/pumpStates.js +39 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -263,6 +263,12 @@ New features are added regularly – please refer to the changelog.
|
|
|
263
263
|
---
|
|
264
264
|
|
|
265
265
|
## Changelog
|
|
266
|
+
### 1.3.28 (2026-06-03)
|
|
267
|
+
|
|
268
|
+
- Added configurable startup power check timeout for pump monitoring (`pump.startup_power_check_timeout_sec`).
|
|
269
|
+
- Default behavior remains unchanged (5 seconds).
|
|
270
|
+
- Improved compatibility with delayed power measurements from smart plugs and power meters.
|
|
271
|
+
|
|
266
272
|
### 1.3.27 (2026-05-30)
|
|
267
273
|
|
|
268
274
|
- Added new Chemistry Tools section
|
|
@@ -291,18 +297,6 @@ New features are added regularly – please refer to the changelog.
|
|
|
291
297
|
- Improved README and changelog structure
|
|
292
298
|
- Repository checker recommendations reviewed
|
|
293
299
|
|
|
294
|
-
### 1.3.23 (2026-05-26)
|
|
295
|
-
|
|
296
|
-
- Added extended temperature diagnostics for all temperature sensors:
|
|
297
|
-
- last valid value
|
|
298
|
-
- last valid value timestamp
|
|
299
|
-
- minutes since last value
|
|
300
|
-
- source status (`ok`, `warning`, `not_received`, `invalid_timestamp`)
|
|
301
|
-
- Added automatic recovery mechanism for stalled temperature updates
|
|
302
|
-
- Recovery runs only when a sensor enters warning state and uses cooldown protection
|
|
303
|
-
- Switched temperature helper timers to ioBroker adapter timers
|
|
304
|
-
- Improved visibility and troubleshooting for missing or delayed temperature updates
|
|
305
|
-
|
|
306
300
|
## Archived Release History
|
|
307
301
|
|
|
308
302
|
For older releases and archived version history see:
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "1.3.
|
|
4
|
+
"version": "1.3.28",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.3.28": {
|
|
7
|
+
"en": "Added configurable startup power check timeout for pump monitoring (5-10 seconds). Improved compatibility with delayed power measurements from smart plugs and power meters.",
|
|
8
|
+
"de": "Konfigurierbares Timeout für die Leistungsprüfung nach Pumpenstart (5-10 Sekunden) hinzugefügt. Kompatibilität mit verzögert aktualisierten Leistungswerten von Smart-Steckdosen und Leistungsmessern verbessert.",
|
|
9
|
+
"ru": "Добавлен настраиваемый тайм-аут проверки мощности при запуске для мониторинга насоса (5–10 секунд). Улучшена совместимость с измерениями мощности с задержкой от интеллектуальных розеток и измерителей мощности.",
|
|
10
|
+
"pt": "Adicionado tempo limite de verificação de energia de inicialização configurável para monitoramento da bomba (5 a 10 segundos). Compatibilidade aprimorada com medições de energia atrasadas de plugues inteligentes e medidores de energia.",
|
|
11
|
+
"nl": "Configureerbare time-out voor stroomcontrole bij opstarten toegevoegd voor pompbewaking (5-10 seconden). Verbeterde compatibiliteit met vertraagde stroommetingen van slimme stekkers en stroommeters.",
|
|
12
|
+
"fr": "Ajout d'un délai d'expiration configurable pour la vérification de l'alimentation au démarrage pour la surveillance de la pompe (5 à 10 secondes). Compatibilité améliorée avec les mesures de puissance retardées des prises intelligentes et des compteurs de puissance.",
|
|
13
|
+
"it": "Aggiunto timeout configurabile del controllo dell'alimentazione all'avvio per il monitoraggio della pompa (5-10 secondi). Compatibilità migliorata con misurazioni di potenza ritardate da prese intelligenti e misuratori di potenza.",
|
|
14
|
+
"es": "Se agregó un tiempo de espera de verificación de energía de inicio configurable para el monitoreo de la bomba (5-10 segundos). Compatibilidad mejorada con mediciones de potencia retrasadas de enchufes inteligentes y medidores de potencia.",
|
|
15
|
+
"pl": "Dodano konfigurowalny limit czasu sprawdzania mocy rozruchowej dla monitorowania pompy (5-10 sekund). Poprawiona kompatybilność z opóźnionymi pomiarami mocy z inteligentnych wtyczek i mierników mocy.",
|
|
16
|
+
"uk": "Додано настроюваний тайм-аут перевірки живлення при запуску для моніторингу насоса (5-10 секунд). Покращена сумісність із затримкою вимірювання потужності від розумних розеток і лічильників.",
|
|
17
|
+
"zh-cn": "添加了用于泵监控的可配置启动电源检查超时(5-10 秒)。改进了与智能插头和功率计的延迟功率测量的兼容性。"
|
|
18
|
+
},
|
|
6
19
|
"1.3.27": {
|
|
7
20
|
"en": "Added new Chemistry Tools with pH Plus Calculator, pH Minus Calculator and Salt Calculator. Added validation, result texts, error handling and automatic pool volume prefill. Expanded documentation and function overviews.",
|
|
8
21
|
"de": "Neuen Bereich Chemistry Tools mit pH-Plus-Rechner, pH-Minus-Rechner und Salz-Rechner hinzugefügt. Validierungen, Ergebnistexte, Fehlerbehandlung und automatische Vorbelegung des Poolvolumens ergänzt. Dokumentation und Funktionsübersichten erweitert.",
|
|
@@ -54,19 +67,6 @@
|
|
|
54
67
|
"pl": "Zaktualizowane komponenty repozytorium i opiekuna: zaktualizowane zależności skryptu wydania, ulepszona struktura README/dziennika zmian i sprawdzone sugestie dotyczące sprawdzania repozytorium",
|
|
55
68
|
"uk": "Оновлений репозиторій і компоненти супроводжувача: оновлені залежності сценарію випуску, покращена структура README/журналу змін і переглянуті пропозиції перевірки сховища",
|
|
56
69
|
"zh-cn": "更新了存储库和维护者组件:更新了发布脚本依赖项,改进了自述文件/变更日志结构并审查了存储库检查器建议"
|
|
57
|
-
},
|
|
58
|
-
"1.3.23": {
|
|
59
|
-
"en": "Temperature diagnostics extended: Added new diagnostic states for all temperature sensors (last valid value, timestamp, minutes since last value, source status). Added self-healing/recovery mechanism for stalled or missing temperature events. Temperature helper updated to ioBroker-compliant timers.",
|
|
60
|
-
"de": "Temperaturbereich erweitert: Neue Diagnosewerte für alle Temperatursensoren ergänzt (letzter gültiger Wert, Zeitstempel, Minuten seit letztem Wert, Quellenstatus). Zusätzlich Selbstheilungs-/Recovery-Mechanismus für ausgefallene oder hängende Temperatur-Events ergänzt. Temperaturhelper auf ioBroker-konforme Timer umgestellt.",
|
|
61
|
-
"ru": "Расширенная диагностика температуры: добавлены новые диагностические состояния для всех датчиков температуры (последнее действительное значение, временная метка, минуты с момента последнего значения, состояние источника). Добавлен механизм самовосстановления/восстановления при остановке или отсутствии температурных событий. Помощник по температуре обновлен до таймеров, совместимых с ioBroker.",
|
|
62
|
-
"pt": "Diagnóstico de temperatura estendido: Adicionados novos estados de diagnóstico para todos os sensores de temperatura (último valor válido, carimbo de data/hora, minutos desde o último valor, status da fonte). Adicionado mecanismo de autocorreção/recuperação para eventos de temperatura paralisados ou ausentes. Auxiliar de temperatura atualizado para temporizadores compatíveis com ioBroker.",
|
|
63
|
-
"nl": "Temperatuurdiagnostiek uitgebreid: Nieuwe diagnostische statussen toegevoegd voor alle temperatuursensoren (laatste geldige waarde, tijdstempel, minuten sinds laatste waarde, bronstatus). Zelfherstel-/herstelmechanisme toegevoegd voor vastgelopen of ontbrekende temperatuurgebeurtenissen. Temperatuurhelper bijgewerkt naar ioBroker-compatibele timers.",
|
|
64
|
-
"fr": "Diagnostics de température étendus : ajout de nouveaux états de diagnostic pour tous les capteurs de température (dernière valeur valide, horodatage, minutes depuis la dernière valeur, état de la source). Ajout d'un mécanisme d'auto-guérison/récupération pour les événements de température bloqués ou manquants. Assistant de température mis à jour avec des minuteries conformes à ioBroker.",
|
|
65
|
-
"it": "Diagnostica della temperatura estesa: aggiunti nuovi stati diagnostici per tutti i sensori di temperatura (ultimo valore valido, timestamp, minuti dall'ultimo valore, stato della sorgente). Aggiunto meccanismo di autoriparazione/recupero per eventi di temperatura bloccati o mancanti. Assistente per la temperatura aggiornato ai timer compatibili con ioBroker.",
|
|
66
|
-
"es": "Diagnóstico de temperatura extendido: se agregaron nuevos estados de diagnóstico para todos los sensores de temperatura (último valor válido, marca de tiempo, minutos desde el último valor, estado de fuente). Se agregó un mecanismo de autorreparación/recuperación para eventos de temperatura estancados o faltantes. Asistente de temperatura actualizado a temporizadores compatibles con ioBroker.",
|
|
67
|
-
"pl": "Rozszerzona diagnostyka temperatury: Dodano nowe stany diagnostyczne dla wszystkich czujników temperatury (ostatnia ważna wartość, znacznik czasu, minuty od ostatniej wartości, stan źródła). Dodano mechanizm samonaprawy/odzyskiwania w przypadku zablokowania lub braku zdarzeń związanych z temperaturą. Pomocnik temperatury zaktualizowany do timerów zgodnych z ioBroker.",
|
|
68
|
-
"uk": "Розширено діагностику температури: додано нові діагностичні стани для всіх датчиків температури (останнє дійсне значення, позначка часу, хвилини з останнього значення, статус джерела). Додано механізм самовідновлення/відновлення для зупинених або відсутніх температурних подій. Помічник температури оновлено до таймерів, сумісних із ioBroker.",
|
|
69
|
-
"zh-cn": "温度诊断扩展:为所有温度传感器添加了新的诊断状态(最后一个有效值、时间戳、自最后一个值以来的分钟数、源状态)。添加了针对停滞或丢失温度事件的自我修复/恢复机制。温度助手更新为符合 ioBroker 标准的计时器。"
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
"titleLang": {
|
|
@@ -250,13 +250,24 @@ const pumpHelper = {
|
|
|
250
250
|
const power = this._parseNumber((await this.adapter.getStateAsync('pump.current_power'))?.val);
|
|
251
251
|
const maxWatt = this._parseNumber((await this.adapter.getStateAsync('pump.pump_max_watt'))?.val);
|
|
252
252
|
|
|
253
|
-
//
|
|
254
|
-
const
|
|
253
|
+
// NEU: Konfigurierbarer Sicherheits-Timeout für Leistungsprüfung nach Pumpenstart
|
|
254
|
+
const startupPowerCheckTimeoutState = await this.adapter.getStateAsync(
|
|
255
|
+
'pump.startup_power_check_timeout_sec',
|
|
256
|
+
);
|
|
257
|
+
|
|
258
|
+
const startupPowerCheckTimeoutSec = Math.min(
|
|
259
|
+
10,
|
|
260
|
+
Math.max(5, this._parseNumber(startupPowerCheckTimeoutState?.val) || 5),
|
|
261
|
+
);
|
|
262
|
+
|
|
263
|
+
const graceOnMs = startupPowerCheckTimeoutSec * 1000;
|
|
255
264
|
const graceOffMs = 5000; // 5 Sekunden nach Stop ignorieren
|
|
256
265
|
const now = Date.now();
|
|
257
266
|
|
|
258
267
|
if (active === true && this._lastPumpStart && now - this._lastPumpStart < graceOnMs) {
|
|
259
|
-
this.adapter.log.debug(
|
|
268
|
+
this.adapter.log.debug(
|
|
269
|
+
`[pumpHelper] Within start grace period (${startupPowerCheckTimeoutSec}s) – skipping error check`,
|
|
270
|
+
);
|
|
260
271
|
return;
|
|
261
272
|
}
|
|
262
273
|
|
|
@@ -233,6 +233,45 @@ async function createPumpStates(adapter) {
|
|
|
233
233
|
});
|
|
234
234
|
}
|
|
235
235
|
|
|
236
|
+
// NEU: Sicherheits-Timeout für Leistungsprüfung nach Pumpenstart
|
|
237
|
+
await adapter.setObjectNotExistsAsync('pump.startup_power_check_timeout_sec', {
|
|
238
|
+
type: 'state',
|
|
239
|
+
common: {
|
|
240
|
+
name: {
|
|
241
|
+
en: 'Startup power check timeout',
|
|
242
|
+
de: 'Timeout Leistungsprüfung nach Pumpenstart',
|
|
243
|
+
},
|
|
244
|
+
desc: {
|
|
245
|
+
en: 'Time in seconds PoolControl waits after a pump start for valid power consumption. Higher values delay error detection and should only be used if the measurement hardware reports power values with a delay.',
|
|
246
|
+
de: 'Zeit in Sekunden, die PoolControl nach einem Pumpenstart auf eine gültige Leistungsaufnahme wartet. Höhere Werte verzögern die Fehlererkennung und sollten nur verwendet werden, wenn die eingesetzte Messhardware Leistungswerte verzögert liefert.',
|
|
247
|
+
},
|
|
248
|
+
type: 'number',
|
|
249
|
+
role: 'value',
|
|
250
|
+
unit: 's',
|
|
251
|
+
read: true,
|
|
252
|
+
write: true,
|
|
253
|
+
min: 5,
|
|
254
|
+
max: 10,
|
|
255
|
+
step: 1,
|
|
256
|
+
def: 5,
|
|
257
|
+
persist: true,
|
|
258
|
+
},
|
|
259
|
+
native: {},
|
|
260
|
+
});
|
|
261
|
+
|
|
262
|
+
// NEU: nur initial setzen, vorhandene/persistente Werte nicht überschreiben
|
|
263
|
+
const existingStartupPowerTimeout = await adapter.getStateAsync('pump.startup_power_check_timeout_sec');
|
|
264
|
+
if (
|
|
265
|
+
existingStartupPowerTimeout === null ||
|
|
266
|
+
existingStartupPowerTimeout.val === null ||
|
|
267
|
+
existingStartupPowerTimeout.val === undefined
|
|
268
|
+
) {
|
|
269
|
+
await adapter.setStateAsync('pump.startup_power_check_timeout_sec', {
|
|
270
|
+
val: 5,
|
|
271
|
+
ack: true,
|
|
272
|
+
});
|
|
273
|
+
}
|
|
274
|
+
|
|
236
275
|
// Pumpenstatus (Text)
|
|
237
276
|
await adapter.setObjectNotExistsAsync('pump.status', {
|
|
238
277
|
type: 'state',
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "1.3.
|
|
3
|
+
"version": "1.3.28",
|
|
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",
|