iobroker.poolcontrol 1.3.0 → 1.3.2

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 CHANGED
@@ -186,6 +186,24 @@ New features are added regularly – please refer to the changelog.
186
186
  - [help.md (detailed description and notes)](./help.md)
187
187
 
188
188
  ---
189
+
190
+ ## Changelog
191
+ ### 1.3.2 (2026-04-17)
192
+
193
+ - Fix: Solar Extended no longer interferes with controlHelper or timeHelper (prevents unwanted pump shutdown)
194
+ - Fix: Solar Extended no longer interferes with standard solar mode
195
+ - Fix: Improved handling of external actuator (clean ON/OFF behavior depending on Solar Extended state)
196
+ - Improvement: Added stable delta hysteresis (delta_on / delta_off) to prevent switching fluctuations
197
+ - Improvement: Replaced global timers with adapter timers in solarExtendedHelper
198
+ - Cleanup: Removed duplicate reading of request_active state
199
+
200
+ ### 1.3.1 (2026-04-17)
201
+
202
+ - Fix: Solar Extended now correctly controls the pump
203
+ - Fix: Integrated Solar Extended into existing solar status handling via `speech.solar_active`
204
+ - Improvement: Consistent pump status display for Solar and Solar Extended
205
+ - Minor bug fixes and internal optimizations
206
+
189
207
  ### 1.3.0 (2026-04-16)
190
208
 
191
209
  - Added extended solar control (delta-based temperature logic)
@@ -207,18 +225,6 @@ New features are added regularly – please refer to the changelog.
207
225
  - Afterrun now starts only once and runs reliably to completion
208
226
  - Proper cleanup when surplus becomes active again during afterrun
209
227
 
210
- ### 1.2.20
211
- Release: 11.04.2026
212
- - (DasBo) Reduced unnecessary state writes in status and photovoltaic helpers. Summary and PV timestamps are now only updated when the functional result actually changes, making the adapter quieter without affecting existing logic.
213
-
214
- ### 1.2.19
215
- Release: 10.04.2026
216
- - Fixed an interaction issue between `photovoltaicHelper` and `controlHelper` where automatic follow-up pumping could be stopped unexpectedly
217
- - photovoltaicHelper now respects controlHelper priority and no longer stops the pump while automatic follow-up pumping is active
218
- - Fixed an issue where `controlHelper` could remain in "nachpumpen" state if the pump was stopped externally
219
- - `photovoltaic.threshold_w` is now correctly synchronized with the instance configuration
220
- - Changes to the PV surplus threshold in adapter settings are now reliably reflected in the corresponding read-only datapoint
221
-
222
228
  ## Support
223
229
  - [ioBroker Forum](https://forum.iobroker.net/)
224
230
  - [GitHub Issues](https://github.com/DasBo1975/ioBroker.poolcontrol/issues)
package/io-package.json CHANGED
@@ -1,8 +1,34 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "poolcontrol",
4
- "version": "1.3.0",
4
+ "version": "1.3.2",
5
5
  "news": {
6
+ "1.3.2": {
7
+ "en": "Fixed Solar Extended conflicts with controlHelper/timeHelper and standard solar mode, improved external actuator handling, added stable delta hysteresis, and aligned timer handling with adapter timers.",
8
+ "de": "Solar-Extended-Konflikte mit controlHelper/timeHelper und dem Standard-Solarmodus behoben, externe Aktorsteuerung verbessert, stabile Delta-Hysterese ergänzt und Timer auf Adapter-Timer umgestellt.",
9
+ "ru": "Исправлены конфликты Solar Extended с controlHelper/timeHelper и стандартным солнечным режимом, улучшено управление внешним приводом, добавлен стабильный дельта-гистерезис и согласована обработка таймера с таймерами адаптера.",
10
+ "pt": "Corrigidos conflitos Solar Extended com controlHelper/timeHelper e modo solar padrão, manuseio aprimorado do atuador externo, histerese delta estável adicionada e manuseio de temporizador alinhado com temporizadores adaptadores.",
11
+ "nl": "Vaste Solar Extended-conflicten met controlHelper/timeHelper en standaard zonnemodus, verbeterde afhandeling van externe actuatoren, toegevoegde stabiele delta-hysteresis en afgestemde timerafhandeling met adaptertimers.",
12
+ "fr": "Correction des conflits solaires étendus avec controlHelper/timeHelper et le mode solaire standard, gestion améliorée des actionneurs externes, ajout d'une hystérésis delta stable et gestion des minuteries alignées avec les minuteries de l'adaptateur.",
13
+ "it": "Risolti i conflitti Solar Extended con controlHelper/timeHelper e la modalità solare standard, migliore gestione dell'attuatore esterno, aggiunta isteresi delta stabile e gestione del timer allineata con i timer dell'adattatore.",
14
+ "es": "Se corrigieron los conflictos de Solar Extended con controlHelper/timeHelper y el modo solar estándar, manejo mejorado del actuador externo, histéresis delta estable agregada y manejo del temporizador alineado con temporizadores adaptadores.",
15
+ "pl": "Naprawiono konflikty Solar Extended z ControlHelper/timeHelper i standardowym trybem solarnym, ulepszono obsługę zewnętrznego siłownika, dodano stabilną histerezę delta i dostosowano obsługę timera z timerami adaptera.",
16
+ "uk": "Виправлено конфлікти Solar Extended з controlHelper/timeHelper і стандартним сонячним режимом, покращено обробку зовнішнього приводу, додано стабільний дельта-гістерезис і узгоджено обробку таймера з таймерами адаптера.",
17
+ "zh-cn": "修复了 Solar Extended 与 controlHelper/timeHelper 和标准太阳能模式的冲突,改进了外部执行器处理,添加了稳定的增量迟滞,以及与适配器计时器对齐的计时器处理。"
18
+ },
19
+ "1.3.1": {
20
+ "en": "Fix: Solar Extended now correctly controls the pump and integrates with existing solar status handling. The helper now uses speech.solar_active like the standard solar logic, ensuring consistent pump status display and behavior. Minor fixes and optimizations.",
21
+ "de": "Fix: Solar Extended steuert jetzt korrekt die Pumpe und ist sauber in die bestehende Solar-Statuslogik integriert. Der Helper nutzt nun wie die Standard-Solarsteuerung den State speech.solar_active, wodurch Anzeige und Verhalten der Pumpe konsistent sind. Kleine Fehlerbehebungen und Optimierungen.",
22
+ "ru": "Исправление: Solar Extended теперь правильно управляет насосом и интегрируется с существующей системой обработки состояния солнечной энергии. Помощник теперь использует voice.solar_active как стандартную логику Solar, обеспечивая единообразное отображение состояния и поведения насоса. Мелкие исправления и оптимизации.",
23
+ "pt": "Correção: o Solar Extended agora controla corretamente a bomba e se integra ao tratamento do status solar existente. O auxiliar agora usa Speech.solar_active como a lógica solar padrão, garantindo exibição e comportamento consistentes do status da bomba. Pequenas correções e otimizações.",
24
+ "nl": "Oplossing: Solar Extended bestuurt de pomp nu correct en integreert met bestaande zonnestatusafhandeling. De helper gebruikt nu speech.solar_active zoals de standaard zonnelogica, waardoor een consistente weergave en gedrag van de pompstatus wordt gegarandeerd. Kleine reparaties en optimalisaties.",
25
+ "fr": "Correctif : Solar Extended contrôle désormais correctement la pompe et s'intègre à la gestion de l'état solaire existante. L'assistant utilise désormais Speech.solar_active comme la logique solaire standard, garantissant un affichage et un comportement cohérents de l'état de la pompe. Corrections mineures et optimisations.",
26
+ "it": "Correzione: Solar Extended ora controlla correttamente la pompa e si integra con la gestione dello stato solare esistente. L'helper ora utilizza Speech.solar_active come la logica solare standard, garantendo una visualizzazione e un comportamento coerenti dello stato della pompa. Correzioni e ottimizzazioni minori.",
27
+ "es": "Solución: Solar Extended ahora controla correctamente la bomba y se integra con el manejo del estado solar existente. El asistente ahora utiliza Speech.solar_active como la lógica solar estándar, lo que garantiza una visualización y un comportamiento consistentes del estado de la bomba. Correcciones y optimizaciones menores.",
28
+ "pl": "Poprawka: Solar Extended teraz poprawnie steruje pompą i integruje się z istniejącą obsługą stanu solarnego. Pomocnik używa teraz mowy.solar_active jak standardowej logiki solarnej, zapewniając spójne wyświetlanie stanu i zachowanie pompy. Drobne poprawki i optymalizacje.",
29
+ "uk": "Виправлення: Solar Extended тепер правильно керує насосом та інтегрується з існуючою обробкою стану сонячної енергії. Помічник тепер використовує speak.solar_active як стандартну сонячну логіку, забезпечуючи послідовне відображення стану насоса та поведінку. Незначні виправлення та оптимізації.",
30
+ "zh-cn": "修复:Solar Extended 现在可以正确控制泵并与现有的太阳能状态处理集成。助手现在像标准太阳能逻辑一样使用pepe.solar_active,确保一致的泵状态显示和行为。小修复和优化。"
31
+ },
6
32
  "1.3.0": {
7
33
  "en": "Added extended solar control with selectable standard/extended mode, delta-based control logic, external actuator support, priority/blocking handling, and localized status texts.",
8
34
  "de": "Erweiterte Solarsteuerung ergänzt mit wählbarem Standard-/Extended-Modus, differenzbasierter Regelung, externer Aktor-Ansteuerung, Vorrang-/Blockierlogik und lokalisierten Statusmeldungen.",
@@ -41,32 +67,6 @@
41
67
  "pl": "Poprawka błędu: Naprawiono problem w pomocniku fotowoltaicznym polegający na niezamierzonym ponownym uruchomieniu licznika czasu dobiegu przy każdym ponownym obliczeniu bez nadwyżki PV. Może to znacznie opóźnić wyłączenie pompy. Dobieg rozpoczyna się teraz tylko raz, gdy kończy się nadwyżka i przebiega niezawodnie do końca. Zapewnia również właściwe czyszczenie, gdy nadwyżka stanie się ponownie aktywna podczas dobiegu.",
42
68
  "uk": "Виправлення помилки: виправлено проблему у фотоелектричному помічнику, через яку таймер післязапуску ненавмисно перезапускався під час кожного перерахунку без надлишку PV. Це може значно затримати зупинку насоса. Післязапуск тепер починається лише один раз, коли закінчується надлишок і працює надійно до кінця. Також забезпечує належне очищення, коли надлишки знову стають активними під час повторного циклу.",
43
69
  "zh-cn": "错误修复:修复了光伏助手中的一个问题,即每次重新计算时没有光伏剩余时,后运行计时器会无意中重新启动。这可能会显着延迟泵的关闭。现在,后运行仅在盈余结束时启动一次,并可靠地运行直至完成。还确保在后运行期间剩余物再次活跃时进行适当的清理。"
44
- },
45
- "1.2.20": {
46
- "en": "Bugfix release. Reduced unnecessary state writes in the status and photovoltaic helpers. Summary timestamps and PV update timestamps are now only written when the related functional result actually changes. This makes the adapter noticeably quieter and avoids needless state updates without changing the existing control logic.",
47
- "de": "Bugfix-Release. Reduziert unnötige State-Schreibvorgänge im Status- und Photovoltaik-Helper. Summary-Zeitstempel und PV-Aktualisierungszeitstempel werden jetzt nur noch dann geschrieben, wenn sich das zugehörige fachliche Ergebnis tatsächlich ändert. Dadurch arbeitet der Adapter spürbar ruhiger und vermeidet unnötige State-Updates, ohne die bestehende Steuerlogik zu verändern.",
48
- "ru": "Выпуск с исправлением ошибок. Уменьшено количество ненужных записей в статусе и фотоэлектрических помощниках. Сводные временные метки и временные метки обновления PV теперь записываются только тогда, когда соответствующий функциональный результат действительно изменяется. Это делает адаптер заметно тише и позволяет избежать ненужных обновлений состояния без изменения существующей логики управления.",
49
- "pt": "Lançamento de correção de bug. Gravações de estado desnecessárias reduzidas nos ajudantes de status e fotovoltaicos. Os carimbos de data e hora de resumo e os carimbos de data e hora de atualização do PV agora são gravados apenas quando o resultado funcional relacionado realmente muda. Isto torna o adaptador visivelmente mais silencioso e evita atualizações de estado desnecessárias sem alterar a lógica de controle existente.",
50
- "nl": "Bugfix-release. Verminderde onnodige statusschrijven in de status en fotovoltaïsche helpers. Samenvattende tijdstempels en tijdstempels voor PV-updates worden nu alleen geschreven als het gerelateerde functionele resultaat daadwerkelijk verandert. Dit maakt de adapter merkbaar stiller en vermijdt onnodige statusupdates zonder de bestaande besturingslogica te veranderen.",
51
- "fr": "Version de correction de bugs. Réduction des écritures d'état inutiles dans les aides d'état et photovoltaïques. Les horodatages récapitulatifs et les horodatages de mise à jour PV ne sont désormais écrits que lorsque le résultat fonctionnel associé change réellement. Cela rend l'adaptateur sensiblement plus silencieux et évite les mises à jour d'état inutiles sans modifier la logique de contrôle existante.",
52
- "it": "Rilascio di correzione bug. Ridotte le scritture di stato non necessarie nello stato e gli aiutanti fotovoltaici. I timestamp di riepilogo e quelli di aggiornamento PV ora vengono scritti solo quando il relativo risultato funzionale cambia effettivamente. Ciò rende l'adattatore notevolmente più silenzioso ed evita aggiornamenti di stato inutili senza modificare la logica di controllo esistente.",
53
- "es": "Lanzamiento de corrección de errores. Reducción de escrituras de estado innecesarias en el estado y ayudantes fotovoltaicos. Las marcas de tiempo de resumen y las marcas de tiempo de actualización de PV ahora solo se escriben cuando el resultado funcional relacionado realmente cambia. Esto hace que el adaptador sea notablemente más silencioso y evita actualizaciones de estado innecesarias sin cambiar la lógica de control existente.",
54
- "pl": "Wydanie poprawek błędów. Redukcja zbędnych zapisów stanu w statusie i pomocnikach fotowoltaicznych. Sumaryczne znaczniki czasu i znaczniki czasu aktualizacji PV są teraz zapisywane tylko wtedy, gdy faktycznie zmienia się powiązany wynik funkcjonalny. Dzięki temu adapter jest zauważalnie cichszy i pozwala uniknąć niepotrzebnych aktualizacji stanu bez zmiany istniejącej logiki sterowania.",
55
- "uk": "Реліз виправлення помилок. Зменшено непотрібні записи стану в статусі та фотоелектричні помічники. Підсумкові мітки часу та мітки часу оновлення PV тепер записуються лише тоді, коли відповідний функціональний результат фактично змінюється. Це робить адаптер помітно тихішим і дозволяє уникнути непотрібних оновлень стану без зміни існуючої логіки керування.",
56
- "zh-cn": "错误修复版本。减少状态和光伏助手中不必要的状态写入。摘要时间戳和 PV 更新时间戳现在仅在相关功能结果实际更改时写入。这使得适配器明显更安静,并且在不改变现有控制逻辑的情况下避免了不必要的状态更新。"
57
- },
58
- "1.2.19": {
59
- "en": "Bugfix release. Fixes an interaction issue between photovoltaicHelper and controlHelper where automatic follow-up pumping could be interrupted unexpectedly. The photovoltaic stop logic now respects controlHelper priority and no longer stops the pump while automatic follow-up pumping is active. In addition, the read-only state photovoltaic.threshold_w is now synchronized correctly with the instance configuration so that changes in the adapter settings are reflected reliably in the visible datapoint.",
60
- "de": "Bugfix-Release. Behebt ein Zusammenspielproblem zwischen photovoltaicHelper und controlHelper, durch das automatisches Nachpumpen unerwartet unterbrochen werden konnte. Die Abschaltlogik des PV-Helfers respektiert nun den Vorrang des controlHelper und stoppt die Pumpe nicht mehr, solange automatisches Nachpumpen aktiv ist. Zusätzlich wird der schreibgeschützte Datenpunkt photovoltaic.threshold_w jetzt korrekt mit der Instanzkonfiguration synchronisiert, sodass Änderungen in den Adaptereinstellungen zuverlässig im sichtbaren Datenpunkt übernommen werden.",
61
- "ru": "Выпуск с исправлением ошибок. Устранена проблема взаимодействия между фотоэлектрическим помощником и controlHelper, из-за которой автоматическая последующая откачка могла неожиданно прерваться. Логика фотоэлектрической остановки теперь учитывает приоритет controlHelper и больше не останавливает насос, пока активна автоматическая последующая откачка. Кроме того, состояние только для чтения photovoltaic.threshold_w теперь правильно синхронизируется с конфигурацией экземпляра, так что изменения в настройках адаптера надежно отражаются в видимой точке данных.",
62
- "pt": "Lançamento de correção de bug. Corrige um problema de interação entre photovoltaicHelper e controlHelper onde o bombeamento de acompanhamento automático poderia ser interrompido inesperadamente. A lógica de paragem fotovoltaica respeita agora a prioridade controlHelper e já não para a bomba enquanto o bombeamento de acompanhamento automático estiver ativo. Além disso, o estado somente leitura photovoltaic.threshold_w agora está sincronizado corretamente com a configuração da instância para que as alterações nas configurações do adaptador sejam refletidas de forma confiável no ponto de dados visível.",
63
- "nl": "Bugfix-release. Er is een interactieprobleem opgelost tussen photovoltaicHelper en controlHelper waarbij automatisch napompen onverwacht kon worden onderbroken. De fotovoltaïsche stoplogica respecteert nu de prioriteit van controlHelper en stopt de pomp niet langer terwijl automatisch napompen actief is. Bovendien wordt de alleen-lezen status photovoltaic.threshold_w nu correct gesynchroniseerd met de instanceconfiguratie, zodat wijzigingen in de adapterinstellingen betrouwbaar worden weerspiegeld in het zichtbare datapunt.",
64
- "fr": "Version de correction de bugs. Corrige un problème d'interaction entre photovoltaicHelper et controlHelper où le pompage de suivi automatique pouvait être interrompu de manière inattendue. La logique d'arrêt photovoltaïque respecte désormais la priorité controlHelper et n'arrête plus la pompe lorsque le pompage de suivi automatique est actif. De plus, l'état en lecture seule photovoltaic.threshold_w est désormais correctement synchronisé avec la configuration de l'instance afin que les modifications apportées aux paramètres de l'adaptateur soient reflétées de manière fiable dans le point de données visible.",
65
- "it": "Rilascio di correzione bug. Risolve un problema di interazione tra fotovoltaicoHelper e controlHelper in cui il pompaggio automatico di follow-up poteva essere interrotto inaspettatamente. La logica di arresto fotovoltaico ora rispetta la priorità di controlHelper e non arresta più la pompa mentre è attivo il pompaggio di follow-up automatico. Inoltre, lo stato di sola lettura fotovoltaico.threshold_w è ora sincronizzato correttamente con la configurazione dell'istanza in modo che le modifiche nelle impostazioni dell'adattatore si riflettano in modo affidabile nel punto dati visibile.",
66
- "es": "Lanzamiento de corrección de errores. Soluciona un problema de interacción entre photovoltaicHelper y controlHelper donde el bombeo de seguimiento automático podría interrumpirse inesperadamente. La lógica de parada fotovoltaica ahora respeta la prioridad de controlHelper y ya no detiene la bomba mientras el bombeo de seguimiento automático está activo. Además, el estado de solo lectura photovoltaic.threshold_w ahora está sincronizado correctamente con la configuración de la instancia para que los cambios en la configuración del adaptador se reflejen de manera confiable en el punto de datos visible.",
67
- "pl": "Wydanie poprawek błędów. Rozwiązuje problem interakcji pomiędzy photovoltaicHelper i controlHelper, powodujący nieoczekiwane przerwanie automatycznego pompowania uzupełniającego. Logika zatrzymania fotowoltaiki uwzględnia teraz priorytet ControlHelper i nie zatrzymuje już pompy, gdy aktywne jest automatyczne pompowanie uzupełniające. Ponadto stan tylko do odczytu photovoltaic.threshold_w jest teraz poprawnie zsynchronizowany z konfiguracją instancji, dzięki czemu zmiany w ustawieniach adaptera są niezawodnie odzwierciedlane w widocznym punkcie danych.",
68
- "uk": "Реліз виправлення помилок. Вирішує проблему взаємодії між photovoltaicHelper і controlHelper, через яку автоматичне подальше відкачування може бути несподівано перервано. Логіка фотоелектричної зупинки тепер враховує пріоритет controlHelper і більше не зупиняє насос, поки активна автоматична подальша перекачування. Крім того, стан тільки для читання photovoltaic.threshold_w тепер правильно синхронізовано з конфігурацією екземпляра, щоб зміни в налаштуваннях адаптера надійно відображалися у видимій точці даних.",
69
- "zh-cn": "错误修复版本。修复了 PVHelper 和 controlHelper 之间的交互问题,其中自动后续泵送可能会意外中断。光伏停止逻辑现在尊重 controlHelper 优先级,并且在自动后续泵送处于活动状态时不再停止泵。此外,只读状态 PV.threshold_w 现在已与实例配置正确同步,以便适配器设置中的更改能够可靠地反映在可见数据点中。"
70
70
  }
71
71
  },
72
72
  "titleLang": {
@@ -26,12 +26,13 @@ const solarExtendedHelper = {
26
26
 
27
27
  _scheduleCheck() {
28
28
  if (this.checkTimer) {
29
- clearInterval(this.checkTimer);
29
+ this.adapter.clearInterval(this.checkTimer);
30
30
  }
31
31
 
32
- this.checkTimer = setInterval(() => this._checkSolarExtended(), 60 * 1000);
32
+ this.checkTimer = this.adapter.setInterval(() => this._checkSolarExtended(), 60 * 1000);
33
+
33
34
  // Beim Start sofort prüfen
34
- this._checkSolarExtended();
35
+ void this._checkSolarExtended();
35
36
  },
36
37
 
37
38
  async _checkSolarExtended() {
@@ -52,7 +53,7 @@ const solarExtendedHelper = {
52
53
  const controlInverted = (await this.adapter.getStateAsync('solar.extended.control_inverted'))?.val === true;
53
54
 
54
55
  const oldEnabledByMaster = (await this.adapter.getStateAsync('solar.extended.enabled_by_master'))?.val;
55
- const oldRequestActive = (await this.adapter.getStateAsync('solar.extended.request_active'))?.val;
56
+ const oldRequestActive = (await this.adapter.getStateAsync('solar.extended.request_active'))?.val === true;
56
57
  const oldActive = (await this.adapter.getStateAsync('solar.extended.active'))?.val;
57
58
  const oldBlocked = (await this.adapter.getStateAsync('solar.extended.blocked'))?.val;
58
59
  const oldBlockedBy = (await this.adapter.getStateAsync('solar.extended.blocked_by'))?.val;
@@ -148,11 +149,12 @@ const solarExtendedHelper = {
148
149
  this.adapter.log.debug('[solarExtendedHelper] No valid temperatures available');
149
150
  } else {
150
151
  const delta = collector - pool;
152
+
153
+ requestActive = oldRequestActive;
154
+
151
155
  if (delta >= deltaOn && pool < maxTemperature) {
152
156
  requestActive = true;
153
- }
154
-
155
- if (delta <= deltaOff || pool >= maxTemperature) {
157
+ } else if (delta <= deltaOff || pool >= maxTemperature) {
156
158
  requestActive = false;
157
159
  }
158
160
 
@@ -178,10 +180,21 @@ const solarExtendedHelper = {
178
180
  actorWriteValue = !actorWriteValue;
179
181
  }
180
182
 
183
+ // FIX:
184
+ // Definiert den AUS-Zustand des externen Aktors abhängig von der Invertierung.
185
+ const actorOffValue = controlInverted ? true : false;
186
+
181
187
  if (actorConfigOk) {
182
188
  try {
183
- await this.adapter.setForeignStateAsync(controlObjectId, actorWriteValue, false);
184
- actorState = actorWriteValue;
189
+ // FIX:
190
+ // Der externe Aktor darf nur dann aktiv sein,
191
+ // wenn Solar Extended tatsächlich selbst aktiv ist.
192
+ // Bei Blockierung durch controlHelper/timeHelper
193
+ // oder ohne eigene Anforderung wird der Aktor deaktiviert.
194
+ const effectiveActorValue = !blocked ? actorWriteValue : actorOffValue;
195
+
196
+ await this.adapter.setForeignStateAsync(controlObjectId, effectiveActorValue, false);
197
+ actorState = effectiveActorValue;
185
198
 
186
199
  if (!blocked) {
187
200
  active = requestActive;
@@ -190,6 +203,8 @@ const solarExtendedHelper = {
190
203
  ? I18n.translate('extended active')
191
204
  : I18n.translate('extended inactive');
192
205
  }
206
+ } else {
207
+ active = false;
193
208
  }
194
209
  } catch (err) {
195
210
  blocked = true;
@@ -206,6 +221,26 @@ const solarExtendedHelper = {
206
221
  active = false;
207
222
  }
208
223
 
224
+ const speechSolarActive = requestActive && !blocked;
225
+ const oldSpeechSolarActive = (await this.adapter.getStateAsync('speech.solar_active'))?.val;
226
+ if (oldSpeechSolarActive !== speechSolarActive) {
227
+ await this.adapter.setStateChangedAsync('speech.solar_active', {
228
+ val: speechSolarActive,
229
+ ack: true,
230
+ });
231
+ }
232
+
233
+ // FIX:
234
+ // Den zentralen Pumpenschalter nur dann schreiben,
235
+ // wenn Solar Extended überhaupt der zuständige Solarmodus ist
236
+ // und keine höhere Fremdpriorität aktiv ist.
237
+ if (isExtendedMode && !isControlPriority && !isTimePriority) {
238
+ await this.adapter.setStateChangedAsync('pump.pump_switch', {
239
+ val: speechSolarActive,
240
+ ack: false,
241
+ });
242
+ }
243
+
209
244
  await this.adapter.setStateChangedAsync('solar.extended.enabled_by_master', {
210
245
  val: enabledByMaster,
211
246
  ack: true,
@@ -276,7 +311,7 @@ const solarExtendedHelper = {
276
311
 
277
312
  cleanup() {
278
313
  if (this.checkTimer) {
279
- clearInterval(this.checkTimer);
314
+ this.adapter.clearInterval(this.checkTimer);
280
315
  this.checkTimer = null;
281
316
  }
282
317
  },
@@ -23,11 +23,11 @@ const solarHelper = {
23
23
 
24
24
  _scheduleCheck() {
25
25
  if (this.checkTimer) {
26
- clearInterval(this.checkTimer);
26
+ this.adapter.clearInterval(this.checkTimer);
27
27
  }
28
- this.checkTimer = setInterval(() => this._checkSolar(), 60 * 1000);
28
+ this.checkTimer = this.adapter.setInterval(() => this._checkSolar(), 60 * 1000);
29
29
  // Beim Start sofort prüfen
30
- this._checkSolar();
30
+ void this._checkSolar();
31
31
  },
32
32
 
33
33
  async _checkSolar() {
@@ -211,7 +211,7 @@ const solarHelper = {
211
211
 
212
212
  cleanup() {
213
213
  if (this.checkTimer) {
214
- clearInterval(this.checkTimer);
214
+ this.adapter.clearInterval(this.checkTimer);
215
215
  this.checkTimer = null;
216
216
  }
217
217
  },
@@ -23,11 +23,11 @@ const timeHelper = {
23
23
 
24
24
  _scheduleCheck() {
25
25
  if (this.checkTimer) {
26
- clearInterval(this.checkTimer);
26
+ this.adapter.clearInterval(this.checkTimer);
27
27
  }
28
- this.checkTimer = setInterval(() => this._checkWindows(), 60 * 1000);
28
+ this.checkTimer = this.adapter.setInterval(() => this._checkWindows(), 60 * 1000);
29
29
  // Beim Start sofort prüfen
30
- this._checkWindows();
30
+ void this._checkWindows();
31
31
  },
32
32
 
33
33
  async _checkWindows() {
@@ -109,7 +109,7 @@ const timeHelper = {
109
109
 
110
110
  cleanup() {
111
111
  if (this.checkTimer) {
112
- clearInterval(this.checkTimer);
112
+ this.adapter.clearInterval(this.checkTimer);
113
113
  this.checkTimer = null;
114
114
  }
115
115
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.poolcontrol",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
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",