iobroker.poolcontrol 0.2.0 → 0.2.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
@@ -1,14 +1,18 @@
1
1
  # ioBroker.poolcontrol
2
2
 
3
- ![Test and Release](https://github.com/DasBo1975/iobroker.poolcontrol/actions/workflows/test-and-release.yml/badge.svg)
3
+ ![Test and Release](https://github.com/DasBo1975/ioBroker.poolcontrol/actions/workflows/test-and-release.yml/badge.svg)
4
4
  ![npm](https://img.shields.io/npm/v/iobroker.poolcontrol?color=blue)
5
5
  ![Downloads](https://img.shields.io/npm/dm/iobroker.poolcontrol)
6
6
  ![Installs](https://iobroker.live/badges/poolcontrol-installed.svg)
7
7
  ![Stable](https://iobroker.live/badges/poolcontrol-stable.svg)
8
8
  [![License](https://img.shields.io/github/license/DasBo1975/ioBroker.poolcontrol?cacheSeconds=3600)](https://github.com/DasBo1975/ioBroker.poolcontrol/blob/main/LICENSE)
9
9
 
10
+ ---
11
+
12
+ ## Beschreibung
13
+
10
14
  Der Adapter **ioBroker.poolcontrol** dient zur Steuerung und Überwachung von Poolanlagen.
11
- Er ermöglicht die Automatisierung von Pumpen, Temperatur- und Solarsteuerung sowie Verbrauchsauswertung.
15
+ Er ermöglicht die Automatisierung von Pumpen-, Temperatur- und Solarsteuerung sowie die Verbrauchsauswertung.
12
16
 
13
17
  ---
14
18
 
@@ -28,7 +32,7 @@ Er ermöglicht die Automatisierung von Pumpen, Temperatur- und Solarsteuerung so
28
32
  - **Solarsteuerung**
29
33
  - Ein-/Ausschaltgrenzen mit Hysterese
30
34
  - Kollektor-Warnung (mit automatischer Rücksetzung bei 10 % unter der Schwelle)
31
- - Optional Sprachausgabe bei Warnung
35
+ - Optionale Sprachausgabe bei Warnung
32
36
 
33
37
  - **Zeitsteuerung**
34
38
  - Bis zu 3 frei konfigurierbare Zeitfenster pro Woche
@@ -41,14 +45,15 @@ Er ermöglicht die Automatisierung von Pumpen, Temperatur- und Solarsteuerung so
41
45
  - Auswertung eines externen kWh-Zählers
42
46
  - Tages-, Wochen-, Monats- und Jahresverbrauch
43
47
  - Berechnung der Stromkosten anhand konfigurierbarem Preis
44
- **Hinweis:**
45
- Details zum Verhalten der Verbrauchs- und Kostenwerte (z. B. bei Neustarts oder beim Wechsel des Stromzählers) finden Sie in der Datei [help.md](./help.md).
48
+
49
+ **Hinweis:**
50
+ Details zum Verhalten der Verbrauchs- und Kostenwerte (z. B. bei Neustarts oder beim Wechsel des Stromzählers) finden Sie in der Datei [help.md](./help.md).
46
51
 
47
52
  - **Sprachausgaben**
48
53
  - Ausgabe über Alexa oder Telegram
49
54
  - Ansagen bei Pumpenstart/-stopp, Fehlern oder Temperaturschwellen
50
55
 
51
- - **Systemcheck (Diagnosebereich)**
56
+ - **SystemCheck (Diagnosebereich)**
52
57
  Ab Version **0.2.0** enthält der Adapter einen neuen Diagnosebereich **SystemCheck**.
53
58
  Er bietet interne Debug-Logs, mit denen bestimmte Teilbereiche (z. B. Pumpen-, Solar- oder Temperatursteuerung) gezielt überwacht werden können.
54
59
 
@@ -66,7 +71,7 @@ Er ermöglicht die Automatisierung von Pumpen, Temperatur- und Solarsteuerung so
66
71
 
67
72
  1. Adapter über ioBroker Admin installieren.
68
73
  2. Instanz anlegen.
69
- 3. Konfiguration im Admin-Tab vornehmen: Pumpenleistung, Sensoren, Solar, Sprachausgaben, etc.
74
+ 3. Konfiguration im Admin-Tab vornehmen: Pumpenleistung, Sensoren, Solar, Sprachausgaben usw.
70
75
 
71
76
  ---
72
77
 
@@ -88,81 +93,52 @@ Die Konfiguration erfolgt über Tabs im Admin-Interface:
88
93
  - Rückspülerinnerung (Intervall in Tagen, Erinnerung über State)
89
94
  - Wartung Kesseldruck (maximaler Druck, Warnung bei Überschreitung)
90
95
  - Weitere Komfortfunktionen nach Praxistests
96
+ - Kesseldruck-Wartung / Drucksensor-Warnung
97
+ - PV-Überschuss-Steuerung (für z.B. Pumpe oder Wärmepumpe)
98
+ - Zweite Pumpe (z.B. Wärmetauscher)
99
+ - Statistikbereich
100
+ - Eigene Widgets für VIS/VIS2
101
+ - Erweiterung Wärmepumpen-/Heizlogik
102
+ - Steuerung von Poolbeleuchtung
103
+ - Steuerung von Poolrobotern
104
+ - Steuerung von elektrischen Ventilen
105
+ - Steuerung von Gegenstromanlagen
91
106
 
92
107
  ---
93
108
 
94
109
  ## Hinweis
95
110
 
96
111
  Der Adapter befindet sich aktuell in der Entwicklung.
97
- Funktionen können sich ändern, bitte regelmäßig den Changelog beachten.
112
+ Funktionen können sich ändern bitte regelmäßig den Changelog beachten.
98
113
 
99
114
  ---
100
115
 
101
116
  ## Dokumentation
102
- - [Help.md (ausführliche Beschreibung und Hinweise)](./help.md)
117
+ - [help.md (ausführliche Beschreibung und Hinweise)](./help.md)
103
118
 
104
119
  ---
105
120
 
106
121
  ## Changelog
107
- Auszug, vollständige Liste siehe `io-package.json`:
108
-
109
- ### 0.2.0 (2025-10-06)
110
- - Neuer Diagnosebereich **SystemCheck** für interne Debug-Logs und Analysen.
111
- - Möglichkeit, einzelne Adapterbereiche (z. B. Pumpe, Solar, Temperatur) gezielt zu überwachen.
112
- - Fortlaufendes Textprotokoll mit manueller Löschfunktion.
113
- - Alle bisherigen Debug-Funktionen aus `zz_debuglogs` in `SystemCheck.debug_logs` integriert.
114
- - Vorbereitung für zukünftige Diagnose-Erweiterungen (Export, Systemprüfung, Plausibilitäts-Checks).
115
-
116
-
117
- ### 0.1.2
118
- - Verbesserung: Beim Adapterstart werden nun die letzten bekannten Temperaturwerte aller aktiven Sensoren (z. B. Oberfläche, Kollektor, Außentemperatur usw.) automatisch übernommen.
119
- - Dadurch werden auch Sensoren korrekt angezeigt, die ihren Messwert nur selten aktualisieren (z. B. Homematic oder stromsparende Funk-Sensoren).
120
- - Keine Änderung am Verhalten der restlichen Logik, reine Komfort- und Stabilitätsverbesserung.
121
-
122
- ### 0.1.1
123
- - Fehlerbehebung: Endlosschleife zwischen `pump_switch` und externer Steckdose (`deviceId`) behoben, die bei bestimmten Smart-Steckdosen (z. B. Shelly, Tasmota, FritzDECT) auftreten konnte.
124
- - Verbesserte Stabilität im `pumpHelper` durch interne Rückkopplungsprüfung.
125
- - Keine Änderungen an bestehenden Konfigurationen erforderlich.
122
+ ### **WORK IN PROGRESS**
126
123
 
127
- ### 0.1.0
128
- - Sprachausgabe über **E-Mail** hinzugefügt (konfigurierbar: Instanz, Empfänger, Betreff).
129
- - Erweiterung der Instanz-Konfiguration im Tab „Sprachausgaben“.
130
- **Bugfixes**
131
- - Kleinere Korrekturen und Optimierungen in der Dokumentation (`help.md`).
132
- - Logging in `speechHelper` verbessert.
124
+ ### 0.2.2 (2025-10-08)
125
+ - Einführung einer **automatischen Rückspülerinnerung** (neuer Bereich im ControlHelper2)
126
+ - Erinnerung mit Intervall in Tagen und automatischer Rücksetzung nach erfolgter Rückspülung
127
+ - Log- und Sprachausgabe bei Fälligkeit oder Überfälligkeit
128
+ - Erweiterung des Control-Bereichs um zusätzliche States (backwash_reminder_active, interval_days, last_date, required)
129
+ - Anpassung der main.js und controlStates zur Integration
130
+ - Vorbereitung weiterer Wartungs- und Steuerungsfunktionen (Beleuchtung, Roboter, Ventile, Gegenstromanlage, Kesseldruck-Überwachung).
133
131
 
134
- ### 0.0.10
135
-
136
- Statusübersicht
137
- Ab Version 0.0.10 gibt es einen eigenen Bereich `status.*` mit folgenden Datenpunkten:
138
-
139
- - **status.summary** → Textübersicht (Pumpe, Modus, Temperaturen, Laufzeit, Umwälzung)
140
- - **status.overview_json** → Übersicht als JSON (maschinenlesbar)
141
- - **status.last_summary_update** → Zeitpunkt der letzten Aktualisierung
142
- - **status.pump_last_start** → Letzter Pumpenstart (Zeitstempel)
143
- - **status.pump_last_stop** → Letztes Pumpenende (Zeitstempel)
144
- - **status.pump_was_on_today** → Boolean, ob die Pumpe heute lief
145
- - **status.pump_today_count** → Anzahl der Starts heute (Reset um Mitternacht)
146
- - **status.system_ok** → Boolean, ob das System fehlerfrei läuft
147
- - **status.system_warning** → Boolean, wenn eine Warnung aktiv ist
148
- - **status.system_warning_text** → Beschreibung der aktiven Warnung
149
- - **status.season_active** → Anzeige, ob die Poolsaison aktiv ist
150
-
151
- Diese Datenpunkte sind besonders für **VIS/vis2, Alexa- oder Telegram-Ausgaben** gedacht, da sie eine schnelle Übersicht über den aktuellen Poolstatus bieten.
152
-
153
-
154
- ### 0.0.9
155
- - Laufzeit-, Umwälz-, Verbrauch-/Kosten- und Temperatur-Min/Max-States sind jetzt persistent
156
- (Werte bleiben nach Adapter-Neustart oder Stromausfall erhalten)
157
-
158
- ### 0.0.8
159
- - Hilfetab in der Instanzkonfiguration hinzugefügt (mit Link zur GitHub-Dokumentation)
132
+ ---
160
133
 
161
- ### 0.0.7
162
- - Help-Datei (`help.md`) und erste README-Version hinzugefügt
134
+ ### 0.2.0 (2025-10-06)
135
+ - Neuer Diagnosebereich **SystemCheck** für interne Debug-Logs und Analysen.
136
+ - Möglichkeit, einzelne Adapterbereiche (z. B. Pumpe, Solar, Temperatur) gezielt zu überwachen.
137
+ - Fortlaufendes Textprotokoll mit manueller Löschfunktion.
138
+ - Alle bisherigen Debug-Funktionen aus `zz_debuglogs` in `SystemCheck.debug_logs` integriert.
139
+ - Vorbereitung für zukünftige Diagnose-Erweiterungen (Export, Systemprüfung, Plausibilitäts-Checks).
163
140
 
164
- ### 0.0.1
165
- - initial release
141
+ *(ältere Versionen siehe [io-package.json](./io-package.json))*
166
142
 
167
143
  ---
168
144
 
@@ -174,7 +150,6 @@ Diese Datenpunkte sind besonders für **VIS/vis2, Alexa- oder Telegram-Ausgaben*
174
150
 
175
151
  ## Unterstützung der Adapterentwicklung
176
152
  Wenn Ihnen **ioBroker.poolcontrol** gefällt, denken Sie bitte über eine Spende nach:
177
-
178
153
  ➡️ [Unterstützen via PayPal](https://www.paypal.com/donate?business=dirk.bertin@t-online.de)
179
154
 
180
155
  ---
@@ -188,6 +163,6 @@ Der Nutzer ist für die **sichere Installation und den Betrieb seiner Hardware**
188
163
  ---
189
164
 
190
165
  ## License
191
- Copyright (c) 2025 DasBo1975 <dasbo1975@outlook.de>
166
+ Copyright (c) 2025 DasBo1975 <dasbo1975@outlook.de>
192
167
 
193
- MIT License
168
+ MIT License
package/io-package.json CHANGED
@@ -1,8 +1,33 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "poolcontrol",
4
- "version": "0.2.0",
4
+ "version": "0.2.2",
5
5
  "news": {
6
+ "0.2.2": {
7
+ "en": "Added automatic backwash reminder with speech and log notifications.",
8
+ "de": "Automatische Rückspülerinnerung mit Sprach- und Log-Benachrichtigung hinzugefügt.",
9
+ "ru": "Добавлено автоматическое напоминание о обратной промывке с голосовыми и журнальными уведомлениями.",
10
+ "pt": "Adicionado lembrete automático de retrolavagem com notificações de voz e registro.",
11
+ "nl": "Automatische terugspoelherinnering toegevoegd met spraak- en logmeldingen.",
12
+ "fr": "Ajout d’un rappel automatique de contre-lavage avec notifications vocales et journaux.",
13
+ "it": "Aggiunto promemoria automatico di controlavaggio con notifiche vocali e log.",
14
+ "es": "Recordatorio automático de contralavado añadido con notificaciones de voz y registro.",
15
+ "pl": "Dodano automatyczne przypomnienie o płukaniu wstecznym z powiadomieniami głosowymi i dziennikiem.",
16
+ "zh-cn": "添加了带语音和日志通知的自动反冲洗提醒。"
17
+ },
18
+ "0.2.1": {
19
+ "en": "Fixed the issue with invisible states for speech control and added proper internal variable handling.",
20
+ "de": "Behebung des Problems mit unsichtbaren States für die Sprachsteuerung und hinzugefügte korrekte Handhabung interner Variablen.",
21
+ "ru": "Исправлена проблема с невидимыми состояниями для управления речью и добавлена правильная обработка внутренних переменных.",
22
+ "pt": "Corrigido o problema com estados invisíveis para controle de fala e adicionada a manipulação adequada de variáveis internas.",
23
+ "nl": "Het probleem met onzichtbare toestanden voor spraakbesturing is opgelost en de juiste verwerking van interne variabelen toegevoegd.",
24
+ "fr": "Correction du problème des états invisibles pour le contrôle vocal et ajout d'un traitement correct des variables internes.",
25
+ "it": "Risolto il problema con gli stati invisibili per il controllo vocale e aggiunto un corretto trattamento delle variabili interne.",
26
+ "es": "Se solucionó el problema con los estados invisibles para el control de voz y se añadió el manejo adecuado de las variables internas.",
27
+ "pl": "Naprawiono problem z niewidzialnymi stanami dla kontroli głosowej i dodano prawidłowe przetwarzanie zmiennych wewnętrznych.",
28
+ "uk": "Виправлено проблему з невидимими станами для керування голосом та додано правильну обробку внутрішніх змінних.",
29
+ "zh-cn": "修复了语音控制的隐形状态问题,并添加了正确的内部变量处理。"
30
+ },
6
31
  "0.2.0": {
7
32
  "en": "New diagnostic area 'SystemCheck' for internal debug logs and future analysis tools.",
8
33
  "de": "Neuer Diagnosebereich 'SystemCheck' für interne Debug-Logs und künftige Analysefunktionen.",
@@ -41,34 +66,8 @@
41
66
  "pl": "Naprawiono nieskończoną pętlę między pump_switch a deviceId dla niektórych inteligentnych gniazdek",
42
67
  "uk": "Виправлено нескінченний цикл між pump_switch і deviceId для деяких розумних розеток",
43
68
  "zh-cn": "修复了某些智能插座中 pump_switch 与 deviceId 之间的无限循环"
44
- },
45
- "0.1.0": {
46
- "en": "Added speech output via E-Mail (configurable: instance, recipient, subject)",
47
- "de": "Sprachausgabe per E-Mail hinzugefügt (konfigurierbar: Instanz, Empfänger, Betreff)",
48
- "ru": "Добавлен вывод речи по электронной почте (настраивается: экземпляр, получатель, тема)",
49
- "pt": "Adicionada saída de fala por e-mail (configurável: instância, destinatário, assunto)",
50
- "nl": "Spraakuitvoer via e-mail toegevoegd (configureerbaar: instantie, ontvanger, onderwerp)",
51
- "fr": "Ajout de la sortie vocale par e-mail (configurable : instance, destinataire, sujet)",
52
- "it": "Aggiunta uscita vocale via e-mail (configurabile: istanza, destinatario, oggetto)",
53
- "es": "Se agregó salida de voz por correo electrónico (configurable: instancia, destinatario, asunto)",
54
- "pl": "Dodano wyjście głosowe przez e-mail (konfigurowalne: instancja, odbiorca, temat)",
55
- "uk": "Додано озвучення електронною поштою (налаштовується: екземпляр, одержувач, тема)",
56
- "zh-cn": "新增通过电子邮件的语音输出(可配置:实例、收件人、主题)"
57
- },
58
- "0.0.10": {
59
- "en": "Added extended status overview with pump statistics, system flags and JSON summary",
60
- "de": "Erweiterte Statusübersicht mit Pumpenstatistiken, Systemanzeigen und JSON-Zusammenfassung hinzugefügt",
61
- "ru": "Добавлен расширенный обзор состояния с насосной статистикой, системными флагами и JSON-резюме",
62
- "pt": "Adicionada visão geral de status estendida com estatísticas da bomba, sinalizadores do sistema e resumo em JSON",
63
- "nl": "Uitgebreide statusoverzicht toegevoegd met pompstatistieken, systeemindicatoren en JSON-samenvatting",
64
- "fr": "Aperçu du statut étendu ajouté avec statistiques de la pompe, indicateurs système et résumé JSON",
65
- "it": "Aggiunta panoramica dello stato estesa con statistiche della pompa, indicatori di sistema e riepilogo JSON",
66
- "es": "Añadida vista general de estado extendida con estadísticas de la bomba, indicadores del sistema y resumen en JSON",
67
- "pl": "Dodano rozszerzony przegląd statusu ze statystykami pompy, flagami systemowymi i podsumowaniem JSON",
68
- "uk": "Додано розширений огляд статусу зі статистикою насоса, системними прапорцями та зведенням JSON",
69
- "zh-cn": "新增扩展状态概览,包括泵统计、系统标志和 JSON 摘要"
70
- }
71
- },
69
+ }
70
+ },
72
71
  "titleLang": {
73
72
  "en": "PoolControl",
74
73
  "de": "PoolControl",
@@ -115,6 +114,11 @@
115
114
  "extIcon": "https://raw.githubusercontent.com/DasBo1975/ioBroker.poolcontrol/main/admin/poolcontrol.png",
116
115
  "readme": "https://github.com/DasBo1975/ioBroker.poolcontrol/blob/main/README.md",
117
116
  "loglevel": "info",
117
+ "ignoreLogs": [
118
+ "State .*speech\\.solar_active.* has no existing object",
119
+ "State .*speech\\.frost_active.* has no existing object",
120
+ "State .*speech\\.time_active.* has no existing object"
121
+ ],
118
122
  "tier": 3,
119
123
  "mode": "daemon",
120
124
  "type": "climate-control",
@@ -141,5 +145,5 @@
141
145
  },
142
146
  "objects": [],
143
147
  "instanceObjects": []
144
- }
148
+ }
145
149
 
@@ -29,13 +29,13 @@ const consumptionHelper = {
29
29
  this.price = parseFloat(String(adapter.config.energy_price_eur_kwh).replace(',', '.')) || 0;
30
30
  this.lastKnownPrice = this.price;
31
31
 
32
- this.adapter.log.info(`[consumptionHelper] Strompreis: ${this.price} €/kWh`);
32
+ this.adapter.log.debug(`[consumptionHelper] Strompreis: ${this.price} €/kWh`);
33
33
 
34
34
  if (this.energyId) {
35
35
  adapter.subscribeForeignStates(this.energyId);
36
- adapter.log.info(`[consumptionHelper] Überwache externen kWh-Zähler: ${this.energyId}`);
36
+ adapter.log.debug(`[consumptionHelper] Überwache externen kWh-Zähler: ${this.energyId}`);
37
37
  } else {
38
- adapter.log.info('[consumptionHelper] Kein externer kWh-Zähler konfiguriert → Verbrauchslogik inaktiv.');
38
+ adapter.log.debug('[consumptionHelper] Kein externer kWh-Zähler konfiguriert → Verbrauchslogik inaktiv.');
39
39
  }
40
40
 
41
41
  this._scheduleDailyReset();
@@ -51,7 +51,7 @@ const consumptionHelper = {
51
51
  this.baseTotalKwh = totalKwh;
52
52
  this.baseTotalEur = totalEur;
53
53
 
54
- this.adapter.log.info(
54
+ this.adapter.log.debug(
55
55
  `[consumptionHelper] Kosten-Basis geladen → ${this.baseTotalEur.toFixed(
56
56
  2,
57
57
  )} € bei ${this.baseTotalKwh.toFixed(3)} kWh`,
@@ -169,7 +169,7 @@ const consumptionHelper = {
169
169
  this.baselines.month = totalNow - (month || 0);
170
170
  this.baselines.year = totalNow - (year || 0);
171
171
 
172
- this.adapter.log.info(`[consumptionHelper] Baselines geladen: ${JSON.stringify(this.baselines)}`);
172
+ this.adapter.log.debug(`[consumptionHelper] Baselines geladen: ${JSON.stringify(this.baselines)}`);
173
173
  },
174
174
 
175
175
  // NEU: Baselines aus States rekonstruieren (beim Adapterstart)
@@ -186,7 +186,7 @@ const consumptionHelper = {
186
186
  this.baselines.month = totalNow - month;
187
187
  this.baselines.year = totalNow - year;
188
188
 
189
- this.adapter.log.info(`[consumptionHelper] Bestehende Verbrauchswerte wiederhergestellt.`);
189
+ this.adapter.log.debug(`[consumptionHelper] Bestehende Verbrauchswerte wiederhergestellt.`);
190
190
  } catch (err) {
191
191
  this.adapter.log.warn(
192
192
  `[consumptionHelper] Fehler beim Wiederherstellen der Verbrauchsstände: ${err.message}`,