iobroker.poolcontrol 1.3.1 → 1.3.3
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 +14 -10
- package/io-package.json +27 -27
- package/lib/helpers/solarExtendedHelper.js +35 -14
- package/lib/helpers/solarHelper.js +4 -4
- package/lib/helpers/solarInsightsHelper.js +815 -0
- package/lib/helpers/solarLogbookHelper.js +616 -0
- package/lib/helpers/timeHelper.js +4 -4
- package/lib/i18n/de.json +67 -1
- package/lib/i18n/en.json +67 -1
- package/lib/i18n/es.json +67 -1
- package/lib/i18n/fr.json +67 -1
- package/lib/i18n/it.json +67 -1
- package/lib/i18n/nl.json +67 -1
- package/lib/i18n/pl.json +67 -1
- package/lib/i18n/pt.json +67 -1
- package/lib/i18n/ru.json +67 -1
- package/lib/i18n/uk.json +67 -1
- package/lib/i18n/zh-cn.json +67 -1
- package/lib/stateDefinitions/solarInsightsStates.js +783 -0
- package/main.js +24 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -188,6 +188,20 @@ New features are added regularly – please refer to the changelog.
|
|
|
188
188
|
---
|
|
189
189
|
|
|
190
190
|
## Changelog
|
|
191
|
+
### 1.3.3 (2026-04-18)
|
|
192
|
+
|
|
193
|
+
- Added solar COP calculation to evaluate system efficiency
|
|
194
|
+
- Added solar logbook helper with easy-to-read daily summaries for better user understanding
|
|
195
|
+
|
|
196
|
+
### 1.3.2 (2026-04-17)
|
|
197
|
+
|
|
198
|
+
- Fix: Solar Extended no longer interferes with controlHelper or timeHelper (prevents unwanted pump shutdown)
|
|
199
|
+
- Fix: Solar Extended no longer interferes with standard solar mode
|
|
200
|
+
- Fix: Improved handling of external actuator (clean ON/OFF behavior depending on Solar Extended state)
|
|
201
|
+
- Improvement: Added stable delta hysteresis (delta_on / delta_off) to prevent switching fluctuations
|
|
202
|
+
- Improvement: Replaced global timers with adapter timers in solarExtendedHelper
|
|
203
|
+
- Cleanup: Removed duplicate reading of request_active state
|
|
204
|
+
|
|
191
205
|
### 1.3.1 (2026-04-17)
|
|
192
206
|
|
|
193
207
|
- Fix: Solar Extended now correctly controls the pump
|
|
@@ -210,16 +224,6 @@ New features are added regularly – please refer to the changelog.
|
|
|
210
224
|
- Added new read-only state `solar.request_active` to indicate when solar logic would request the pump
|
|
211
225
|
- Improved solarHelper robustness by handling invalid temperature values
|
|
212
226
|
|
|
213
|
-
### 1.2.21 (2026-04-15)
|
|
214
|
-
|
|
215
|
-
- Fixed photovoltaic afterrun timer restarting on every recalculation without PV surplus
|
|
216
|
-
- Afterrun now starts only once and runs reliably to completion
|
|
217
|
-
- Proper cleanup when surplus becomes active again during afterrun
|
|
218
|
-
|
|
219
|
-
### 1.2.20
|
|
220
|
-
Release: 11.04.2026
|
|
221
|
-
- (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.
|
|
222
|
-
|
|
223
227
|
## Support
|
|
224
228
|
- [ioBroker Forum](https://forum.iobroker.net/)
|
|
225
229
|
- [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.
|
|
4
|
+
"version": "1.3.3",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.3.3": {
|
|
7
|
+
"en": "Added solar COP calculation and solar logbook helper with human-readable daily entries based on solar insights.",
|
|
8
|
+
"de": "Solar-COP-Berechnung sowie Solar-Logbuch-Helper mit verständlichen Tages-Einträgen basierend auf Solar-Insights hinzugefügt.",
|
|
9
|
+
"ru": "Добавлен расчет солнечного КПД и помощник в журнале солнечной энергии с удобочитаемыми ежедневными записями на основе данных о солнечной энергии.",
|
|
10
|
+
"pt": "Adicionado cálculo de COP solar e auxiliar de diário de bordo solar com entradas diárias legíveis por humanos com base em insights solares.",
|
|
11
|
+
"nl": "Zonne-COP-berekening en zonne-logboekhulp toegevoegd met voor mensen leesbare dagelijkse gegevens op basis van zonne-inzichten.",
|
|
12
|
+
"fr": "Ajout du calcul du COP solaire et d'un assistant de journal de bord solaire avec des entrées quotidiennes lisibles par l'homme basées sur des informations solaires.",
|
|
13
|
+
"it": "Aggiunto il calcolo del COP solare e l'assistente del registro solare con voci giornaliere leggibili dall'uomo basate su informazioni solari.",
|
|
14
|
+
"es": "Se agregó un cálculo de COP solar y un asistente de registro solar con entradas diarias legibles por humanos basadas en conocimientos solares.",
|
|
15
|
+
"pl": "Dodano obliczenia COP energii słonecznej i pomocnika dziennika słonecznego z czytelnymi dla człowieka codziennymi wpisami opartymi na spostrzeżeniach dotyczących energii słonecznej.",
|
|
16
|
+
"uk": "Додано розрахунок COP сонячної енергії та помічник сонячного журналу із зрозумілими для людини щоденними записами на основі даних про сонячну енергію.",
|
|
17
|
+
"zh-cn": "添加了太阳能 COP 计算和太阳能日志助手,其中包含基于太阳能洞察的人类可读的每日条目。"
|
|
18
|
+
},
|
|
19
|
+
"1.3.2": {
|
|
20
|
+
"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.",
|
|
21
|
+
"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.",
|
|
22
|
+
"ru": "Исправлены конфликты Solar Extended с controlHelper/timeHelper и стандартным солнечным режимом, улучшено управление внешним приводом, добавлен стабильный дельта-гистерезис и согласована обработка таймера с таймерами адаптера.",
|
|
23
|
+
"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.",
|
|
24
|
+
"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.",
|
|
25
|
+
"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.",
|
|
26
|
+
"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.",
|
|
27
|
+
"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.",
|
|
28
|
+
"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.",
|
|
29
|
+
"uk": "Виправлено конфлікти Solar Extended з controlHelper/timeHelper і стандартним сонячним режимом, покращено обробку зовнішнього приводу, додано стабільний дельта-гістерезис і узгоджено обробку таймера з таймерами адаптера.",
|
|
30
|
+
"zh-cn": "修复了 Solar Extended 与 controlHelper/timeHelper 和标准太阳能模式的冲突,改进了外部执行器处理,添加了稳定的增量迟滞,以及与适配器计时器对齐的计时器处理。"
|
|
31
|
+
},
|
|
6
32
|
"1.3.1": {
|
|
7
33
|
"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.",
|
|
8
34
|
"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.",
|
|
@@ -41,32 +67,6 @@
|
|
|
41
67
|
"pl": "Dodano nowy stan tylko do odczytu solar.request_active, aby wskazać, kiedy logika solarna zażąda pompy. Poprawiona niezawodność solarHelper poprzez obsługę nieprawidłowych wartości temperatur.",
|
|
42
68
|
"uk": "Додано новий стан solar.request_active лише для читання, щоб вказати, коли сонячна логіка запитуватиме насос. Покращена надійність solarHelper завдяки обробці недійсних значень температури.",
|
|
43
69
|
"zh-cn": "添加了新的只读状态 Solar.request_active 以指示太阳能逻辑何时请求泵。通过处理无效温度值提高了 SolarHelper 的稳健性。"
|
|
44
|
-
},
|
|
45
|
-
"1.2.21": {
|
|
46
|
-
"en": "Bugfix: Fixed an issue in the photovoltaic helper where the afterrun timer was unintentionally restarted on every recalculation without PV surplus. This could delay the pump shutdown significantly. The afterrun now starts only once when surplus ends and runs reliably to completion. Also ensures proper cleanup when surplus becomes active again during afterrun.",
|
|
47
|
-
"de": "Bugfix: Fehler im Photovoltaik-Helper behoben, bei dem der Nachlauf-Timer bei jedem Recalc ohne PV-Überschuss erneut gestartet wurde. Dadurch konnte sich das Abschalten der Pumpe stark verzögern. Der Nachlauf startet jetzt nur noch einmal beim Wegfall des Überschusses und läuft zuverlässig zu Ende. Zusätzlich wird der Nachlauf sauber beendet, wenn währenddessen wieder Überschuss vorhanden ist.",
|
|
48
|
-
"ru": "Исправление: исправлена проблема в фотоэлектрическом помощнике, из-за которой таймер выключения непреднамеренно перезапускался при каждом перерасчете без избытка фотоэлектрической энергии. Это может значительно задержать остановку насоса. Последующий запуск теперь запускается только один раз, когда заканчивается избыток, и надежно выполняется до завершения. Также обеспечивает правильную очистку, когда излишки снова становятся активными во время выбега.",
|
|
49
|
-
"pt": "Correção de bug: Corrigido um problema no auxiliar fotovoltaico em que o temporizador pós-execução era reiniciado involuntariamente em cada recálculo sem excedente de PV. Isto pode atrasar significativamente o encerramento da bomba. A pós-execução agora começa apenas uma vez quando o excedente termina e funciona de forma confiável até a conclusão. Também garante a limpeza adequada quando o excedente fica ativo novamente durante o pós-execução.",
|
|
50
|
-
"nl": "Bugfix: Probleem opgelost in de fotovoltaïsche helper waarbij de nalooptimer onbedoeld opnieuw werd gestart bij elke herberekening zonder PV-overschot. Dit kan het uitschakelen van de pomp aanzienlijk vertragen. De afterrun start nu slechts één keer als het overschot op is en loopt betrouwbaar door tot voltooiing. Zorgt ook voor een goede opruiming wanneer het overschot weer actief wordt tijdens de afterrun.",
|
|
51
|
-
"fr": "Correction d'un bug : correction d'un problème dans l'assistant photovoltaïque où la minuterie de post-exécution était involontairement redémarrée à chaque recalcul sans excédent PV. Cela pourrait retarder considérablement l’arrêt de la pompe. L'afterrun ne démarre désormais qu'une seule fois lorsque l'excédent se termine et se déroule de manière fiable jusqu'à son terme. Assure également un nettoyage approprié lorsque le surplus redevient actif pendant la post-exécution.",
|
|
52
|
-
"it": "Bugfix: risolto un problema nell'helper fotovoltaico per cui il timer di postesecuzione veniva riavviato involontariamente ad ogni ricalcolo senza surplus fotovoltaico. Ciò potrebbe ritardare notevolmente l'arresto della pompa. L'afterrun ora inizia solo una volta quando termina il surplus e viene eseguito in modo affidabile fino al completamento. Garantisce inoltre una corretta pulizia quando il surplus diventa nuovamente attivo durante l'afterrun.",
|
|
53
|
-
"es": "Corrección de errores: se solucionó un problema en el asistente fotovoltaico por el cual el temporizador de retardo se reiniciaba involuntariamente en cada recálculo sin excedente de fotovoltaico. Esto podría retrasar significativamente el apagado de la bomba. La ejecución posterior ahora comienza solo una vez cuando termina el excedente y se ejecuta de manera confiable hasta su finalización. También garantiza una limpieza adecuada cuando el excedente se vuelve a activar durante la ejecución posterior.",
|
|
54
|
-
"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.",
|
|
55
|
-
"uk": "Виправлення помилки: виправлено проблему у фотоелектричному помічнику, через яку таймер післязапуску ненавмисно перезапускався під час кожного перерахунку без надлишку PV. Це може значно затримати зупинку насоса. Післязапуск тепер починається лише один раз, коли закінчується надлишок і працює надійно до кінця. Також забезпечує належне очищення, коли надлишки знову стають активними під час повторного циклу.",
|
|
56
|
-
"zh-cn": "错误修复:修复了光伏助手中的一个问题,即每次重新计算时没有光伏剩余时,后运行计时器会无意中重新启动。这可能会显着延迟泵的关闭。现在,后运行仅在盈余结束时启动一次,并可靠地运行直至完成。还确保在后运行期间剩余物再次活跃时进行适当的清理。"
|
|
57
|
-
},
|
|
58
|
-
"1.2.20": {
|
|
59
|
-
"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.",
|
|
60
|
-
"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.",
|
|
61
|
-
"ru": "Выпуск с исправлением ошибок. Уменьшено количество ненужных записей в статусе и фотоэлектрических помощниках. Сводные временные метки и временные метки обновления PV теперь записываются только тогда, когда соответствующий функциональный результат действительно изменяется. Это делает адаптер заметно тише и позволяет избежать ненужных обновлений состояния без изменения существующей логики управления.",
|
|
62
|
-
"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.",
|
|
63
|
-
"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.",
|
|
64
|
-
"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.",
|
|
65
|
-
"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.",
|
|
66
|
-
"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.",
|
|
67
|
-
"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.",
|
|
68
|
-
"uk": "Реліз виправлення помилок. Зменшено непотрібні записи стану в статусі та фотоелектричні помічники. Підсумкові мітки часу та мітки часу оновлення PV тепер записуються лише тоді, коли відповідний функціональний результат фактично змінюється. Це робить адаптер помітно тихішим і дозволяє уникнути непотрібних оновлень стану без зміни існуючої логіки керування.",
|
|
69
|
-
"zh-cn": "错误修复版本。减少状态和光伏助手中不必要的状态写入。摘要时间戳和 PV 更新时间戳现在仅在相关功能结果实际更改时写入。这使得适配器明显更安静,并且在不改变现有控制逻辑的情况下避免了不必要的状态更新。"
|
|
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
|
-
|
|
184
|
-
|
|
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;
|
|
@@ -215,10 +230,16 @@ const solarExtendedHelper = {
|
|
|
215
230
|
});
|
|
216
231
|
}
|
|
217
232
|
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
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
|
+
}
|
|
222
243
|
|
|
223
244
|
await this.adapter.setStateChangedAsync('solar.extended.enabled_by_master', {
|
|
224
245
|
val: enabledByMaster,
|
|
@@ -290,7 +311,7 @@ const solarExtendedHelper = {
|
|
|
290
311
|
|
|
291
312
|
cleanup() {
|
|
292
313
|
if (this.checkTimer) {
|
|
293
|
-
clearInterval(this.checkTimer);
|
|
314
|
+
this.adapter.clearInterval(this.checkTimer);
|
|
294
315
|
this.checkTimer = null;
|
|
295
316
|
}
|
|
296
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
|
},
|