iobroker.poolcontrol 1.2.5 → 1.2.7
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 +21 -1
- package/io-package.json +27 -105
- package/lib/helpers/aiForecastHelper.js +1 -1
- package/lib/helpers/heatHelper.js +1 -1
- package/lib/stateDefinitions/actuatorsStates.js +2 -2
- package/lib/stateDefinitions/aiChemistryHelpStates.js +1 -1
- package/lib/stateDefinitions/controlStates.js +2 -2
- package/lib/stateDefinitions/heatStates.js +4 -4
- package/lib/stateDefinitions/pumpSpeedStates.js +5 -5
- package/lib/stateDefinitions/pumpStates3.js +1 -1
- package/lib/stateDefinitions/pumpStates4.js +6 -6
- package/lib/stateDefinitions/solarStates.js +3 -3
- package/lib/stateDefinitions/speechStates.js +4 -4
- package/lib/stateDefinitions/timeStates.js +2 -2
- package/main.js +22 -22
- package/package.json +4 -4
package/README.md
CHANGED
|
@@ -196,9 +196,29 @@ New features are added regularly – please refer to the changelog.
|
|
|
196
196
|
|
|
197
197
|
## Changelog
|
|
198
198
|
|
|
199
|
+
### 1.2.7
|
|
200
|
+
Released: 16.03.2026
|
|
201
|
+
- Corrected role definitions for writable states according to ioBroker guidelines
|
|
202
|
+
- Several internal learning and diagnostic states set to read-only
|
|
203
|
+
- Removed obsolete files from repository
|
|
204
|
+
|
|
205
|
+
### 1.2.6
|
|
206
|
+
Released: 12.03.2026
|
|
207
|
+
- Fixed remaining adapter checker issues
|
|
208
|
+
- Updated release-script plugins to latest versions
|
|
209
|
+
- Converted remaining log messages to English
|
|
210
|
+
- Updated dependabot configuration (added github-actions ecosystem)
|
|
211
|
+
- Reduced `common.news` entries in io-package.json to comply with repository requirements
|
|
212
|
+
|
|
213
|
+
### 1.2.5
|
|
214
|
+
Released: 07.03.2026
|
|
215
|
+
- Fixed an issue in `actuatorsHelper` where state changes were not handled correctly in certain situations
|
|
216
|
+
- Minor internal improvements and stability fixes
|
|
217
|
+
|
|
199
218
|
### 1.2.4
|
|
200
219
|
Release: 07.03.2026
|
|
201
220
|
- Fix: actuatorsHelper did not synchronize instance configuration with internal states (active/name). Additional actuators could not be activated.
|
|
221
|
+
|
|
202
222
|
### 1.2.3
|
|
203
223
|
Released: 06.03.2026
|
|
204
224
|
- Replaced native timers (setTimeout / setInterval) with adapter timers (adapter.setTimeout / adapter.setInterval)
|
|
@@ -413,6 +433,6 @@ The software source code of this project is licensed under the MIT License. See
|
|
|
413
433
|
---
|
|
414
434
|
|
|
415
435
|
## License
|
|
416
|
-
Copyright (c)
|
|
436
|
+
Copyright (c) 2026 D. Bertin (DasBo1975) <dasbo1975@outlook.de>
|
|
417
437
|
|
|
418
438
|
MIT License
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.7",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.2.7": {
|
|
7
|
+
"en": "Corrected role definitions for writable states according to ioBroker guidelines.",
|
|
8
|
+
"de": "Rollen-Definitionen für beschreibbare States gemäß ioBroker-Richtlinien korrigiert.",
|
|
9
|
+
"ru": "Исправлены определения ролей для записываемых состояний в соответствии с рекомендациями ioBroker.",
|
|
10
|
+
"pt": "Definições de função corrigidas para estados graváveis de acordo com as diretrizes do ioBroker.",
|
|
11
|
+
"nl": "Roldefinities voor beschrijfbare statussen gecorrigeerd volgens de richtlijnen van ioBroker.",
|
|
12
|
+
"fr": "Définitions de rôles corrigées pour les états inscriptibles conformément aux directives ioBroker.",
|
|
13
|
+
"it": "Corrette le definizioni dei ruoli per gli stati scrivibili secondo le linee guida di ioBroker.",
|
|
14
|
+
"es": "Definiciones de roles corregidas para estados de escritura según las pautas de ioBroker.",
|
|
15
|
+
"pl": "Poprawione definicje ról dla stanów zapisywalnych zgodnie z wytycznymi ioBroker.",
|
|
16
|
+
"uk": "Виправлено визначення ролей для записуваних станів відповідно до вказівок ioBroker.",
|
|
17
|
+
"zh-cn": "根据 ioBroker 指南更正了可写状态的角色定义。"
|
|
18
|
+
},
|
|
19
|
+
"1.2.6": {
|
|
20
|
+
"en": "Fixed adapter checker issues, converted remaining log messages to English, updated release-script plugins and dependabot configuration.",
|
|
21
|
+
"de": "Adapter-Checker-Probleme behoben, verbleibende Logmeldungen auf Englisch umgestellt, release-script Plugins und Dependabot-Konfiguration aktualisiert.",
|
|
22
|
+
"ru": "Исправлены проблемы с проверкой адаптера, преобразованы оставшиеся сообщения журнала на английский язык, обновлены плагины сценариев выпуска и конфигурация зависимостей.",
|
|
23
|
+
"pt": "Corrigidos problemas do verificador do adaptador, convertidas mensagens de log restantes para inglês, plug-ins de script de lançamento atualizados e configuração do dependabot.",
|
|
24
|
+
"nl": "Problemen met de adaptercontrole opgelost, resterende logberichten naar het Engels geconverteerd, release-scriptplug-ins en dependabot-configuratie bijgewerkt.",
|
|
25
|
+
"fr": "Correction des problèmes de vérification d'adaptateur, conversion des messages de journal restants en anglais, mise à jour des plugins de script de version et configuration des dépendances.",
|
|
26
|
+
"it": "Risolti i problemi di controllo dell'adattatore, convertiti i messaggi di registro rimanenti in inglese, aggiornati i plugin degli script di rilascio e la configurazione di dependabot.",
|
|
27
|
+
"es": "Se solucionaron problemas del verificador de adaptadores, se convirtieron los mensajes de registro restantes al inglés, se actualizaron los complementos del script de lanzamiento y la configuración del dependabot.",
|
|
28
|
+
"pl": "Naprawiono problemy z modułem sprawdzania adaptera, przekonwertowano pozostałe komunikaty dziennika na język angielski, zaktualizowano wtyczki skryptu wydania i konfigurację zależnego bota.",
|
|
29
|
+
"uk": "Виправлено проблеми перевірки адаптера, перетворено решту повідомлень журналу на англійську мову, оновлено плагіни сценарію випуску та конфігурацію dependabot.",
|
|
30
|
+
"zh-cn": "修复了适配器检查器问题,将剩余日志消息转换为英语,更新了发布脚本插件和 dependentabot 配置。"
|
|
31
|
+
},
|
|
6
32
|
"1.2.5": {
|
|
7
33
|
"en": "Fix: corrected synchronization of actuator configuration with internal states (active/name). Additional actuators could not be activated in some cases. Updated translations.",
|
|
8
34
|
"de": "Fix: Synchronisierung der Aktor-Konfiguration mit den internen States (active/name) korrigiert. Zusatzaktoren konnten in einigen Fällen nicht aktiviert werden. Übersetzungen aktualisiert.",
|
|
@@ -54,110 +80,6 @@
|
|
|
54
80
|
"pl": "Aktualizacja konserwacyjna: Podniesiono wymaganą wersję administracyjną do >= 7.6.20 i odświeżono tłumaczenia po zmianach w jsonConfig i18n.",
|
|
55
81
|
"uk": "Оновлення обслуговування: підвищено необхідну версію адміністратора до >=7.6.20 і оновлено переклади після змін jsonConfig i18n.",
|
|
56
82
|
"zh-cn": "维护更新:将所需的管理版本提高到> = 7.6.20,并在 jsonConfig i18n 更改后刷新翻译。"
|
|
57
|
-
},
|
|
58
|
-
"1.2.1": {
|
|
59
|
-
"en": "Refactored admin configuration to use the ioBroker i18n translation environment. All jsonConfig labels are now defined in English and translations are generated automatically via `npm run translate`. This prepares the adapter for Weblate and improves compatibility with ioBroker latest repository requirements.",
|
|
60
|
-
"de": "Admin-Konfiguration auf das ioBroker i18n-Übersetzungssystem umgestellt. Alle jsonConfig-Texte sind jetzt auf Englisch definiert und Übersetzungen werden automatisch über `npm run translate` erzeugt. Dadurch ist der Adapter für Weblate vorbereitet und erfüllt die Anforderungen für das Latest-Repository.",
|
|
61
|
-
"ru": "Переработана конфигурация администратора для использования среды перевода ioBroker i18n. Все метки jsonConfig теперь определены на английском языке, а переводы генерируются автоматически с помощью npm run Translate. Это подготавливает адаптер для Weblate и улучшает совместимость с последними требованиями к репозиторию ioBroker.",
|
|
62
|
-
"pt": "Configuração de administrador refatorada para usar o ambiente de tradução ioBroker i18n. Todos os rótulos jsonConfig agora são definidos em inglês e as traduções são geradas automaticamente via `npm run translate`. Isso prepara o adaptador para Weblate e melhora a compatibilidade com os requisitos de repositório mais recentes do ioBroker.",
|
|
63
|
-
"nl": "Herziene beheerdersconfiguratie om de ioBroker i18n-vertaalomgeving te gebruiken. Alle jsonConfig-labels zijn nu in het Engels gedefinieerd en vertalingen worden automatisch gegenereerd via `npm run translate`. Dit bereidt de adapter voor op Weblate en verbetert de compatibiliteit met de nieuwste repositoryvereisten van ioBroker.",
|
|
64
|
-
"fr": "Configuration d'administration refactorisée pour utiliser l'environnement de traduction ioBroker i18n. Toutes les étiquettes jsonConfig sont désormais définies en anglais et les traductions sont générées automatiquement via `npm run translate`. Cela prépare l'adaptateur pour Weblate et améliore la compatibilité avec les dernières exigences du référentiel ioBroker.",
|
|
65
|
-
"it": "Configurazione dell'amministratore rifattorizzata per utilizzare l'ambiente di traduzione ioBroker i18n. Tutte le etichette jsonConfig sono ora definite in inglese e le traduzioni vengono generate automaticamente tramite \"npm run Translate\". Questo prepara l'adattatore per Weblate e migliora la compatibilità con i requisiti del repository più recente di ioBroker.",
|
|
66
|
-
"es": "Configuración de administrador refactorizada para utilizar el entorno de traducción ioBroker i18n. Todas las etiquetas jsonConfig ahora están definidas en inglés y las traducciones se generan automáticamente a través de `npm run Translate`. Esto prepara el adaptador para Weblate y mejora la compatibilidad con los últimos requisitos del repositorio de ioBroker.",
|
|
67
|
-
"pl": "Zrefaktoryzowana konfiguracja administratora w celu korzystania ze środowiska tłumaczeniowego ioBroker i18n. Wszystkie etykiety jsonConfig są teraz zdefiniowane w języku angielskim, a tłumaczenia są generowane automatycznie za pomocą `npm run Translator`. Przygotowuje to adapter do obsługi Weblate i poprawia zgodność z najnowszymi wymaganiami repozytorium ioBroker.",
|
|
68
|
-
"uk": "Перероблено конфігурацію адміністратора для використання середовища перекладу ioBroker i18n. Усі мітки jsonConfig тепер визначені англійською мовою, а переклади генеруються автоматично за допомогою `npm run translate`. Це готує адаптер для Weblate і покращує сумісність із останніми вимогами до сховища ioBroker.",
|
|
69
|
-
"zh-cn": "重构管理配置以使用 ioBroker i18n 翻译环境。所有 jsonConfig 标签现在均以英语定义,并通过“npm run translate”自动生成翻译。这为 Weblate 准备了适配器,并提高了与 ioBroker 最新存储库要求的兼容性。"
|
|
70
|
-
},
|
|
71
|
-
"1.2.0": {
|
|
72
|
-
"en": "Maintenance release. Prepares PoolControl for the Stable repository by enabling i18n in the instance configuration (jsonConfig) and adding bilingual (DE/EN) labels and texts. No functional changes to the adapter logic.",
|
|
73
|
-
"de": "Wartungs-Release. Vorbereitung für das Stable-Repository durch Aktivierung von i18n in der Instanzkonfiguration (jsonConfig) und Ergänzung zweisprachiger (DE/EN) Labels und Texte. Keine funktionalen Änderungen an der Adapterlogik.",
|
|
74
|
-
"ru": "Технический релиз. Подготовка PoolControl к репозиторию Stable: включение i18n в конфигурации экземпляра (jsonConfig) и добавление двуязычных (DE/EN) подписей и текстов. Функциональных изменений в логике адаптера нет.",
|
|
75
|
-
"pt": "Versão de manutenção. Preparação do PoolControl para o repositório Stable ao ativar o i18n na configuração da instância (jsonConfig) e adicionar rótulos e textos bilingues (DE/EN). Sem alterações funcionais na lógica do adaptador.",
|
|
76
|
-
"nl": "Onderhoudsrelease. Bereidt PoolControl voor op de Stable-repository door i18n in de instance-configuratie (jsonConfig) te activeren en tweetalige (DE/EN) labels en teksten toe te voegen. Geen functionele wijzigingen in de adapterlogica.",
|
|
77
|
-
"fr": "Version de maintenance. Prépare PoolControl pour le dépôt Stable en activant i18n dans la configuration de l’instance (jsonConfig) et en ajoutant des libellés et textes bilingues (DE/EN). Aucun changement fonctionnel dans la logique de l’adaptateur.",
|
|
78
|
-
"it": "Release di manutenzione. Preparazione di PoolControl per il repository Stable abilitando i18n nella configurazione dell’istanza (jsonConfig) e aggiungendo etichette e testi bilingui (DE/EN). Nessuna modifica funzionale alla logica dell’adattatore.",
|
|
79
|
-
"es": "Versión de mantenimiento. Prepara PoolControl para el repositorio Stable habilitando i18n en la configuración de instancia (jsonConfig) y añadiendo etiquetas y textos bilingües (DE/EN). Sin cambios funcionales en la lógica del adaptador.",
|
|
80
|
-
"pl": "Wydanie konserwacyjne. Przygotowanie PoolControl do repozytorium Stable poprzez włączenie i18n w konfiguracji instancji (jsonConfig) oraz dodanie dwujęzycznych (DE/EN) etykiet i tekstów. Brak zmian funkcjonalnych w logice adaptera.",
|
|
81
|
-
"uk": "Реліз обслуговування. Підготовка PoolControl до репозиторію Stable: увімкнення i18n у конфігурації інстансу (jsonConfig) та додавання двомовних (DE/EN) підписів і текстів. Жодних функціональних змін у логіці адаптера.",
|
|
82
|
-
"zh-cn": "维护版本。为进入 Stable 仓库做准备:在实例配置(jsonConfig)中启用 i18n,并添加双语(德语/英语)标签与文本。适配器逻辑无功能性变更。"
|
|
83
|
-
},
|
|
84
|
-
"1.1.0": {
|
|
85
|
-
"en": "Feature release. Introduces a new passive pump speed recommendation layer (pump.speed). PoolControl now derives a clear logical pump performance state (off, frost, low, normal, high, boost) from existing pump logic and provides an optional, configurable percentage recommendation (0–100%). This enables seamless integration with external speed control solutions such as Shelly 0–10 V, frequency converters or Blockly scripts, without modifying or interfering with the existing pump control logic.",
|
|
86
|
-
"de": "Feature-Release. Einführung einer neuen passiven Pumpen-Leistungsempfehlung (pump.speed). PoolControl leitet nun einen klaren logischen Leistungszustand der Pumpe (off, frost, low, normal, high, boost) aus der bestehenden Pumpenlogik ab und stellt zusätzlich eine optionale, frei konfigurierbare Prozent-Empfehlung (0–100 %) bereit. Dadurch können externe Drehzahlsteuerungen wie Shelly 0–10 V, Frequenzumrichter oder Blockly-Skripte angebunden werden, ohne die bestehende Pumpensteuerung zu verändern oder zu beeinflussen.",
|
|
87
|
-
"ru": "Релиз с новым функционалом. Добавлен новый пассивный уровень рекомендации скорости насоса (pump.speed). PoolControl теперь определяет логическое состояние производительности насоса (off, frost, low, normal, high, boost) на основе существующей логики работы насоса и предоставляет дополнительную настраиваемую рекомендацию в процентах (0–100 %). Это позволяет интегрировать внешние системы управления скоростью, такие как Shelly 0–10 V, частотные преобразователи или скрипты Blockly, без изменения существующей логики управления насосом.",
|
|
88
|
-
"pt": "Versão com novas funcionalidades. Introduz uma nova camada passiva de recomendação de velocidade da bomba (pump.speed). O PoolControl passa a derivar um estado lógico claro de desempenho da bomba (off, frost, low, normal, high, boost) a partir da lógica existente e fornece uma recomendação percentual opcional e configurável (0–100%). Isto permite a integração com soluções externas de controlo de velocidade, como Shelly 0–10 V, conversores de frequência ou scripts Blockly, sem alterar a lógica de controlo da bomba existente.",
|
|
89
|
-
"nl": "Feature-release. Introduceert een nieuwe passieve aanbevelingslaag voor pompsnelheid (pump.speed). PoolControl leidt nu een duidelijke logische pompvermogensstatus af (off, frost, low, normal, high, boost) op basis van de bestaande pomplogica en biedt daarnaast een optionele, configureerbare procentuele aanbeveling (0–100%). Dit maakt integratie mogelijk met externe snelheidsregelingen zoals Shelly 0–10 V, frequentieregelaars of Blockly-scripts, zonder de bestaande pompregeling te wijzigen.",
|
|
90
|
-
"fr": "Version fonctionnelle. Introduction d’une nouvelle couche passive de recommandation de vitesse de la pompe (pump.speed). PoolControl déduit désormais un état logique clair de performance de la pompe (off, frost, low, normal, high, boost) à partir de la logique existante et fournit en plus une recommandation de pourcentage configurable (0–100 %). Cela permet l’intégration de solutions externes de contrôle de vitesse telles que Shelly 0–10 V, variateurs de fréquence ou scripts Blockly, sans modifier la logique de commande existante.",
|
|
91
|
-
"it": "Release funzionale. Introduce un nuovo livello passivo di raccomandazione della velocità della pompa (pump.speed). PoolControl ricava ora uno stato logico chiaro delle prestazioni della pompa (off, frost, low, normal, high, boost) dalla logica esistente e fornisce una raccomandazione percentuale opzionale e configurabile (0–100%). Ciò consente l’integrazione con soluzioni esterne di controllo della velocità come Shelly 0–10 V, inverter o script Blockly, senza modificare la logica di controllo della pompa esistente.",
|
|
92
|
-
"es": "Versión con nuevas funciones. Introduce una nueva capa pasiva de recomendación de velocidad de la bomba (pump.speed). PoolControl ahora deriva un estado lógico claro del rendimiento de la bomba (off, frost, low, normal, high, boost) a partir de la lógica existente y proporciona una recomendación porcentual opcional y configurable (0–100%). Esto permite integrar soluciones externas de control de velocidad como Shelly 0–10 V, variadores de frecuencia o scripts Blockly, sin modificar la lógica de control de la bomba existente.",
|
|
93
|
-
"pl": "Wydanie z nową funkcjonalnością. Wprowadza nową pasywną warstwę rekomendacji prędkości pompy (pump.speed). PoolControl wyznacza teraz jednoznaczny logiczny stan wydajności pompy (off, frost, low, normal, high, boost) na podstawie istniejącej logiki oraz udostępnia opcjonalną, konfigurowalną rekomendację procentową (0–100%). Umożliwia to integrację z zewnętrznymi systemami sterowania prędkością, takimi jak Shelly 0–10 V, falowniki czy skrypty Blockly, bez ingerencji w istniejącą logikę sterowania pompą.",
|
|
94
|
-
"uk": "Функціональний реліз. Додано новий пасивний рівень рекомендації швидкості насоса (pump.speed). PoolControl тепер визначає чіткий логічний стан продуктивності насоса (off, frost, low, normal, high, boost) на основі наявної логіки та надає додаткову налаштовувану процентну рекомендацію (0–100 %). Це дозволяє інтегрувати зовнішні рішення керування швидкістю, такі як Shelly 0–10 V, частотні перетворювачі або скрипти Blockly, без зміни існуючої логіки керування насосом.",
|
|
95
|
-
"zh-cn": "功能版本。引入了新的被动泵速推荐层(pump.speed)。PoolControl 现在可以基于现有的泵控制逻辑派生出清晰的逻辑性能状态(off、frost、low、normal、high、boost),并提供可选的、可配置的百分比推荐(0–100%)。这使其能够与 Shelly 0–10 V、变频器或 Blockly 脚本等外部转速控制方案无缝集成,而无需修改现有的泵控制逻辑。"
|
|
96
|
-
},
|
|
97
|
-
"1.0.1": {
|
|
98
|
-
"en": "Bugfix release. Fixes incomplete weather code descriptions in the AI weather forecast module by fully aligning with the official Open-Meteo weather code specification. This prevents raw numeric weather codes from appearing in notifications, speech output, or AI-generated texts and ensures consistent, human-readable weather descriptions across all outputs.",
|
|
99
|
-
"de": "Bugfix-Release. Behebt unvollständige Wettercode-Beschreibungen im KI-Wettervorhersagemodul durch vollständige Anpassung an die offizielle Open-Meteo-Wettercode-Spezifikation. Dadurch wird verhindert, dass rohe numerische Wettercodes in Benachrichtigungen, Sprachausgaben oder KI-generierten Texten erscheinen, und es werden durchgehend verständliche Klartext-Beschreibungen sichergestellt.",
|
|
100
|
-
"ru": "Исправляющий релиз. Устраняет неполные описания погодных кодов в модуле ИИ-прогноза погоды за счёт полного соответствия официальной спецификации погодных кодов Open-Meteo. Это предотвращает появление числовых кодов погоды в уведомлениях, голосовых сообщениях и ИИ-текстах, обеспечивая понятные текстовые описания.",
|
|
101
|
-
"pt": "Versão de correção de erros. Corrige descrições incompletas dos códigos meteorológicos no módulo de previsão meteorológica por IA, alinhando-o totalmente com a especificação oficial de códigos meteorológicos do Open-Meteo. Isto evita a exibição de códigos numéricos brutos em notificações, saídas de voz ou textos gerados por IA, garantindo descrições claras e legíveis.",
|
|
102
|
-
"nl": "Bugfix-release. Corrigeert onvolledige weerkodebeschrijvingen in de AI-weervoorspellingsmodule door volledige afstemming op de officiële Open-Meteo-weerkodespecificatie. Dit voorkomt dat ruwe numerieke weerkodes verschijnen in meldingen, spraakuitvoer of AI-gegenereerde teksten en zorgt voor consistente, leesbare beschrijvingen.",
|
|
103
|
-
"fr": "Version corrective. Corrige les descriptions incomplètes des codes météo dans le module de prévision météo basé sur l’IA en les alignant entièrement sur la spécification officielle des codes météo Open-Meteo. Cela empêche l’affichage de codes numériques bruts dans les notifications, les sorties vocales ou les textes générés par l’IA.",
|
|
104
|
-
"it": "Release di correzione. Risolve descrizioni incomplete dei codici meteo nel modulo di previsione meteorologica basato su IA, allineandolo completamente alla specifica ufficiale dei codici meteo Open-Meteo. Questo evita la visualizzazione di codici numerici grezzi in notifiche, output vocali o testi generati dall’IA.",
|
|
105
|
-
"es": "Versión de corrección de errores. Corrige descripciones incompletas de los códigos meteorológicos en el módulo de previsión meteorológica con IA mediante una alineación completa con la especificación oficial de códigos meteorológicos de Open-Meteo. Esto evita que aparezcan códigos numéricos sin procesar en notificaciones, salidas de voz o textos generados por IA.",
|
|
106
|
-
"pl": "Wydanie poprawkowe. Naprawia niekompletne opisy kodów pogodowych w module prognozy pogody opartym na AI poprzez pełne dostosowanie do oficjalnej specyfikacji kodów pogodowych Open-Meteo. Zapobiega to wyświetlaniu surowych kodów numerycznych w powiadomieniach, komunikatach głosowych oraz tekstach generowanych przez AI.",
|
|
107
|
-
"uk": "Випуск з виправленнями. Усунено неповні описи погодних кодів у модулі прогнозу погоди на основі ШІ шляхом повного узгодження з офіційною специфікацією погодних кодів Open-Meteo. Це запобігає появі сирих числових кодів у сповіщеннях, голосових повідомленнях та текстах, створених ШІ.",
|
|
108
|
-
"zh-cn": "错误修复版本。通过完全对齐 Open-Meteo 官方天气代码规范,修复了 AI 天气预报模块中不完整的天气代码描述问题,从而避免在通知、语音输出或 AI 生成的文本中显示原始数字天气代码,确保始终提供可读的文字说明。"
|
|
109
|
-
},
|
|
110
|
-
"1.0.0": {
|
|
111
|
-
"en": "First stable release of ioBroker.poolcontrol. Consolidates all core features developed over previous versions, including pump control, temperature management, solar and photovoltaic logic, heating / heat pump control, statistics, diagnostics, and AI-based information modules. The adapter architecture is now considered stable, modular, and production-ready, with consistent event-based helpers, persistent states, and strict ownership and priority handling across all control domains.",
|
|
112
|
-
"de": "Erste stabile Version von ioBroker.poolcontrol. Bündelt alle in den vorherigen Versionen entwickelten Kernfunktionen, einschließlich Pumpensteuerung, Temperaturverwaltung, Solar- und Photovoltaiklogik, Heizungs- / Wärmepumpensteuerung, Statistik, Diagnose sowie KI-basierter Informationsmodule. Die Adapterarchitektur gilt nun als stabil, modular und produktionsreif, mit durchgängig eventbasierter Logik, persistenten Datenpunkten sowie klarer Ownership- und Vorrangslogik in allen Steuerungsbereichen.",
|
|
113
|
-
"ru": "Первая стабильная версия ioBroker.poolcontrol. Объединяет все основные функции, разработанные в предыдущих версиях, включая управление насосом, контроль температуры, солнечную и фотоэлектрическую логику, управление отоплением / тепловым насосом, статистику, диагностику и ИИ-информационные модули. Архитектура адаптера считается стабильной, модульной и готовой к использованию в продуктивной среде, с полностью событийной логикой, постоянными состояниями и строгой системой приоритетов и владения.",
|
|
114
|
-
"pt": "Primeira versão estável do ioBroker.poolcontrol. Consolida todas as funcionalidades principais desenvolvidas nas versões anteriores, incluindo controlo da bomba, gestão de temperatura, lógica solar e fotovoltaica, controlo de aquecimento / bomba de calor, estatísticas, diagnóstico e módulos de informação baseados em IA. A arquitetura do adaptador é agora considerada estável, modular e pronta para produção, com lógica totalmente orientada a eventos, estados persistentes e uma gestão rigorosa de prioridades e propriedade.",
|
|
115
|
-
"nl": "Eerste stabiele release van ioBroker.poolcontrol. Bundelt alle kernfunctionaliteiten die in eerdere versies zijn ontwikkeld, waaronder pompbesturing, temperatuurbeheer, zonne- en fotovoltaïsche logica, verwarmings- / warmtepompregeling, statistieken, diagnose en AI-informatiesystemen. De adapterarchitectuur wordt nu als stabiel, modulair en productie-klaar beschouwd, met volledig event-gebaseerde logica, persistente states en een strikte prioriteits- en eigendomsafhandeling.",
|
|
116
|
-
"fr": "Première version stable de ioBroker.poolcontrol. Regroupe toutes les fonctionnalités principales développées dans les versions précédentes, notamment le contrôle de la pompe, la gestion des températures, la logique solaire et photovoltaïque, le contrôle du chauffage / pompe à chaleur, les statistiques, le diagnostic et les modules d’information basés sur l’IA. L’architecture de l’adaptateur est désormais considérée comme stable, modulaire et prête pour un usage en production, avec une logique entièrement événementielle, des états persistants et une gestion stricte des priorités et de la propriété.",
|
|
117
|
-
"it": "Prima versione stabile di ioBroker.poolcontrol. Riunisce tutte le funzionalità principali sviluppate nelle versioni precedenti, inclusi il controllo della pompa, la gestione delle temperature, la logica solare e fotovoltaica, il controllo del riscaldamento / pompa di calore, le statistiche, la diagnostica e i moduli informativi basati su IA. L’architettura dell’adattatore è ora considerata stabile, modulare e pronta per l’uso in produzione, con logica completamente event-based, stati persistenti e una gestione rigorosa delle priorità e della proprietà.",
|
|
118
|
-
"es": "Primera versión estable de ioBroker.poolcontrol. Consolida todas las funciones principales desarrolladas en versiones anteriores, incluyendo el control de la bomba, la gestión de temperaturas, la lógica solar y fotovoltaica, el control de calefacción / bomba de calor, estadísticas, diagnóstico y módulos de información basados en IA. La arquitectura del adaptador se considera ahora estable, modular y lista para producción, con lógica completamente basada en eventos, estados persistentes y una gestión estricta de prioridades y propiedad.",
|
|
119
|
-
"pl": "Pierwsza stabilna wersja ioBroker.poolcontrol. Konsoliduje wszystkie kluczowe funkcje rozwijane w poprzednich wersjach, w tym sterowanie pompą, zarządzanie temperaturą, logikę solarną i fotowoltaiczną, sterowanie ogrzewaniem / pompą ciepła, statystyki, diagnostykę oraz moduły informacyjne oparte na AI. Architektura adaptera jest obecnie uznawana za stabilną, modułową i gotową do użycia produkcyjnego, z w pełni zdarzeniową logiką, trwałymi stanami oraz ścisłym systemem priorytetów i własności.",
|
|
120
|
-
"uk": "Перша стабільна версія ioBroker.poolcontrol. Об’єднує всі основні функції, розроблені в попередніх версіях, включаючи керування насосом, керування температурою, сонячну та фотоелектричну логіку, керування опаленням / тепловим насосом, статистику, діагностику та інформаційні модулі на основі ШІ. Архітектура адаптера тепер вважається стабільною, модульною та готовою до використання в робочому середовищі, з повністю подієвою логікою, постійними станами та чіткою системою пріоритетів і володіння.",
|
|
121
|
-
"zh-cn": "ioBroker.poolcontrol 的首个稳定版本。整合了此前版本中开发的所有核心功能,包括水泵控制、温度管理、太阳能与光伏逻辑、加热 / 热泵控制、统计、诊断以及基于 AI 的信息模块。适配器架构现已被认为是稳定、模块化且可用于生产环境,具备完全事件驱动的逻辑、持久化数据点以及严格的优先级和所有权管理机制。"
|
|
122
|
-
},
|
|
123
|
-
"0.9.1": {
|
|
124
|
-
"en": "Extended heating / heat pump control (heatHelper) with configurable pump pre-run before heating start. The pump can now be started a defined time before the heater is activated to ensure sufficient water flow and pressure (e.g. for heat pumps). Includes new states for pre-run timing and status, fully integrated into the existing priority, ownership, and safety logic.",
|
|
125
|
-
"de": "Erweiterte Heizungs- / Wärmepumpensteuerung (heatHelper) um eine konfigurierbare Pumpen-Vorlaufzeit vor Heizstart. Die Pumpe kann nun für eine definierte Zeit vor dem Einschalten der Heizung gestartet werden, um ausreichend Wasserdurchfluss und Druck sicherzustellen (z. B. bei Wärmepumpen). Enthält neue Datenpunkte für Vorlaufzeit und Vorlaufstatus, vollständig integriert in die bestehende Vorrangs-, Ownership- und Sicherheitslogik.",
|
|
126
|
-
"ru": "Расширенная система управления отоплением / тепловым насосом (heatHelper) с настраиваемым предварительным запуском насоса перед началом нагрева. Насос может запускаться за заданное время до включения отопления для обеспечения достаточного потока и давления воды (например, для тепловых насосов). Добавлены новые состояния для времени предварительного запуска и его статуса, полностью интегрированные в существующую логику приоритетов, владения и безопасности.",
|
|
127
|
-
"pt": "Controlo de aquecimento / bomba de calor (heatHelper) alargado com pré-funcionamento configurável da bomba antes do início do aquecimento. A bomba pode agora ser ligada durante um período definido antes da ativação do aquecedor para garantir caudal e pressão de água suficientes (por exemplo, em bombas de calor). Inclui novos estados para tempo e estado do pré-funcionamento, totalmente integrados na lógica existente de prioridades, propriedade e segurança.",
|
|
128
|
-
"nl": "Uitgebreide verwarmings- / warmtepompregeling (heatHelper) met configureerbare pomp-voorloop vóór de start van de verwarming. De pomp kan nu een ingestelde tijd vóór het inschakelen van de verwarming worden gestart om voldoende waterdoorstroming en druk te garanderen (bijv. voor warmtepompen). Bevat nieuwe states voor voorlooptijd en -status, volledig geïntegreerd in de bestaande prioriteits-, eigendoms- en veiligheidslogica.",
|
|
129
|
-
"fr": "Extension du contrôle de chauffage / pompe à chaleur (heatHelper) avec un préfonctionnement configurable de la pompe avant le démarrage du chauffage. La pompe peut désormais être démarrée un temps défini avant l’activation du chauffage afin d’assurer un débit et une pression d’eau suffisants (par ex. pour les pompes à chaleur). Ajout de nouveaux états pour la durée et le statut du préfonctionnement, entièrement intégrés à la logique existante de priorité, de propriété et de sécurité.",
|
|
130
|
-
"it": "Controllo di riscaldamento / pompa di calore (heatHelper) esteso con pre-avviamento configurabile della pompa prima dell’inizio del riscaldamento. La pompa può ora essere avviata per un periodo definito prima dell’attivazione del riscaldamento per garantire un flusso e una pressione dell’acqua sufficienti (ad es. per le pompe di calore). Include nuovi stati per il tempo e lo stato del pre-avviamento, completamente integrati nella logica esistente di priorità, proprietà e sicurezza.",
|
|
131
|
-
"es": "Control de calefacción / bomba de calor (heatHelper) ampliado con prefuncionamiento configurable de la bomba antes del inicio de la calefacción. La bomba puede iniciarse ahora durante un tiempo definido antes de activar la calefacción para garantizar un caudal y una presión de agua suficientes (p. ej., para bombas de calor). Incluye nuevos estados para el tiempo y el estado del prefuncionamiento, totalmente integrados en la lógica existente de prioridades, propiedad y seguridad.",
|
|
132
|
-
"pl": "Rozszerzony system sterowania ogrzewaniem / pompą ciepła (heatHelper) o konfigurowalny wstępny bieg pompy przed rozpoczęciem grzania. Pompa może być uruchamiana na określony czas przed włączeniem ogrzewania w celu zapewnienia odpowiedniego przepływu i ciśnienia wody (np. dla pomp ciepła). Dodano nowe stany dla czasu i statusu biegu wstępnego, w pełni zintegrowane z istniejącą logiką priorytetów, własności i bezpieczeństwa.",
|
|
133
|
-
"uk": "Розширене керування опаленням / тепловим насосом (heatHelper) з налаштовуваним попереднім запуском насоса перед початком нагріву. Насос може запускатися за визначений час до увімкнення опалення для забезпечення достатнього потоку та тиску води (наприклад, для теплових насосів). Додано нові стани для часу та статусу попереднього запуску, повністю інтегровані в існуючу логіку пріоритетів, володіння та безпеки.",
|
|
134
|
-
"zh-cn": "扩展了加热 / 热泵控制功能(heatHelper),新增可配置的加热前水泵预运行时间。水泵可在加热设备启动前提前运行一段时间,以确保足够的水流和水压(例如用于热泵)。新增了预运行时间和状态的数据点,已完全集成到现有的优先级、所有权和安全逻辑中。"
|
|
135
|
-
},
|
|
136
|
-
"0.9.0": {
|
|
137
|
-
"en": "New heating / heat pump control (heatHelper). Automatic control based on pool temperature with configurable target and maximum temperature, pump after-run time, and full priority handling (e.g. maintenance mode). Works only in automatic pump mode and respects season status. Supports both switchable sockets and boolean control states. Includes ownership protection to avoid interfering with other pump controllers.",
|
|
138
|
-
"de": "Neue Heizungs- / Wärmepumpensteuerung (heatHelper). Automatische Regelung basierend auf der Pooltemperatur mit konfigurierbarer Ziel- und Maximaltemperatur, Pumpen-Nachlaufzeit sowie vollständiger Vorranglogik (z. B. Wartungsmodus). Arbeitet ausschließlich im Automatikmodus der Pumpe und berücksichtigt den Saisonstatus. Unterstützt schaltbare Steckdosen und boolesche Steuer-States. Enthält Ownership-Schutz, um Konflikte mit anderen Pumpensteuerungen zu vermeiden.",
|
|
139
|
-
"ru": "Новая система управления отоплением / тепловым насосом (heatHelper). Автоматическое управление на основе температуры воды с настраиваемой целевой и максимальной температурой, временем добега насоса и полной системой приоритетов (например, режим обслуживания). Работает только в автоматическом режиме насоса и учитывает сезонный статус. Поддерживает как переключаемые розетки, так и булевы управляющие состояния. Включает защиту владения для предотвращения конфликтов с другими контроллерами насоса.",
|
|
140
|
-
"pt": "Novo controlo de aquecimento / bomba de calor (heatHelper). Controlo automático baseado na temperatura da piscina com temperatura alvo e máxima configuráveis, tempo de pós-funcionamento da bomba e lógica completa de prioridades (por exemplo, modo de manutenção). Funciona apenas no modo automático da bomba e respeita o estado da época. Suporta tomadas comutáveis e estados de controlo booleanos. Inclui proteção de propriedade para evitar conflitos com outros controladores da bomba.",
|
|
141
|
-
"nl": "Nieuwe verwarmings- / warmtepompregeling (heatHelper). Automatische regeling op basis van de zwembadtemperatuur met instelbare doel- en maximumtemperatuur, pomp-nalooptijd en volledige prioriteitslogica (bijv. onderhoudsmodus). Werkt uitsluitend in de automatische pompmodus en houdt rekening met de seizoensstatus. Ondersteunt zowel schakelbare stopcontacten als booleaanse besturingsstates. Bevat eigendomsbescherming om conflicten met andere pompcontrollers te voorkomen.",
|
|
142
|
-
"fr": "Nouveau contrôle de chauffage / pompe à chaleur (heatHelper). Régulation automatique basée sur la température de la piscine avec températures cible et maximale configurables, temps de post-fonctionnement de la pompe et gestion complète des priorités (par ex. mode maintenance). Fonctionne uniquement en mode automatique de la pompe et respecte le statut de saison. Prend en charge les prises commutables et les états de commande booléens. Inclut une protection de propriété afin d’éviter les conflits avec d’autres contrôleurs de pompe.",
|
|
143
|
-
"it": "Nuovo controllo di riscaldamento / pompa di calore (heatHelper). Controllo automatico basato sulla temperatura della piscina con temperatura obiettivo e massima configurabili, tempo di post-funzionamento della pompa e gestione completa delle priorità (ad es. modalità manutenzione). Funziona solo in modalità automatica della pompa e tiene conto dello stato stagionale. Supporta prese commutabili e stati di controllo booleani. Include una protezione di proprietà per evitare conflitti con altri controllori della pompa.",
|
|
144
|
-
"es": "Nuevo control de calefacción / bomba de calor (heatHelper). Control automático basado en la temperatura de la piscina con temperatura objetivo y máxima configurables, tiempo de posfuncionamiento de la bomba y gestión completa de prioridades (p. ej., modo de mantenimiento). Funciona únicamente en modo automático de la bomba y respeta el estado de la temporada. Compatible con enchufes conmutables y estados de control booleanos. Incluye protección de propiedad para evitar conflictos con otros controladores de la bomba.",
|
|
145
|
-
"pl": "Nowy system sterowania ogrzewaniem / pompą ciepła (heatHelper). Automatyczne sterowanie na podstawie temperatury basenu z konfigurowalną temperaturą docelową i maksymalną, czasem dobiegu pompy oraz pełną obsługą priorytetów (np. tryb konserwacji). Działa wyłącznie w trybie automatycznym pompy i uwzględnia status sezonu. Obsługuje przełączalne gniazda oraz binarne stany sterujące. Zawiera ochronę własności, aby zapobiec konfliktom z innymi kontrolerami pompy.",
|
|
146
|
-
"uk": "Нова система керування опаленням / тепловим насосом (heatHelper). Автоматичне керування на основі температури басейну з налаштовуваною цільовою та максимальною температурою, часом післяроботи насоса та повною системою пріоритетів (наприклад, режим обслуговування). Працює лише в автоматичному режимі насоса та враховує сезонний статус. Підтримує комутовані розетки та булеві стани керування. Містить захист володіння для запобігання конфліктам з іншими контролерами насоса.",
|
|
147
|
-
"zh-cn": "新增加热 / 热泵控制功能(heatHelper)。基于泳池水温的自动控制,支持可配置的目标温度和最高温度、泵后运行时间以及完整的优先级处理(例如维护模式)。仅在泵的自动模式下工作,并考虑季节状态。支持可开关插座和布尔控制状态。包含所有权保护机制,避免与其他泵控制逻辑发生冲突。"
|
|
148
|
-
},
|
|
149
|
-
"0.8.2": {
|
|
150
|
-
"en": "New AI chemistry help module. Provides an interactive, purely informational help system for common pool water issues (e.g. pH too high/low, chlorine ineffective, green or cloudy water). Generates understandable explanations and solution directions without automatic dosing, product recommendations, device control or speech output.",
|
|
151
|
-
"de": "Neues KI-Chemie-Hilfesystem. Bietet eine interaktive, rein informative Unterstützung bei typischen Poolwasserproblemen (z. B. pH zu hoch/niedrig, Chlor wirkt nicht, grünes oder trübes Wasser). Erzeugt verständliche Ursachen- und Lösungshinweise ohne automatische Dosierung, Produktempfehlungen, Gerätesteuerung oder Sprachausgabe.",
|
|
152
|
-
"ru": "Новый модуль помощи по химии бассейна на основе ИИ. Интерактивная, исключительно информационная система поддержки для типичных проблем воды (например, высокий/низкий pH, неэффективный хлор, зелёная или мутная вода). Без автоматического дозирования, рекомендаций продуктов, управления устройствами или голосового вывода.",
|
|
153
|
-
"pt": "Novo módulo de ajuda química com IA. Sistema interativo e puramente informativo para problemas comuns da água da piscina (por exemplo, pH alto/baixo, cloro ineficaz, água verde ou turva). Sem dosagem automática, recomendações de produtos, controlo de dispositivos ou saída de voz.",
|
|
154
|
-
"nl": "Nieuw AI-chemiehulpmodule. Biedt een interactieve, puur informatieve hulp voor veelvoorkomende zwembadwaterproblemen (bijv. pH te hoog/laag, chloor werkt niet, groen of troebel water). Geen automatische dosering, productaanbevelingen, apparaatbesturing of spraakuitvoer.",
|
|
155
|
-
"fr": "Nouveau module d’aide chimique basé sur l’IA. Système interactif et purement informatif pour les problèmes courants de l’eau de piscine (pH trop élevé/bas, chlore inefficace, eau verte ou trouble). Sans dosage automatique, recommandations de produits, contrôle d’appareils ni sortie vocale.",
|
|
156
|
-
"it": "Nuovo modulo di aiuto chimico basato su IA. Sistema interattivo e puramente informativo per i problemi comuni dell’acqua della piscina (ad es. pH troppo alto/basso, cloro inefficace, acqua verde o torbida). Nessun dosaggio automatico, consigli sui prodotti, controllo dei dispositivi o output vocale.",
|
|
157
|
-
"es": "Nuevo módulo de ayuda química con IA. Sistema interactivo y puramente informativo para problemas comunes del agua de la piscina (p. ej., pH alto/bajo, cloro ineficaz, agua verde o turbia). Sin dosificación automática, recomendaciones de productos, control de dispositivos ni salida por voz.",
|
|
158
|
-
"pl": "Nowy moduł pomocy chemicznej oparty na AI. Interaktywny, wyłącznie informacyjny system wsparcia dla typowych problemów wody basenowej (np. zbyt wysokie/niskie pH, nieskuteczny chlor, zielona lub mętna woda). Bez automatycznego dozowania, rekomendacji produktów, sterowania urządzeniami ani komunikatów głosowych.",
|
|
159
|
-
"uk": "Новий модуль допомоги з хімії басейну на основі ШІ. Інтерактивна, виключно інформаційна система підтримки для типових проблем води (наприклад, високий/низький pH, неефективний хлор, зелена або каламутна вода). Без автоматичного дозування, рекомендацій продуктів, керування пристроями чи голосового виводу.",
|
|
160
|
-
"zh-cn": "新增 AI 水质化学帮助模块。为常见的泳池水问题(如 pH 过高/过低、氯无效、绿水或浑浊水)提供交互式、纯信息性的帮助说明。不包含自动投加、产品推荐、设备控制或语音输出。"
|
|
161
83
|
}
|
|
162
84
|
},
|
|
163
85
|
"titleLang": {
|
|
@@ -312,7 +312,7 @@ const aiForecastHelper = {
|
|
|
312
312
|
}
|
|
313
313
|
|
|
314
314
|
if (this._debugMode) {
|
|
315
|
-
this.adapter.log.debug(`[aiForecastHelper]
|
|
315
|
+
this.adapter.log.debug(`[aiForecastHelper] Geolocation data: lat=${lat}, lon=${lon}`);
|
|
316
316
|
}
|
|
317
317
|
|
|
318
318
|
return { lat, lon };
|
|
@@ -282,7 +282,7 @@ const heatHelper = {
|
|
|
282
282
|
heatingRequest: true,
|
|
283
283
|
});
|
|
284
284
|
|
|
285
|
-
this.adapter.log.info(`[heatHelper]
|
|
285
|
+
this.adapter.log.info(`[heatHelper] Heating ON (${reason})`);
|
|
286
286
|
},
|
|
287
287
|
|
|
288
288
|
async _stopHeating({ reason, controlType, controlObjectId, afterrunMin }) {
|
|
@@ -119,7 +119,7 @@ async function createActuatorsStates(adapter) {
|
|
|
119
119
|
common: {
|
|
120
120
|
name: { de: 'Laufzeit (Minuten)', en: 'Runtime (minutes)' },
|
|
121
121
|
type: 'number',
|
|
122
|
-
role: '
|
|
122
|
+
role: 'level',
|
|
123
123
|
read: true,
|
|
124
124
|
write: true,
|
|
125
125
|
def: 0,
|
|
@@ -244,7 +244,7 @@ async function createActuatorsStates(adapter) {
|
|
|
244
244
|
common: {
|
|
245
245
|
name: { de: 'Laufzeit (Minuten)', en: 'Runtime (minutes)' },
|
|
246
246
|
type: 'number',
|
|
247
|
-
role: '
|
|
247
|
+
role: 'level',
|
|
248
248
|
read: true,
|
|
249
249
|
write: true,
|
|
250
250
|
def: 0,
|
|
@@ -303,7 +303,7 @@ async function createControlStates(adapter) {
|
|
|
303
303
|
en: 'Defines if and how daily circulation is checked and if additional pumping is required',
|
|
304
304
|
},
|
|
305
305
|
type: 'string',
|
|
306
|
-
role: '
|
|
306
|
+
role: 'level',
|
|
307
307
|
read: true,
|
|
308
308
|
write: true,
|
|
309
309
|
def: 'notify',
|
|
@@ -345,7 +345,7 @@ async function createControlStates(adapter) {
|
|
|
345
345
|
en: 'Time when daily circulation is checked and reported if necessary (format HH:MM)',
|
|
346
346
|
},
|
|
347
347
|
type: 'string',
|
|
348
|
-
role: '
|
|
348
|
+
role: 'level',
|
|
349
349
|
read: true,
|
|
350
350
|
write: true,
|
|
351
351
|
def: '18:00',
|
|
@@ -92,7 +92,7 @@ async function createHeatStates(adapter) {
|
|
|
92
92
|
common: {
|
|
93
93
|
name: { de: 'Zieltemperatur Pool', en: 'Pool target temperature' },
|
|
94
94
|
type: 'number',
|
|
95
|
-
role: '
|
|
95
|
+
role: 'level',
|
|
96
96
|
unit: { de: '°C', en: '°C' },
|
|
97
97
|
read: true,
|
|
98
98
|
write: true,
|
|
@@ -113,7 +113,7 @@ async function createHeatStates(adapter) {
|
|
|
113
113
|
common: {
|
|
114
114
|
name: { de: 'Maximale Pooltemperatur (Sicherheit)', en: 'Maximum pool temperature (safety)' },
|
|
115
115
|
type: 'number',
|
|
116
|
-
role: '
|
|
116
|
+
role: 'level',
|
|
117
117
|
unit: { de: '°C', en: '°C' },
|
|
118
118
|
read: true,
|
|
119
119
|
write: true,
|
|
@@ -135,7 +135,7 @@ async function createHeatStates(adapter) {
|
|
|
135
135
|
common: {
|
|
136
136
|
name: { de: 'Pumpen-Vorlaufzeit vor Heizung', en: 'Pump pre-run time before heating' },
|
|
137
137
|
type: 'number',
|
|
138
|
-
role: '
|
|
138
|
+
role: 'level',
|
|
139
139
|
unit: { de: 'min', en: 'min' },
|
|
140
140
|
read: true,
|
|
141
141
|
write: true,
|
|
@@ -156,7 +156,7 @@ async function createHeatStates(adapter) {
|
|
|
156
156
|
common: {
|
|
157
157
|
name: { de: 'Pumpen-Nachlaufzeit nach Heizung', en: 'Pump after-run time after heating' },
|
|
158
158
|
type: 'number',
|
|
159
|
-
role: '
|
|
159
|
+
role: 'level',
|
|
160
160
|
unit: { de: 'min', en: 'min' },
|
|
161
161
|
read: true,
|
|
162
162
|
write: true,
|
|
@@ -184,7 +184,7 @@ async function createPumpSpeedStates(adapter) {
|
|
|
184
184
|
common: {
|
|
185
185
|
name: { de: 'Frostschutz (%)', en: 'Frost protection (%)' },
|
|
186
186
|
type: 'number',
|
|
187
|
-
role: '
|
|
187
|
+
role: 'level',
|
|
188
188
|
unit: '%',
|
|
189
189
|
read: true,
|
|
190
190
|
write: true,
|
|
@@ -201,7 +201,7 @@ async function createPumpSpeedStates(adapter) {
|
|
|
201
201
|
common: {
|
|
202
202
|
name: { de: 'Niedrige Leistung (%)', en: 'Low power (%)' },
|
|
203
203
|
type: 'number',
|
|
204
|
-
role: '
|
|
204
|
+
role: 'level',
|
|
205
205
|
unit: '%',
|
|
206
206
|
read: true,
|
|
207
207
|
write: true,
|
|
@@ -218,7 +218,7 @@ async function createPumpSpeedStates(adapter) {
|
|
|
218
218
|
common: {
|
|
219
219
|
name: { de: 'Normalbetrieb (%)', en: 'Normal operation (%)' },
|
|
220
220
|
type: 'number',
|
|
221
|
-
role: '
|
|
221
|
+
role: 'level',
|
|
222
222
|
unit: '%',
|
|
223
223
|
read: true,
|
|
224
224
|
write: true,
|
|
@@ -235,7 +235,7 @@ async function createPumpSpeedStates(adapter) {
|
|
|
235
235
|
common: {
|
|
236
236
|
name: { de: 'Hohe Leistung (%)', en: 'High power (%)' },
|
|
237
237
|
type: 'number',
|
|
238
|
-
role: '
|
|
238
|
+
role: 'level',
|
|
239
239
|
unit: '%',
|
|
240
240
|
read: true,
|
|
241
241
|
write: true,
|
|
@@ -252,7 +252,7 @@ async function createPumpSpeedStates(adapter) {
|
|
|
252
252
|
common: {
|
|
253
253
|
name: { de: 'Boost / Wartung (%)', en: 'Boost / maintenance (%)' },
|
|
254
254
|
type: 'number',
|
|
255
|
-
role: '
|
|
255
|
+
role: 'level',
|
|
256
256
|
unit: '%',
|
|
257
257
|
read: true,
|
|
258
258
|
write: true,
|
|
@@ -223,7 +223,7 @@ async function createPumpStates4(adapter) {
|
|
|
223
223
|
unit: 'bar',
|
|
224
224
|
role: 'value',
|
|
225
225
|
read: true,
|
|
226
|
-
write:
|
|
226
|
+
write: false,
|
|
227
227
|
persist: true,
|
|
228
228
|
},
|
|
229
229
|
native: {},
|
|
@@ -242,7 +242,7 @@ async function createPumpStates4(adapter) {
|
|
|
242
242
|
unit: 'bar',
|
|
243
243
|
role: 'value',
|
|
244
244
|
read: true,
|
|
245
|
-
write:
|
|
245
|
+
write: false,
|
|
246
246
|
persist: true,
|
|
247
247
|
},
|
|
248
248
|
native: {},
|
|
@@ -261,7 +261,7 @@ async function createPumpStates4(adapter) {
|
|
|
261
261
|
unit: 'bar',
|
|
262
262
|
role: 'value',
|
|
263
263
|
read: true,
|
|
264
|
-
write:
|
|
264
|
+
write: false,
|
|
265
265
|
persist: true,
|
|
266
266
|
},
|
|
267
267
|
native: {},
|
|
@@ -276,7 +276,7 @@ async function createPumpStates4(adapter) {
|
|
|
276
276
|
type: 'number',
|
|
277
277
|
role: 'indicator',
|
|
278
278
|
read: true,
|
|
279
|
-
write:
|
|
279
|
+
write: false,
|
|
280
280
|
persist: false,
|
|
281
281
|
},
|
|
282
282
|
native: {},
|
|
@@ -291,7 +291,7 @@ async function createPumpStates4(adapter) {
|
|
|
291
291
|
type: 'number',
|
|
292
292
|
role: 'indicator',
|
|
293
293
|
read: true,
|
|
294
|
-
write:
|
|
294
|
+
write: false,
|
|
295
295
|
persist: false,
|
|
296
296
|
},
|
|
297
297
|
native: {},
|
|
@@ -309,7 +309,7 @@ async function createPumpStates4(adapter) {
|
|
|
309
309
|
type: 'number',
|
|
310
310
|
role: 'indicator',
|
|
311
311
|
read: true,
|
|
312
|
-
write:
|
|
312
|
+
write: false,
|
|
313
313
|
persist: false,
|
|
314
314
|
},
|
|
315
315
|
native: {},
|
|
@@ -71,7 +71,7 @@ async function createSolarStates(adapter) {
|
|
|
71
71
|
common: {
|
|
72
72
|
name: { de: 'Kollektortemperatur Einschaltgrenze (°C)', en: 'Collector temperature ON threshold (°C)' },
|
|
73
73
|
type: 'number',
|
|
74
|
-
role: '
|
|
74
|
+
role: 'level',
|
|
75
75
|
unit: '°C',
|
|
76
76
|
read: true,
|
|
77
77
|
write: true,
|
|
@@ -93,7 +93,7 @@ async function createSolarStates(adapter) {
|
|
|
93
93
|
common: {
|
|
94
94
|
name: { de: 'Kollektortemperatur Ausschaltgrenze (°C)', en: 'Collector temperature OFF threshold (°C)' },
|
|
95
95
|
type: 'number',
|
|
96
|
-
role: '
|
|
96
|
+
role: 'level',
|
|
97
97
|
unit: '°C',
|
|
98
98
|
read: true,
|
|
99
99
|
write: true,
|
|
@@ -153,7 +153,7 @@ async function createSolarStates(adapter) {
|
|
|
153
153
|
common: {
|
|
154
154
|
name: { de: 'Warnschwelle Kollektortemperatur (°C)', en: 'Collector temperature warning threshold (°C)' },
|
|
155
155
|
type: 'number',
|
|
156
|
-
role: '
|
|
156
|
+
role: 'level',
|
|
157
157
|
unit: '°C',
|
|
158
158
|
read: true,
|
|
159
159
|
write: true,
|
|
@@ -129,14 +129,14 @@ async function createSpeechStates(adapter) {
|
|
|
129
129
|
id: 'quiet_time_week_start',
|
|
130
130
|
name: { de: 'Ruhezeit (Mo–Fr) Startzeit (HH:MM)', en: 'Quiet time (Mon–Fri) start time (HH:MM)' },
|
|
131
131
|
type: 'string',
|
|
132
|
-
role: '
|
|
132
|
+
role: 'level',
|
|
133
133
|
def: '22:00',
|
|
134
134
|
},
|
|
135
135
|
{
|
|
136
136
|
id: 'quiet_time_week_end',
|
|
137
137
|
name: { de: 'Ruhezeit (Mo–Fr) Endzeit (HH:MM)', en: 'Quiet time (Mon–Fri) end time (HH:MM)' },
|
|
138
138
|
type: 'string',
|
|
139
|
-
role: '
|
|
139
|
+
role: 'level',
|
|
140
140
|
def: '07:00',
|
|
141
141
|
},
|
|
142
142
|
{
|
|
@@ -150,14 +150,14 @@ async function createSpeechStates(adapter) {
|
|
|
150
150
|
id: 'quiet_time_weekend_start',
|
|
151
151
|
name: { de: 'Ruhezeit (Sa–So) Startzeit (HH:MM)', en: 'Quiet time (Sat–Sun) start time (HH:MM)' },
|
|
152
152
|
type: 'string',
|
|
153
|
-
role: '
|
|
153
|
+
role: 'level',
|
|
154
154
|
def: '22:00',
|
|
155
155
|
},
|
|
156
156
|
{
|
|
157
157
|
id: 'quiet_time_weekend_end',
|
|
158
158
|
name: { de: 'Ruhezeit (Sa–So) Endzeit (HH:MM)', en: 'Quiet time (Sat–Sun) end time (HH:MM)' },
|
|
159
159
|
type: 'string',
|
|
160
|
-
role: '
|
|
160
|
+
role: 'level',
|
|
161
161
|
def: '08:00',
|
|
162
162
|
},
|
|
163
163
|
{
|
|
@@ -42,7 +42,7 @@ async function createTimeStates(adapter) {
|
|
|
42
42
|
common: {
|
|
43
43
|
name: { de: `Zeitfenster ${label} Start (HH:MM)`, en: `Time window ${label} start (HH:MM)` },
|
|
44
44
|
type: 'string',
|
|
45
|
-
role: '
|
|
45
|
+
role: 'level',
|
|
46
46
|
read: true,
|
|
47
47
|
write: true,
|
|
48
48
|
},
|
|
@@ -59,7 +59,7 @@ async function createTimeStates(adapter) {
|
|
|
59
59
|
common: {
|
|
60
60
|
name: { de: `Zeitfenster ${label} Ende (HH:MM)`, en: `Time window ${label} end (HH:MM)` },
|
|
61
61
|
type: 'string',
|
|
62
|
-
role: '
|
|
62
|
+
role: 'level',
|
|
63
63
|
read: true,
|
|
64
64
|
write: true,
|
|
65
65
|
},
|
package/main.js
CHANGED
|
@@ -89,7 +89,7 @@ class Poolcontrol extends utils.Adapter {
|
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
async onReady() {
|
|
92
|
-
this.log.info('Adapter
|
|
92
|
+
this.log.info('Adapter started');
|
|
93
93
|
|
|
94
94
|
// --- Allgemeine Einstellungen ---
|
|
95
95
|
await createGeneralStates(this);
|
|
@@ -258,7 +258,7 @@ class Poolcontrol extends utils.Adapter {
|
|
|
258
258
|
infoHelper.cleanup();
|
|
259
259
|
}
|
|
260
260
|
} catch (e) {
|
|
261
|
-
this.log.warn(`[onUnload]
|
|
261
|
+
this.log.warn(`[onUnload] Error during cleanup: ${e.message}`);
|
|
262
262
|
} finally {
|
|
263
263
|
callback();
|
|
264
264
|
}
|
|
@@ -290,7 +290,7 @@ class Poolcontrol extends utils.Adapter {
|
|
|
290
290
|
|
|
291
291
|
// Saisonstatus manuell ändern (z.B. über VIS)
|
|
292
292
|
if (id.endsWith('status.season_active') && state && state.ack === false) {
|
|
293
|
-
this.log.info(`[main]
|
|
293
|
+
this.log.info(`[main] Season status changed: ${state.val}`);
|
|
294
294
|
await this.setStateAsync('status.season_active', { val: state.val, ack: true });
|
|
295
295
|
return; // danach keine Helper mehr aufrufen
|
|
296
296
|
}
|
|
@@ -298,91 +298,91 @@ class Poolcontrol extends utils.Adapter {
|
|
|
298
298
|
try {
|
|
299
299
|
temperatureHelper.handleStateChange(id, state);
|
|
300
300
|
} catch (e) {
|
|
301
|
-
this.log.warn(`[temperatureHelper]
|
|
301
|
+
this.log.warn(`[temperatureHelper] Error in handleStateChange: ${e.message}`);
|
|
302
302
|
}
|
|
303
303
|
try {
|
|
304
304
|
runtimeHelper.handleStateChange(id, state);
|
|
305
305
|
} catch (e) {
|
|
306
|
-
this.log.warn(`[runtimeHelper]
|
|
306
|
+
this.log.warn(`[runtimeHelper] Error in handleStateChange: ${e.message}`);
|
|
307
307
|
}
|
|
308
308
|
try {
|
|
309
309
|
pumpHelper.handleStateChange(id, state);
|
|
310
310
|
} catch (e) {
|
|
311
|
-
this.log.warn(`[pumpHelper]
|
|
311
|
+
this.log.warn(`[pumpHelper] Error in handleStateChange: ${e.message}`);
|
|
312
312
|
}
|
|
313
313
|
try {
|
|
314
314
|
pumpHelper2.handleStateChange(id, state);
|
|
315
315
|
} catch (e) {
|
|
316
|
-
this.log.warn(`[pumpHelper2]
|
|
316
|
+
this.log.warn(`[pumpHelper2] Error in handleStateChange: ${e.message}`);
|
|
317
317
|
}
|
|
318
318
|
try {
|
|
319
319
|
pumpHelper3.handleStateChange(id, state);
|
|
320
320
|
} catch (e) {
|
|
321
|
-
this.log.warn(`[pumpHelper3]
|
|
321
|
+
this.log.warn(`[pumpHelper3] Error in handleStateChange: ${e.message}`);
|
|
322
322
|
}
|
|
323
323
|
|
|
324
324
|
try {
|
|
325
325
|
pumpHelper4.handleStateChange(id, state);
|
|
326
326
|
} catch (e) {
|
|
327
|
-
this.log.warn(`[pumpHelper4]
|
|
327
|
+
this.log.warn(`[pumpHelper4] Error in handleStateChange: ${e.message}`);
|
|
328
328
|
}
|
|
329
329
|
|
|
330
330
|
try {
|
|
331
331
|
pumpSpeedHelper.handleStateChange(id, state); // NEU
|
|
332
332
|
} catch (e) {
|
|
333
|
-
this.log.warn(`[pumpSpeedHelper]
|
|
333
|
+
this.log.warn(`[pumpSpeedHelper] Error in handleStateChange: ${e.message}`);
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
try {
|
|
337
337
|
speechHelper.handleStateChange(id, state);
|
|
338
338
|
} catch (e) {
|
|
339
|
-
this.log.warn(`[speechHelper]
|
|
339
|
+
this.log.warn(`[speechHelper] Error in handleStateChange: ${e.message}`);
|
|
340
340
|
}
|
|
341
341
|
try {
|
|
342
342
|
consumptionHelper.handleStateChange(id, state);
|
|
343
343
|
} catch (e) {
|
|
344
|
-
this.log.warn(`[consumptionHelper]
|
|
344
|
+
this.log.warn(`[consumptionHelper] Error in handleStateChange: ${e.message}`);
|
|
345
345
|
}
|
|
346
346
|
try {
|
|
347
347
|
photovoltaicHelper.handleStateChange(id, state);
|
|
348
348
|
} catch (e) {
|
|
349
|
-
this.log.warn(`[photovoltaicHelper]
|
|
349
|
+
this.log.warn(`[photovoltaicHelper] Error in handleStateChange: ${e.message}`);
|
|
350
350
|
}
|
|
351
351
|
try {
|
|
352
352
|
heatHelper.handleStateChange(id, state);
|
|
353
353
|
} catch (e) {
|
|
354
|
-
this.log.warn(`[heatHelper]
|
|
354
|
+
this.log.warn(`[heatHelper] Error in handleStateChange: ${e.message}`);
|
|
355
355
|
}
|
|
356
356
|
try {
|
|
357
357
|
actuatorsHelper.handleStateChange(id, state); // NEU
|
|
358
358
|
} catch (e) {
|
|
359
|
-
this.log.warn(`[actuatorsHelper]
|
|
359
|
+
this.log.warn(`[actuatorsHelper] Error in handleStateChange: ${e.message}`);
|
|
360
360
|
}
|
|
361
361
|
// --- AI-Helper ---
|
|
362
362
|
try {
|
|
363
363
|
aiHelper.handleStateChange(id, state);
|
|
364
364
|
} catch (e) {
|
|
365
|
-
this.log.warn(`[main]
|
|
365
|
+
this.log.warn(`[main] Error in aiHelper.handleStateChange: ${e.message}`);
|
|
366
366
|
}
|
|
367
367
|
try {
|
|
368
368
|
aiForecastHelper.handleStateChange(id, state);
|
|
369
369
|
} catch (e) {
|
|
370
|
-
this.log.warn(`[main]
|
|
370
|
+
this.log.warn(`[main] Error in aiForecastHelper.handleStateChange: ${e.message}`);
|
|
371
371
|
}
|
|
372
372
|
try {
|
|
373
373
|
aiChemistryHelpHelper.handleStateChange(id, state);
|
|
374
374
|
} catch (e) {
|
|
375
|
-
this.log.warn(`[main]
|
|
375
|
+
this.log.warn(`[main] Error in aiChemistryHelpHelper.handleStateChange: ${e.message}`);
|
|
376
376
|
}
|
|
377
377
|
try {
|
|
378
378
|
statusHelper.handleStateChange(id, state);
|
|
379
379
|
} catch (e) {
|
|
380
|
-
this.log.warn(`[statusHelper]
|
|
380
|
+
this.log.warn(`[statusHelper] Error in handleStateChange: ${e.message}`);
|
|
381
381
|
}
|
|
382
382
|
try {
|
|
383
383
|
speechTextHelper.handleStateChange(id, state);
|
|
384
384
|
} catch (e) {
|
|
385
|
-
this.log.warn(`[speechTextHelper]
|
|
385
|
+
this.log.warn(`[speechTextHelper] Error in handleStateChange: ${e.message}`);
|
|
386
386
|
}
|
|
387
387
|
if (id.includes('control.')) {
|
|
388
388
|
controlHelper.handleStateChange(id, state);
|
|
@@ -393,12 +393,12 @@ class Poolcontrol extends utils.Adapter {
|
|
|
393
393
|
|
|
394
394
|
// --- Photovoltaik-Parameter ---
|
|
395
395
|
if (id.endsWith('photovoltaic.afterrun_min')) {
|
|
396
|
-
this.log.debug(`[onStateChange]
|
|
396
|
+
this.log.debug(`[onStateChange] PV after-run time changed to ${state.val} Minuten`);
|
|
397
397
|
this.config.pv_afterrun_min = Number(state.val);
|
|
398
398
|
}
|
|
399
399
|
|
|
400
400
|
if (id.endsWith('photovoltaic.ignore_on_circulation')) {
|
|
401
|
-
this.log.debug(`[onStateChange] PV
|
|
401
|
+
this.log.debug(`[onStateChange] Ignore PV logic on circulation = ${state.val}`);
|
|
402
402
|
this.config.pv_ignore_on_circulation = !!state.val;
|
|
403
403
|
}
|
|
404
404
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.poolcontrol",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.7",
|
|
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",
|
|
@@ -24,9 +24,9 @@
|
|
|
24
24
|
"@iobroker/adapter-core": "^3.3.2"
|
|
25
25
|
},
|
|
26
26
|
"devDependencies": {
|
|
27
|
-
"@alcalzone/release-script": "^5.
|
|
28
|
-
"@alcalzone/release-script-plugin-iobroker": "^
|
|
29
|
-
"@alcalzone/release-script-plugin-license": "^
|
|
27
|
+
"@alcalzone/release-script": "^5.1.1",
|
|
28
|
+
"@alcalzone/release-script-plugin-iobroker": "^5.1.2",
|
|
29
|
+
"@alcalzone/release-script-plugin-license": "^5.1.1",
|
|
30
30
|
"@iobroker/adapter-dev": "^1.5.0",
|
|
31
31
|
"@iobroker/eslint-config": "^2.2.0",
|
|
32
32
|
"@iobroker/testing": "^5.2.2",
|