iobroker.poolcontrol 1.2.12 → 1.2.14
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 +10 -0
- package/admin/i18n/de/translations.json +0 -2
- package/admin/i18n/es/translations.json +0 -2
- package/admin/i18n/fr/translations.json +0 -2
- package/admin/i18n/it/translations.json +0 -2
- package/admin/i18n/nl/translations.json +0 -2
- package/admin/i18n/pl/translations.json +0 -2
- package/admin/i18n/pt/translations.json +0 -2
- package/admin/i18n/ru/translations.json +0 -2
- package/admin/i18n/uk/translations.json +0 -2
- package/admin/i18n/zh-cn/translations.json +0 -2
- package/io-package.json +14 -27
- package/lib/helpers/aiChemistryHelpHelper.js +146 -143
- package/lib/i18n/de.json +69 -0
- package/lib/i18n/en.json +141 -0
- package/lib/i18n/es.json +141 -0
- package/lib/i18n/fr.json +141 -0
- package/lib/i18n/it.json +141 -0
- package/lib/i18n/nl.json +141 -0
- package/lib/i18n/pl.json +141 -0
- package/lib/i18n/pt.json +141 -0
- package/lib/i18n/ru.json +141 -0
- package/lib/i18n/uk.json +141 -0
- package/lib/i18n/zh-cn.json +141 -0
- package/lib/stateDefinitions/actuatorsStates.js +132 -19
- package/lib/stateDefinitions/aiChemistryHelpStates.js +58 -37
- package/lib/stateDefinitions/aiStates.js +201 -31
- package/lib/stateDefinitions/consumptionStates.js +140 -14
- package/lib/stateDefinitions/controlStates.js +120 -34
- package/lib/stateDefinitions/debugLogStates.js +32 -10
- package/lib/stateDefinitions/generalStates.js +28 -4
- package/lib/stateDefinitions/heatStates.js +132 -17
- package/lib/stateDefinitions/infoStates.js +20 -5
- package/lib/stateDefinitions/photovoltaicStates.js +78 -19
- package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
- package/lib/stateDefinitions/pumpStates.js +100 -15
- package/lib/stateDefinitions/pumpStates2.js +36 -9
- package/lib/stateDefinitions/pumpStates3.js +92 -23
- package/lib/stateDefinitions/pumpStates4.js +120 -30
- package/lib/stateDefinitions/runtimeStates.js +74 -10
- package/lib/stateDefinitions/solarStates.js +68 -9
- package/lib/stateDefinitions/speechStates.js +133 -18
- package/lib/stateDefinitions/statisticsStates.js +167 -24
- package/lib/stateDefinitions/statusStates.js +92 -12
- package/lib/stateDefinitions/temperatureStates.js +117 -18
- package/lib/stateDefinitions/timeStates.js +43 -12
- package/main.js +4 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -189,6 +189,16 @@ New features are added regularly – please refer to the changelog.
|
|
|
189
189
|
|
|
190
190
|
## Changelog
|
|
191
191
|
|
|
192
|
+
### 1.2.14
|
|
193
|
+
Release: 22.03.2026
|
|
194
|
+
- ### add i18n support for chemistry help texts
|
|
195
|
+
|
|
196
|
+
### 1.2.13
|
|
197
|
+
Release: 22.03.2026
|
|
198
|
+
- Added multilingual state names and descriptions (DE/EN)
|
|
199
|
+
- Improved consistency of all state texts
|
|
200
|
+
- Minor text and structure refinements
|
|
201
|
+
|
|
192
202
|
### 1.2.12
|
|
193
203
|
Release: 21.03.2026
|
|
194
204
|
- Repository cleanup and fixes for ioBroker repository checker
|
package/io-package.json
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "poolcontrol",
|
|
4
|
-
"version": "1.2.
|
|
4
|
+
"version": "1.2.14",
|
|
5
5
|
"news": {
|
|
6
|
+
"1.2.14": {
|
|
7
|
+
"en": "Add i18n support for chemistry help (common.states and help texts), fix React issues caused by invalid translations, and improve multilingual user guidance.",
|
|
8
|
+
"de": "i18n-Unterstützung für Chemie-Hilfe hinzugefügt (common.states und Hilfetexte), React-Fehler durch fehlerhafte Übersetzungen behoben und mehrsprachige Benutzerführung verbessert.",
|
|
9
|
+
"ru": "Добавьте поддержку i18n для справки по химии (common.states и справочные тексты), исправьте проблемы React, вызванные неверными переводами, и улучшите многоязычное руководство пользователя.",
|
|
10
|
+
"pt": "Adicione suporte i18n para ajuda química (common.states e textos de ajuda), corrija problemas do React causados por traduções inválidas e melhore a orientação multilíngue do usuário.",
|
|
11
|
+
"nl": "Voeg i18n-ondersteuning toe voor scheikundige hulp (common.states en helpteksten), repareer React-problemen veroorzaakt door ongeldige vertalingen en verbeter de meertalige gebruikersbegeleiding.",
|
|
12
|
+
"fr": "Ajoutez la prise en charge d'i18n pour l'aide chimique (common.states et textes d'aide), corrigez les problèmes de React causés par des traductions non valides et améliorez le guidage utilisateur multilingue.",
|
|
13
|
+
"it": "Aggiungi il supporto i18n per la guida in chimica (common.states e testi di aiuto), risolvi i problemi di React causati da traduzioni non valide e migliora la guida utente multilingue.",
|
|
14
|
+
"es": "Agregue soporte i18n para ayuda sobre química (estados comunes y textos de ayuda), solucione problemas de React causados por traducciones no válidas y mejore la guía del usuario multilingüe.",
|
|
15
|
+
"pl": "Dodaj obsługę i18n dla pomocy chemicznej (stany wspólne i teksty pomocy), rozwiąż problemy z React spowodowane nieprawidłowymi tłumaczeniami i ulepsz wielojęzyczne wskazówki dla użytkownika.",
|
|
16
|
+
"uk": "Додайте підтримку i18n для довідки з хімії (common.states і тексти довідки), виправте проблеми з React, викликані недійсними перекладами, і покращте багатомовні інструкції для користувачів.",
|
|
17
|
+
"zh-cn": "添加对化学帮助(common.states 和帮助文本)的 i18n 支持,修复无效翻译导致的 React 问题,并改进多语言用户指南。"
|
|
18
|
+
},
|
|
6
19
|
"1.2.12": {
|
|
7
20
|
"en": "Repository cleanup and fixes for ioBroker repository checker. Restored required native object in io-package.json, removed invalid properties and updated README.",
|
|
8
21
|
"de": "Repository-Bereinigung und Fehlerbehebungen für den ioBroker Repository-Checker. Erforderliches native-Objekt in der io-package.json wiederhergestellt, ungültige Eigenschaften entfernt und README aktualisiert.",
|
|
@@ -16,19 +29,6 @@
|
|
|
16
29
|
"uk": "Очищення сховища та виправлення для засобу перевірки сховища ioBroker. Відновлено необхідний рідний об’єкт у io-package.json, видалено недійсні властивості та оновлено README.",
|
|
17
30
|
"zh-cn": "ioBroker 存储库检查器的存储库清理和修复。恢复了 io-package.json 中所需的本机对象,删除了无效属性并更新了 README。"
|
|
18
31
|
},
|
|
19
|
-
"1.2.11": {
|
|
20
|
-
"en": "Repository cleanup and fixes for ioBroker repository checker. Removed invalid properties from io-package.json and updated README.",
|
|
21
|
-
"de": "Repository-Bereinigung und Fehlerbehebungen für den ioBroker Repository-Checker. Ungültige Eigenschaften aus der io-package.json entfernt und README aktualisiert.",
|
|
22
|
-
"ru": "Очистка репозитория и исправления для средства проверки репозитория ioBroker. Удалены недопустимые свойства из io-package.json и обновлен README.",
|
|
23
|
-
"pt": "Limpeza de repositório e correções para verificador de repositório ioBroker. Propriedades inválidas removidas de io-package.json e README atualizado.",
|
|
24
|
-
"nl": "Opschonen van opslagplaatsen en oplossingen voor ioBroker-repositorycontrole. Ongeldige eigenschappen uit io-package.json verwijderd en README bijgewerkt.",
|
|
25
|
-
"fr": "Nettoyage du référentiel et correctifs pour le vérificateur de référentiel ioBroker. Suppression des propriétés invalides de io-package.json et mise à jour du README.",
|
|
26
|
-
"it": "Pulizia del repository e correzioni per il controllo del repository ioBroker. Rimosse proprietà non valide da io-package.json e README aggiornato.",
|
|
27
|
-
"es": "Limpieza del repositorio y correcciones para el verificador del repositorio de ioBroker. Se eliminaron propiedades no válidas de io-package.json y se actualizó README.",
|
|
28
|
-
"pl": "Oczyszczenie repozytorium i poprawki dla modułu sprawdzania repozytorium ioBroker. Usunięto nieprawidłowe właściwości z io-package.json i zaktualizowano plik README.",
|
|
29
|
-
"uk": "Очищення сховища та виправлення для засобу перевірки сховища ioBroker. Видалено недійсні властивості з io-package.json і оновлено README.",
|
|
30
|
-
"zh-cn": "ioBroker 存储库检查器的存储库清理和修复。从 io-package.json 中删除了无效属性并更新了 README。"
|
|
31
|
-
},
|
|
32
32
|
"1.2.10": {
|
|
33
33
|
"en": "Improved German translations and terminology in admin UI (jsonConfig). Fixed incorrect or misleading sensor names (e.g. flow vs temperature sensors) and improved overall wording and consistency.",
|
|
34
34
|
"de": "Verbesserte deutsche Übersetzungen und Begrifflichkeiten in der Admin-Oberfläche (jsonConfig). Falsche bzw. missverständliche Sensorbezeichnungen (z. B. Flow vs. Temperatursensoren) korrigiert und allgemeine Formulierungen sowie Konsistenz verbessert.",
|
|
@@ -67,19 +67,6 @@
|
|
|
67
67
|
"pl": "Poprawione definicje ról dla stanów zapisywalnych zgodnie z wytycznymi ioBroker.",
|
|
68
68
|
"uk": "Виправлено визначення ролей для записуваних станів відповідно до вказівок ioBroker.",
|
|
69
69
|
"zh-cn": "根据 ioBroker 指南更正了可写状态的角色定义。"
|
|
70
|
-
},
|
|
71
|
-
"1.2.6": {
|
|
72
|
-
"en": "Fixed adapter checker issues, converted remaining log messages to English, updated release-script plugins and dependabot configuration.",
|
|
73
|
-
"de": "Adapter-Checker-Probleme behoben, verbleibende Logmeldungen auf Englisch umgestellt, release-script Plugins und Dependabot-Konfiguration aktualisiert.",
|
|
74
|
-
"ru": "Исправлены проблемы с проверкой адаптера, преобразованы оставшиеся сообщения журнала на английский язык, обновлены плагины сценариев выпуска и конфигурация зависимостей.",
|
|
75
|
-
"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.",
|
|
76
|
-
"nl": "Problemen met de adaptercontrole opgelost, resterende logberichten naar het Engels geconverteerd, release-scriptplug-ins en dependabot-configuratie bijgewerkt.",
|
|
77
|
-
"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.",
|
|
78
|
-
"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.",
|
|
79
|
-
"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.",
|
|
80
|
-
"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.",
|
|
81
|
-
"uk": "Виправлено проблеми перевірки адаптера, перетворено решту повідомлень журналу на англійську мову, оновлено плагіни сценарію випуску та конфігурацію dependabot.",
|
|
82
|
-
"zh-cn": "修复了适配器检查器问题,将剩余日志消息转换为英语,更新了发布脚本插件和 dependentabot 配置。"
|
|
83
70
|
}
|
|
84
71
|
},
|
|
85
72
|
"titleLang": {
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
|
+
|
|
3
|
+
const { I18n } = require('@iobroker/adapter-core');
|
|
4
|
+
|
|
2
5
|
/* eslint-disable jsdoc/require-param-description */
|
|
3
6
|
/* eslint-disable jsdoc/require-returns-description */
|
|
4
7
|
|
|
@@ -150,40 +153,40 @@ const aiChemistryHelpHelper = {
|
|
|
150
153
|
*/
|
|
151
154
|
_getHelpText(issue) {
|
|
152
155
|
const commonFooter =
|
|
153
|
-
|
|
154
|
-
'
|
|
155
|
-
'
|
|
156
|
-
'
|
|
156
|
+
`\n\n${I18n.t('Important:')}\n` +
|
|
157
|
+
`• ${I18n.t('Always proceed step by step: measure first → correct in small steps → let the water circulate → measure again.')}\n` +
|
|
158
|
+
`• ${I18n.t('Always follow the product instructions (concentration and pool volume may differ).')}\n` +
|
|
159
|
+
`• ${I18n.t('If you are unsure, correct more slowly rather than forcing it.')}\n`;
|
|
157
160
|
|
|
158
161
|
const map = {
|
|
159
162
|
// ----------------------------------------------------------
|
|
160
163
|
// pH
|
|
161
164
|
// ----------------------------------------------------------
|
|
162
165
|
ph_low:
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
`•
|
|
168
|
-
`•
|
|
169
|
-
`•
|
|
170
|
-
|
|
171
|
-
`• pH
|
|
172
|
-
`•
|
|
166
|
+
`${I18n.t('Problem: pH value is too low (water is too acidic).')}\n\n` +
|
|
167
|
+
`${I18n.t('What this means:')}\n` +
|
|
168
|
+
`${I18n.t('A pH value that is too low can attack materials (metals / built-in parts) more strongly and can increase irritation during bathing. It can also make the overall water balance unstable.')}\n\n` +
|
|
169
|
+
`${I18n.t('Common causes:')}\n` +
|
|
170
|
+
`• ${I18n.t('A lot of rainwater / fresh water (can acidify the water)')}\n` +
|
|
171
|
+
`• ${I18n.t('Low alkalinity (buffer missing → pH drops faster)')}\n` +
|
|
172
|
+
`• ${I18n.t('Frequent corrections / backwashing / water changes')}\n\n` +
|
|
173
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
174
|
+
`• ${I18n.t('Raise the pH gradually with a pH increaser / pH plus product.')}\n` +
|
|
175
|
+
`• ${I18n.t('If the pH keeps dropping again, also check total alkalinity / the buffer, otherwise every pH correction will only hold for a short time.')}\n${
|
|
173
176
|
commonFooter
|
|
174
177
|
}`,
|
|
175
178
|
|
|
176
179
|
ph_high:
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
`•
|
|
182
|
-
`•
|
|
183
|
-
`•
|
|
184
|
-
|
|
185
|
-
`•
|
|
186
|
-
`•
|
|
180
|
+
`${I18n.t('Problem: pH value is too high (water is too alkaline).')}\n\n` +
|
|
181
|
+
`${I18n.t('What this means:')}\n` +
|
|
182
|
+
`${I18n.t('If the pH value is too high, chlorine / disinfection often works less effectively and cloudiness / precipitation (for example lime) can occur more easily. Eyes and skin may also become irritated.')}\n\n` +
|
|
183
|
+
`${I18n.t('Common causes:')}\n` +
|
|
184
|
+
`• ${I18n.t('Strong outgassing / a lot of bubbling (CO₂ escapes → pH rises)')}\n` +
|
|
185
|
+
`• ${I18n.t('Hard water / high alkalinity')}\n` +
|
|
186
|
+
`• ${I18n.t('Some pools / materials can initially push the pH upward')}\n\n` +
|
|
187
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
188
|
+
`• ${I18n.t('Lower the pH in small steps with a pH reducer / pH minus product.')}\n` +
|
|
189
|
+
`• ${I18n.t('If the pH repeatedly rises again, also consider alkalinity / water hardness, because this strongly affects stability.')}\n${
|
|
187
190
|
commonFooter
|
|
188
191
|
}`,
|
|
189
192
|
|
|
@@ -191,118 +194,118 @@ const aiChemistryHelpHelper = {
|
|
|
191
194
|
// Chlor
|
|
192
195
|
// ----------------------------------------------------------
|
|
193
196
|
chlor_low:
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
`•
|
|
199
|
-
`•
|
|
200
|
-
`• pH
|
|
201
|
-
|
|
202
|
-
`•
|
|
203
|
-
`•
|
|
197
|
+
`${I18n.t('Problem: Chlorine level is too low.')}\n\n` +
|
|
198
|
+
`${I18n.t('What this means:')}\n` +
|
|
199
|
+
`${I18n.t('Too little effective chlorine can allow germs and algae to multiply more easily. Often the first signs are tired-looking water: less clarity, more odor, and deposits forming faster.')}\n\n` +
|
|
200
|
+
`${I18n.t('Common causes:')}\n` +
|
|
201
|
+
`• ${I18n.t('A lot of sun / UV exposure (chlorine breaks down faster)')}\n` +
|
|
202
|
+
`• ${I18n.t('High bathing load (sweat / organic matter consumes chlorine)')}\n` +
|
|
203
|
+
`• ${I18n.t('Unfavorable pH value (chlorine works less effectively)')}\n\n` +
|
|
204
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
205
|
+
`• ${I18n.t('Bring disinfection back into a normal range and check the pH in parallel.')}\n` +
|
|
206
|
+
`• ${I18n.t('If chlorine keeps dropping permanently, also check causes such as organic load, filter condition, and circulation.')}\n${
|
|
204
207
|
commonFooter
|
|
205
208
|
}`,
|
|
206
209
|
|
|
207
210
|
chlor_high:
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
`•
|
|
213
|
-
`•
|
|
214
|
-
|
|
215
|
-
`•
|
|
216
|
-
`•
|
|
217
|
-
`•
|
|
211
|
+
`${I18n.t('Problem: Chlorine level is too high.')}\n\n` +
|
|
212
|
+
`${I18n.t('What this means:')}\n` +
|
|
213
|
+
`${I18n.t('A chlorine level that is too high can irritate eyes and skin, cause strong odor, and put more stress on materials and covers. In this situation, adding even more chemicals is almost never the right direction.')}\n\n` +
|
|
214
|
+
`${I18n.t('Common causes:')}\n` +
|
|
215
|
+
`• ${I18n.t('Too much chlorine added / shock treatment too high')}\n` +
|
|
216
|
+
`• ${I18n.t('Too little natural breakdown (cover on + little sun)')}\n\n` +
|
|
217
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
218
|
+
`• ${I18n.t('Do not add more chlorine.')}\n` +
|
|
219
|
+
`• ${I18n.t('Let time do the work (sun / UV reduces chlorine) and keep the water circulating well.')}\n` +
|
|
220
|
+
`• ${I18n.t('Only evaluate further corrections (for example pH) once chlorine is back in a normal range.')}\n${
|
|
218
221
|
commonFooter
|
|
219
222
|
}`,
|
|
220
223
|
|
|
221
224
|
chlor_no_effect:
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
`•
|
|
227
|
-
`•
|
|
228
|
-
`•
|
|
229
|
-
|
|
230
|
-
`•
|
|
231
|
-
`•
|
|
232
|
-
`•
|
|
225
|
+
`${I18n.t('Problem: Chlorine level does not rise despite dosing.')}\n\n` +
|
|
226
|
+
`${I18n.t('What this means:')}\n` +
|
|
227
|
+
`${I18n.t('This often happens when the water has a high chlorine demand: the added chlorine is consumed immediately before a stable free chlorine level can remain measurable.')}\n\n` +
|
|
228
|
+
`${I18n.t('Common causes:')}\n` +
|
|
229
|
+
`• ${I18n.t('High organic load (dirt, biofilm, heavy use)')}\n` +
|
|
230
|
+
`• ${I18n.t('Early / invisible algae growth')}\n` +
|
|
231
|
+
`• ${I18n.t('Strongly incorrect pH value (effectiveness reduced)')}\n\n` +
|
|
232
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
233
|
+
`• ${I18n.t('First check the basic values (pH, filter / circulation, visual inspection for deposits).')}\n` +
|
|
234
|
+
`• ${I18n.t('Get the water clean again (clean / backwash the filter, brush the pool), so chlorine is not only being consumed immediately.')}\n` +
|
|
235
|
+
`• ${I18n.t('If no effect can be measured permanently, there is often an oxidative demand present (chlorine is immediately bound / broken down) – then only consistent reduction of the causes and measuring again will help.')}\n${
|
|
233
236
|
commonFooter
|
|
234
237
|
}`,
|
|
235
238
|
|
|
236
239
|
chlor_smell:
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
`•
|
|
242
|
-
`•
|
|
243
|
-
`•
|
|
244
|
-
|
|
245
|
-
`•
|
|
246
|
-
`•
|
|
240
|
+
`${I18n.t('Problem: Strong chlorine smell despite the measured value.')}\n\n` +
|
|
241
|
+
`${I18n.t('What this means:')}\n` +
|
|
242
|
+
`${I18n.t('The typical indoor pool smell often does not come from too much good chlorine, but from bound chlorine compounds (chloramines). These are formed when chlorine combines with nitrogen / organic matter from sweat and similar contamination.')}\n\n` +
|
|
243
|
+
`${I18n.t('Common causes:')}\n` +
|
|
244
|
+
`• ${I18n.t('High bathing load / organic input')}\n` +
|
|
245
|
+
`• ${I18n.t('Too little fresh water / breakdown / filter care')}\n` +
|
|
246
|
+
`• ${I18n.t('Poor ventilation (for indoor pools) increases the perceived smell')}\n\n` +
|
|
247
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
248
|
+
`• ${I18n.t('The goal is to reduce bound contamination: good circulation / filtration, pool cleaning, and possibly a fresh water share.')}\n` +
|
|
249
|
+
`• ${I18n.t('Also check the pH in parallel, because an incorrect pH further reduces disinfection performance.')}\n${commonFooter}`,
|
|
247
250
|
|
|
248
251
|
// ----------------------------------------------------------
|
|
249
252
|
// Wasserbild / Optik
|
|
250
253
|
// ----------------------------------------------------------
|
|
251
254
|
water_green:
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
`•
|
|
257
|
-
`• pH
|
|
258
|
-
`•
|
|
259
|
-
`•
|
|
260
|
-
|
|
261
|
-
`•
|
|
262
|
-
`•
|
|
263
|
-
`•
|
|
255
|
+
`${I18n.t('Problem: Water is green.')}\n\n` +
|
|
256
|
+
`${I18n.t('What this means:')}\n` +
|
|
257
|
+
`${I18n.t('Green water is very often a sign of algae growth (often caused by too little effective chlorine and / or poor circulation).')}\n\n` +
|
|
258
|
+
`${I18n.t('Common causes:')}\n` +
|
|
259
|
+
`• ${I18n.t('Free chlorine too low or already consumed')}\n` +
|
|
260
|
+
`• ${I18n.t('pH too high → chlorine works much less effectively')}\n` +
|
|
261
|
+
`• ${I18n.t('Insufficient filter / circulation or dirty filter')}\n` +
|
|
262
|
+
`• ${I18n.t('High temperature + sun (algae growth is encouraged)')}\n\n` +
|
|
263
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
264
|
+
`• ${I18n.t('Check the water values (especially pH and chlorine) and improve circulation / filter condition.')}\n` +
|
|
265
|
+
`• ${I18n.t('Brush / vacuum the pool thoroughly so deposits do not survive.')}\n` +
|
|
266
|
+
`• ${I18n.t('Then let the filter run patiently until the water becomes clear again.')}\n${commonFooter}`,
|
|
264
267
|
|
|
265
268
|
water_cloudy:
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
`•
|
|
271
|
-
`• pH/
|
|
272
|
-
`•
|
|
273
|
-
`•
|
|
274
|
-
|
|
275
|
-
`•
|
|
276
|
-
`•
|
|
277
|
-
`•
|
|
269
|
+
`${I18n.t('Problem: Water is cloudy / gray / milky.')}\n\n` +
|
|
270
|
+
`${I18n.t('What this means:')}\n` +
|
|
271
|
+
`${I18n.t('Cloudy water is often caused by fine suspended particles or chemical imbalances (for example pH / alkalinity / lime) that the filter cannot handle well.')}\n\n` +
|
|
272
|
+
`${I18n.t('Common causes:')}\n` +
|
|
273
|
+
`• ${I18n.t('Dirty filter / filter runtime too short')}\n` +
|
|
274
|
+
`• ${I18n.t('pH / alkalinity outside the stable range')}\n` +
|
|
275
|
+
`• ${I18n.t('High water hardness (lime) – especially together with high pH')}\n` +
|
|
276
|
+
`• ${I18n.t('Too little disinfection → biological cloudiness is possible')}\n\n` +
|
|
277
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
278
|
+
`• ${I18n.t('Check the filter condition (cleaning / backwashing) and ensure sufficient circulation.')}\n` +
|
|
279
|
+
`• ${I18n.t('Check the basic values pH / chlorine and stabilize them.')}\n` +
|
|
280
|
+
`• ${I18n.t('If the cloudiness looks mineral (milky / white), also consider water hardness / balance.')}\n${
|
|
278
281
|
commonFooter
|
|
279
282
|
}`,
|
|
280
283
|
|
|
281
284
|
algae_visible:
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
`•
|
|
287
|
-
`• pH
|
|
288
|
-
`•
|
|
289
|
-
|
|
290
|
-
`•
|
|
291
|
-
`•
|
|
292
|
-
`•
|
|
285
|
+
`${I18n.t('Problem: Algae visible on walls or floor.')}\n\n` +
|
|
286
|
+
`${I18n.t('What this means:')}\n` +
|
|
287
|
+
`${I18n.t('Visible algae are a clear sign that disinfection / circulation was not sufficient or that local dead zones are forming (corners / pipes).')}\n\n` +
|
|
288
|
+
`${I18n.t('Common causes:')}\n` +
|
|
289
|
+
`• ${I18n.t('Chlorine too low or already consumed')}\n` +
|
|
290
|
+
`• ${I18n.t('pH too high (chlorine works less effectively)')}\n` +
|
|
291
|
+
`• ${I18n.t('Too little brushing / pool care, poor circulation')}\n\n` +
|
|
292
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
293
|
+
`• ${I18n.t('Mechanics first: brush / vacuum consistently, maintain the filter.')}\n` +
|
|
294
|
+
`• ${I18n.t('Then stabilize the values (pH / chlorine) and improve circulation.')}\n` +
|
|
295
|
+
`• ${I18n.t('The goal is to remove algae not only chemically, but also mechanically.')}\n${commonFooter}`,
|
|
293
296
|
|
|
294
297
|
foam_on_surface:
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
`•
|
|
300
|
-
`•
|
|
301
|
-
`•
|
|
302
|
-
|
|
303
|
-
`•
|
|
304
|
-
`• pH/
|
|
305
|
-
`•
|
|
298
|
+
`${I18n.t('Problem: Foam on the water surface.')}\n\n` +
|
|
299
|
+
`${I18n.t('What this means:')}\n` +
|
|
300
|
+
`${I18n.t('Foam is often caused by surfactants / organic matter (sunscreen, body care products, cleaning residues), some algaecides / polymers, or also air in the system. It is usually not a chlorine problem, but rather a substances-in-the-water problem.')}\n\n` +
|
|
301
|
+
`${I18n.t('Common causes:')}\n` +
|
|
302
|
+
`• ${I18n.t('A lot of lotions / oils in the water, high organic load')}\n` +
|
|
303
|
+
`• ${I18n.t('Certain anti-algae products can promote foam')}\n` +
|
|
304
|
+
`• ${I18n.t('Air entering the system (small leaks) → foam appears stronger')}\n\n` +
|
|
305
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
306
|
+
`• ${I18n.t('Skim off the surface, keep the filter clean, and reduce organic input.')}\n` +
|
|
307
|
+
`• ${I18n.t('Keep an eye on pH / chlorine as well (stable values help break down organic matter faster).')}\n` +
|
|
308
|
+
`• ${I18n.t('If foam remains permanently, systematically narrow down the source (products / contamination / technology).')}\n${
|
|
306
309
|
commonFooter
|
|
307
310
|
}`,
|
|
308
311
|
|
|
@@ -310,40 +313,40 @@ const aiChemistryHelpHelper = {
|
|
|
310
313
|
// Badegefühl / Stabilität
|
|
311
314
|
// ----------------------------------------------------------
|
|
312
315
|
skin_eye_irritation:
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
`• pH
|
|
318
|
-
`•
|
|
319
|
-
`•
|
|
320
|
-
|
|
321
|
-
`•
|
|
322
|
-
`•
|
|
323
|
-
`•
|
|
316
|
+
`${I18n.t('Problem: Skin or eye irritation while swimming.')}\n\n` +
|
|
317
|
+
`${I18n.t('What this means:')}\n` +
|
|
318
|
+
`${I18n.t('Irritation can have several causes: pH that is too high or very low, too high a disinfectant concentration, or bound chlorine compounds (chloramines) caused by organic contamination.')}\n\n` +
|
|
319
|
+
`${I18n.t('Common causes:')}\n` +
|
|
320
|
+
`• ${I18n.t('pH outside the comfortable range')}\n` +
|
|
321
|
+
`• ${I18n.t('Chlorine clearly too high')}\n` +
|
|
322
|
+
`• ${I18n.t('Chlorine smell / chloramines caused by strong organic input')}\n\n` +
|
|
323
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
324
|
+
`• ${I18n.t('Measure first (pH and chlorine) and bring the values back into a normal range.')}\n` +
|
|
325
|
+
`• ${I18n.t('Keep the pool / filter clean so that organic contamination does not turn into bound compounds.')}\n` +
|
|
326
|
+
`• ${I18n.t('If irritation is strong, pause swimming until the water values are stable.')}\n${commonFooter}`,
|
|
324
327
|
|
|
325
328
|
values_unstable:
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
`•
|
|
331
|
-
`•
|
|
332
|
-
`•
|
|
333
|
-
`•
|
|
334
|
-
|
|
335
|
-
`•
|
|
336
|
-
`•
|
|
329
|
+
`${I18n.t('Problem: Water values are often unstable (change quickly).')}\n\n` +
|
|
330
|
+
`${I18n.t('What this means:')}\n` +
|
|
331
|
+
`${I18n.t('If pH / chlorine fluctuate strongly all the time, the water often lacks stability: the buffer (alkalinity) is too low / too high, the load changes frequently, or circulation / filtration is not constant enough.')}\n\n` +
|
|
332
|
+
`${I18n.t('Common causes:')}\n` +
|
|
333
|
+
`• ${I18n.t('Total alkalinity too low → pH jumps / tips over quickly')}\n` +
|
|
334
|
+
`• ${I18n.t('Many small corrections without enough circulation time')}\n` +
|
|
335
|
+
`• ${I18n.t('Poor filter condition / filter times too short')}\n` +
|
|
336
|
+
`• ${I18n.t('Strong external influences (rain, heat, heavy use)')}\n\n` +
|
|
337
|
+
`${I18n.t('Typical corrective direction:')}\n` +
|
|
338
|
+
`• ${I18n.t('First get the basics stable (buffer / filter / regularity), then only fine-tune.')}\n` +
|
|
339
|
+
`• ${I18n.t('Always correct in small steps and allow enough time for mixing.')}\n${commonFooter}`,
|
|
337
340
|
|
|
338
341
|
unknown_problem:
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
`1)
|
|
342
|
-
`2)
|
|
343
|
-
`3)
|
|
344
|
-
|
|
345
|
-
`•
|
|
346
|
-
`•
|
|
342
|
+
`${I18n.t('Problem: It is unclear what exactly is wrong.')}\n\n` +
|
|
343
|
+
`${I18n.t('Procedure (minimal and sensible):')}\n` +
|
|
344
|
+
`1) ${I18n.t('Visual check: Green? Cloudy? Deposits? Foam?')}\n` +
|
|
345
|
+
`2) ${I18n.t('Two measured values are enough for the start: pH + free chlorine.')}\n` +
|
|
346
|
+
`3) ${I18n.t('Check the technology: Is circulation running? Is the filter clean? Is backwashing needed?')}\n\n` +
|
|
347
|
+
`${I18n.t('Typical rule of thumb:')}\n` +
|
|
348
|
+
`• ${I18n.t('Visual problems (green / cloudy) are very often a combination of disinfection + pH + filtration.')}\n` +
|
|
349
|
+
`• ${I18n.t('Odor / irritation is often not too much chlorine, but incorrectly bound / organically loaded water.')}\n${
|
|
347
350
|
commonFooter
|
|
348
351
|
}`,
|
|
349
352
|
};
|
|
@@ -354,8 +357,8 @@ const aiChemistryHelpHelper = {
|
|
|
354
357
|
|
|
355
358
|
// Fallback
|
|
356
359
|
return (
|
|
357
|
-
|
|
358
|
-
|
|
360
|
+
`${I18n.t('Note: This problem is not known yet.')}\n\n` +
|
|
361
|
+
`${I18n.t('Please select one of the existing items or use "Issue unclear / not specific".')}\n${
|
|
359
362
|
commonFooter
|
|
360
363
|
}`
|
|
361
364
|
);
|