iobroker.poolcontrol 1.2.12 → 1.2.13

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.
Files changed (35) hide show
  1. package/README.md +6 -0
  2. package/admin/i18n/de/translations.json +0 -2
  3. package/admin/i18n/es/translations.json +0 -2
  4. package/admin/i18n/fr/translations.json +0 -2
  5. package/admin/i18n/it/translations.json +0 -2
  6. package/admin/i18n/nl/translations.json +0 -2
  7. package/admin/i18n/pl/translations.json +0 -2
  8. package/admin/i18n/pt/translations.json +0 -2
  9. package/admin/i18n/ru/translations.json +0 -2
  10. package/admin/i18n/uk/translations.json +0 -2
  11. package/admin/i18n/zh-cn/translations.json +0 -2
  12. package/io-package.json +16 -15
  13. package/lib/stateDefinitions/actuatorsStates.js +132 -19
  14. package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
  15. package/lib/stateDefinitions/aiStates.js +201 -31
  16. package/lib/stateDefinitions/consumptionStates.js +140 -14
  17. package/lib/stateDefinitions/controlStates.js +120 -34
  18. package/lib/stateDefinitions/debugLogStates.js +32 -10
  19. package/lib/stateDefinitions/generalStates.js +28 -4
  20. package/lib/stateDefinitions/heatStates.js +132 -17
  21. package/lib/stateDefinitions/infoStates.js +20 -5
  22. package/lib/stateDefinitions/photovoltaicStates.js +78 -19
  23. package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
  24. package/lib/stateDefinitions/pumpStates.js +100 -15
  25. package/lib/stateDefinitions/pumpStates2.js +36 -9
  26. package/lib/stateDefinitions/pumpStates3.js +92 -23
  27. package/lib/stateDefinitions/pumpStates4.js +120 -30
  28. package/lib/stateDefinitions/runtimeStates.js +74 -10
  29. package/lib/stateDefinitions/solarStates.js +68 -9
  30. package/lib/stateDefinitions/speechStates.js +133 -18
  31. package/lib/stateDefinitions/statisticsStates.js +167 -24
  32. package/lib/stateDefinitions/statusStates.js +92 -12
  33. package/lib/stateDefinitions/temperatureStates.js +117 -18
  34. package/lib/stateDefinitions/timeStates.js +43 -12
  35. package/package.json +1 -1
package/README.md CHANGED
@@ -189,6 +189,12 @@ New features are added regularly – please refer to the changelog.
189
189
 
190
190
  ## Changelog
191
191
 
192
+ ### 1.2.13
193
+ Release: 22.03.2026
194
+ - Added multilingual state names and descriptions (DE/EN)
195
+ - Improved consistency of all state texts
196
+ - Minor text and structure refinements
197
+
192
198
  ### 1.2.12
193
199
  Release: 21.03.2026
194
200
  - Repository cleanup and fixes for ioBroker repository checker
@@ -153,7 +153,5 @@
153
153
  "Voice": "Stimme",
154
154
  "Volume (0–100)": "Lautstärke (0–100)",
155
155
  "Wednesday": "Mittwoch",
156
- "option1": "Option1",
157
- "option2": "Option2",
158
156
  "poolcontrol adapter settings": "Adaptereinstellungen für Poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voz",
154
154
  "Volume (0–100)": "Volumen (0–100)",
155
155
  "Wednesday": "Miércoles",
156
- "option1": "Opción1",
157
- "option2": "opción 2",
158
156
  "poolcontrol adapter settings": "Ajustes del adaptador para poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voix",
154
154
  "Volume (0–100)": "Volume (0 à 100)",
155
155
  "Wednesday": "Mercredi",
156
- "option1": "option1",
157
- "option2": "Option2",
158
156
  "poolcontrol adapter settings": "Paramètres d'adaptateur pour poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voce",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Mercoledì",
156
- "option1": "opzione1",
157
- "option2": "opzione2",
158
156
  "poolcontrol adapter settings": "Impostazioni dell'adattatore per poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Stem",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Woensdag",
156
- "option1": "Option1",
157
- "option2": "Optie2",
158
156
  "poolcontrol adapter settings": "Adapterinstellingen voor poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Głos",
154
154
  "Volume (0–100)": "Głośność (0–100)",
155
155
  "Wednesday": "Środa",
156
- "option1": "opcja 1",
157
- "option2": "opcja2",
158
156
  "poolcontrol adapter settings": "Ustawienia adaptera dla poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Voz",
154
154
  "Volume (0–100)": "Volume (0–100)",
155
155
  "Wednesday": "Quarta-feira",
156
- "option1": "opção1",
157
- "option2": "opção2",
158
156
  "poolcontrol adapter settings": "Configurações do adaptador para poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Голос",
154
154
  "Volume (0–100)": "Громкость (0–100)",
155
155
  "Wednesday": "Среда",
156
- "option1": "вариант1",
157
- "option2": "вариант2",
158
156
  "poolcontrol adapter settings": "Настройки адаптера для poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "Голос",
154
154
  "Volume (0–100)": "Обсяг (0–100)",
155
155
  "Wednesday": "Середа",
156
- "option1": "Варіант1",
157
- "option2": "Варіант2",
158
156
  "poolcontrol adapter settings": "Налаштування адаптера для poolcontrol"
159
157
  }
@@ -153,7 +153,5 @@
153
153
  "Voice": "嗓音",
154
154
  "Volume (0–100)": "音量 (0–100)",
155
155
  "Wednesday": "周三",
156
- "option1": "选项1",
157
- "option2": "选项2",
158
156
  "poolcontrol adapter settings": "poolcontrol的适配器设置"
159
157
  }
package/io-package.json CHANGED
@@ -1,8 +1,21 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "poolcontrol",
4
- "version": "1.2.12",
4
+ "version": "1.2.13",
5
5
  "news": {
6
+ "1.2.13": {
7
+ "en": "Added multilingual state names and descriptions (DE/EN). Improved consistency of all state texts. Internal cleanup and stability improvements.",
8
+ "de": "Mehrsprachige State-Namen und Beschreibungen (DE/EN) ergänzt. Einheitliche Benennung aller Datenpunkte. Interne Verbesserungen und Stabilität optimiert.",
9
+ "ru": "Добавлены многоязычные названия и описания штатов (DE/EN). Улучшена согласованность всех текстов состояний. Внутренняя очистка и улучшения стабильности.",
10
+ "pt": "Adicionados nomes e descrições de estados multilíngues (DE/EN). Melhor consistência de todos os textos estaduais. Limpeza interna e melhorias de estabilidade.",
11
+ "nl": "Meertalige namen en beschrijvingen van staten toegevoegd (DE/EN). Verbeterde consistentie van alle staatsteksten. Interne opschoning en stabiliteitsverbeteringen.",
12
+ "fr": "Ajout de noms et de descriptions d'état multilingues (DE/EN). Amélioration de la cohérence de tous les textes étatiques. Améliorations du nettoyage interne et de la stabilité.",
13
+ "it": "Aggiunti nomi e descrizioni degli stati multilingue (DE/EN). Maggiore coerenza di tutti i testi statali. Miglioramenti della pulizia interna e della stabilità.",
14
+ "es": "Se agregaron nombres y descripciones de estados multilingües (DE/EN). Coherencia mejorada de todos los textos estatales. Mejoras en la limpieza interna y la estabilidad.",
15
+ "pl": "Dodano wielojęzyczne nazwy i opisy stanów (DE/EN). Poprawiona spójność wszystkich tekstów stanowych. Wewnętrzne porządki i ulepszenia stabilności.",
16
+ "uk": "Додано багатомовні назви та описи штатів (DE/EN). Покращена узгодженість усіх державних текстів. Внутрішнє очищення та покращення стабільності.",
17
+ "zh-cn": "添加了多语言状态名称和描述(德语/英语)。提高了所有国家文本的一致性。内部清理和稳定性改进。"
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.",
@@ -146,7 +146,8 @@
146
146
  {
147
147
  "admin": ">=7.6.20"
148
148
  }
149
- ]
149
+ ],
150
+ "installedFrom": "file:///opt/iobroker/ioBroker.poolcontrol"
150
151
  },
151
152
  "native": {},
152
153
  "objects": [],
@@ -28,7 +28,10 @@ async function createActuatorsStates(adapter) {
28
28
  await adapter.setObjectNotExistsAsync('actuators', {
29
29
  type: 'channel',
30
30
  common: {
31
- name: 'Additional actuators',
31
+ name: {
32
+ en: 'Additional actuators',
33
+ de: 'Zusatz-Aktoren',
34
+ },
32
35
  },
33
36
  native: {},
34
37
  });
@@ -39,7 +42,10 @@ async function createActuatorsStates(adapter) {
39
42
  await adapter.setObjectNotExistsAsync('actuators.lighting', {
40
43
  type: 'channel',
41
44
  common: {
42
- name: 'Lighting',
45
+ name: {
46
+ en: 'Lighting',
47
+ de: 'Beleuchtung',
48
+ },
43
49
  },
44
50
  native: {},
45
51
  });
@@ -50,7 +56,10 @@ async function createActuatorsStates(adapter) {
50
56
  await adapter.setObjectNotExistsAsync(base, {
51
57
  type: 'channel',
52
58
  common: {
53
- name: `Lighting ${i}`,
59
+ name: {
60
+ en: `Lighting ${i}`,
61
+ de: `Beleuchtung ${i}`,
62
+ },
54
63
  },
55
64
  native: {},
56
65
  });
@@ -58,7 +67,14 @@ async function createActuatorsStates(adapter) {
58
67
  await adapter.setObjectNotExistsAsync(`${base}.switch`, {
59
68
  type: 'state',
60
69
  common: {
61
- name: 'Switch (On/Off)',
70
+ name: {
71
+ en: 'Switch (On/Off)',
72
+ de: 'Schalter (Ein/Aus)',
73
+ },
74
+ desc: {
75
+ en: 'Switch state for actuator on/off control',
76
+ de: 'Schaltzustand für die Ein-/Aus-Steuerung des Aktors',
77
+ },
62
78
  type: 'boolean',
63
79
  role: 'switch',
64
80
  read: true,
@@ -72,7 +88,14 @@ async function createActuatorsStates(adapter) {
72
88
  await adapter.setObjectNotExistsAsync(`${base}.active`, {
73
89
  type: 'state',
74
90
  common: {
75
- name: 'Active',
91
+ name: {
92
+ en: 'Active',
93
+ de: 'Aktiv',
94
+ },
95
+ desc: {
96
+ en: 'Shows whether this actuator is enabled in the instance configuration',
97
+ de: 'Zeigt an, ob dieser Aktor in der Instanzkonfiguration aktiviert ist',
98
+ },
76
99
  type: 'boolean',
77
100
  role: 'indicator',
78
101
  read: true,
@@ -87,7 +110,14 @@ async function createActuatorsStates(adapter) {
87
110
  await adapter.setObjectNotExistsAsync(`${base}.name`, {
88
111
  type: 'state',
89
112
  common: {
90
- name: 'Name',
113
+ name: {
114
+ en: 'Name',
115
+ de: 'Name',
116
+ },
117
+ desc: {
118
+ en: 'Custom name from the instance configuration for this actuator',
119
+ de: 'Frei vergebener Name aus der Instanzkonfiguration für diesen Aktor',
120
+ },
91
121
  type: 'string',
92
122
  role: 'text',
93
123
  read: true,
@@ -102,7 +132,14 @@ async function createActuatorsStates(adapter) {
102
132
  await adapter.setObjectNotExistsAsync(`${base}.permanent`, {
103
133
  type: 'state',
104
134
  common: {
105
- name: 'Continuous operation',
135
+ name: {
136
+ en: 'Continuous operation',
137
+ de: 'Dauerbetrieb',
138
+ },
139
+ desc: {
140
+ en: 'Enables continuous operation for this actuator',
141
+ de: 'Aktiviert den Dauerbetrieb für diesen Aktor',
142
+ },
106
143
  type: 'boolean',
107
144
  role: 'switch',
108
145
  read: true,
@@ -117,7 +154,14 @@ async function createActuatorsStates(adapter) {
117
154
  await adapter.setObjectNotExistsAsync(`${base}.runtime_minutes`, {
118
155
  type: 'state',
119
156
  common: {
120
- name: 'Runtime (minutes)',
157
+ name: {
158
+ en: 'Runtime (minutes)',
159
+ de: 'Laufzeit (Minuten)',
160
+ },
161
+ desc: {
162
+ en: 'Configured runtime in minutes for this actuator',
163
+ de: 'Eingestellte Laufzeit in Minuten für diesen Aktor',
164
+ },
121
165
  type: 'number',
122
166
  role: 'level',
123
167
  read: true,
@@ -133,7 +177,14 @@ async function createActuatorsStates(adapter) {
133
177
  await adapter.setObjectNotExistsAsync(`${base}.remaining_minutes`, {
134
178
  type: 'state',
135
179
  common: {
136
- name: 'Remaining runtime',
180
+ name: {
181
+ en: 'Remaining runtime',
182
+ de: 'Verbleibende Laufzeit',
183
+ },
184
+ desc: {
185
+ en: 'Remaining runtime in minutes for this actuator',
186
+ de: 'Verbleibende Laufzeit dieses Aktors in Minuten',
187
+ },
137
188
  type: 'number',
138
189
  role: 'value',
139
190
  read: true,
@@ -147,7 +198,14 @@ async function createActuatorsStates(adapter) {
147
198
  await adapter.setObjectNotExistsAsync(`${base}.status`, {
148
199
  type: 'state',
149
200
  common: {
150
- name: 'Status',
201
+ name: {
202
+ en: 'Status',
203
+ de: 'Status',
204
+ },
205
+ desc: {
206
+ en: 'Current status text of this actuator',
207
+ de: 'Aktueller Statustext dieses Aktors',
208
+ },
151
209
  type: 'string',
152
210
  role: 'text',
153
211
  read: true,
@@ -164,7 +222,10 @@ async function createActuatorsStates(adapter) {
164
222
  await adapter.setObjectNotExistsAsync('actuators.extrapumps', {
165
223
  type: 'channel',
166
224
  common: {
167
- name: 'Auxiliary pumps & attractions',
225
+ name: {
226
+ en: 'Auxiliary pumps & attractions',
227
+ de: 'Zusatzpumpen & Attraktionen',
228
+ },
168
229
  },
169
230
  native: {},
170
231
  });
@@ -175,7 +236,10 @@ async function createActuatorsStates(adapter) {
175
236
  await adapter.setObjectNotExistsAsync(base, {
176
237
  type: 'channel',
177
238
  common: {
178
- name: `Auxiliary pump / attraction ${i}`,
239
+ name: {
240
+ en: `Auxiliary pump / attraction ${i}`,
241
+ de: `Zusatzpumpe / Attraktion ${i}`,
242
+ },
179
243
  },
180
244
  native: {},
181
245
  });
@@ -183,7 +247,14 @@ async function createActuatorsStates(adapter) {
183
247
  await adapter.setObjectNotExistsAsync(`${base}.switch`, {
184
248
  type: 'state',
185
249
  common: {
186
- name: 'Switch (On/Off)',
250
+ name: {
251
+ en: 'Switch (On/Off)',
252
+ de: 'Schalter (Ein/Aus)',
253
+ },
254
+ desc: {
255
+ en: 'Switch state for actuator on/off control',
256
+ de: 'Schaltzustand für die Ein-/Aus-Steuerung des Aktors',
257
+ },
187
258
  type: 'boolean',
188
259
  role: 'switch',
189
260
  read: true,
@@ -197,7 +268,14 @@ async function createActuatorsStates(adapter) {
197
268
  await adapter.setObjectNotExistsAsync(`${base}.active`, {
198
269
  type: 'state',
199
270
  common: {
200
- name: 'Active',
271
+ name: {
272
+ en: 'Active',
273
+ de: 'Aktiv',
274
+ },
275
+ desc: {
276
+ en: 'Shows whether this actuator is enabled in the instance configuration',
277
+ de: 'Zeigt an, ob dieser Aktor in der Instanzkonfiguration aktiviert ist',
278
+ },
201
279
  type: 'boolean',
202
280
  role: 'indicator',
203
281
  read: true,
@@ -212,7 +290,14 @@ async function createActuatorsStates(adapter) {
212
290
  await adapter.setObjectNotExistsAsync(`${base}.name`, {
213
291
  type: 'state',
214
292
  common: {
215
- name: 'Name',
293
+ name: {
294
+ en: 'Name',
295
+ de: 'Name',
296
+ },
297
+ desc: {
298
+ en: 'Custom name from the instance configuration for this actuator',
299
+ de: 'Frei vergebener Name aus der Instanzkonfiguration für diesen Aktor',
300
+ },
216
301
  type: 'string',
217
302
  role: 'text',
218
303
  read: true,
@@ -227,7 +312,14 @@ async function createActuatorsStates(adapter) {
227
312
  await adapter.setObjectNotExistsAsync(`${base}.permanent`, {
228
313
  type: 'state',
229
314
  common: {
230
- name: 'Continuous operation',
315
+ name: {
316
+ en: 'Continuous operation',
317
+ de: 'Dauerbetrieb',
318
+ },
319
+ desc: {
320
+ en: 'Enables continuous operation for this actuator',
321
+ de: 'Aktiviert den Dauerbetrieb für diesen Aktor',
322
+ },
231
323
  type: 'boolean',
232
324
  role: 'switch',
233
325
  read: true,
@@ -242,7 +334,14 @@ async function createActuatorsStates(adapter) {
242
334
  await adapter.setObjectNotExistsAsync(`${base}.runtime_minutes`, {
243
335
  type: 'state',
244
336
  common: {
245
- name: 'Runtime (minutes)',
337
+ name: {
338
+ en: 'Runtime (minutes)',
339
+ de: 'Laufzeit (Minuten)',
340
+ },
341
+ desc: {
342
+ en: 'Configured runtime in minutes for this actuator',
343
+ de: 'Eingestellte Laufzeit in Minuten für diesen Aktor',
344
+ },
246
345
  type: 'number',
247
346
  role: 'level',
248
347
  read: true,
@@ -258,7 +357,14 @@ async function createActuatorsStates(adapter) {
258
357
  await adapter.setObjectNotExistsAsync(`${base}.remaining_minutes`, {
259
358
  type: 'state',
260
359
  common: {
261
- name: 'Remaining runtime',
360
+ name: {
361
+ en: 'Remaining runtime',
362
+ de: 'Verbleibende Laufzeit',
363
+ },
364
+ desc: {
365
+ en: 'Remaining runtime in minutes for this actuator',
366
+ de: 'Verbleibende Laufzeit dieses Aktors in Minuten',
367
+ },
262
368
  type: 'number',
263
369
  role: 'value',
264
370
  read: true,
@@ -272,7 +378,14 @@ async function createActuatorsStates(adapter) {
272
378
  await adapter.setObjectNotExistsAsync(`${base}.status`, {
273
379
  type: 'state',
274
380
  common: {
275
- name: 'Status',
381
+ name: {
382
+ en: 'Status',
383
+ de: 'Status',
384
+ },
385
+ desc: {
386
+ en: 'Current status text of this actuator',
387
+ de: 'Aktueller Statustext dieses Aktors',
388
+ },
276
389
  type: 'string',
277
390
  role: 'text',
278
391
  read: true,
@@ -33,7 +33,10 @@ async function createAiChemistryHelpStates(adapter) {
33
33
  await adapter.setObjectNotExistsAsync('ai.chemistry_help', {
34
34
  type: 'channel',
35
35
  common: {
36
- name: 'Chemistry help (explanations & causes)',
36
+ name: {
37
+ en: 'Chemistry help (explanations & causes)',
38
+ de: 'Chemie-Hilfe (Erklärungen & Ursachen)',
39
+ },
37
40
  },
38
41
  native: {},
39
42
  });
@@ -44,8 +47,14 @@ async function createAiChemistryHelpStates(adapter) {
44
47
  await adapter.setObjectNotExistsAsync('ai.chemistry_help.issue', {
45
48
  type: 'state',
46
49
  common: {
47
- name: 'Chemistry help: select issue',
48
- desc: 'Manual selection of an observed pool issue to display general explanations.',
50
+ name: {
51
+ en: 'Chemistry help: select issue',
52
+ de: 'Chemie-Hilfe: Problem auswählen',
53
+ },
54
+ desc: {
55
+ en: 'Manual selection of an observed pool issue to display general explanations.',
56
+ de: 'Manuelle Auswahl eines beobachteten Poolproblems zur Anzeige allgemeiner Erklärungen.',
57
+ },
49
58
  type: 'string',
50
59
  role: 'level',
51
60
  read: true,
@@ -87,10 +96,14 @@ async function createAiChemistryHelpStates(adapter) {
87
96
  await adapter.setObjectNotExistsAsync('ai.chemistry_help.help_text', {
88
97
  type: 'state',
89
98
  common: {
90
- // FIX: i18n for name
91
- name: 'Chemistry help: explanation',
92
- // FIX: i18n for desc
93
- desc: 'Explanatory text about causes and general approaches (no dosing, no control).',
99
+ name: {
100
+ en: 'Chemistry help: explanation',
101
+ de: 'Chemie-Hilfe: Erklärung',
102
+ },
103
+ desc: {
104
+ en: 'Explanatory text about causes and general approaches (no dosing, no control).',
105
+ de: 'Erklärender Text zu Ursachen und allgemeinen Ansätzen (keine Dosierung, keine Steuerung).',
106
+ },
94
107
  type: 'string',
95
108
  role: 'text',
96
109
  read: true,
@@ -106,10 +119,14 @@ async function createAiChemistryHelpStates(adapter) {
106
119
  await adapter.setObjectNotExistsAsync('ai.chemistry_help.last_issue_time', {
107
120
  type: 'state',
108
121
  common: {
109
- // FIX: i18n for name
110
- name: 'Chemistry help: last selection',
111
- // FIX: i18n for desc
112
- desc: 'Timestamp of the last selected chemistry help issue.',
122
+ name: {
123
+ en: 'Chemistry help: last selection',
124
+ de: 'Chemie-Hilfe: letzte Auswahl',
125
+ },
126
+ desc: {
127
+ en: 'Timestamp of the last selected chemistry help issue.',
128
+ de: 'Zeitstempel des zuletzt ausgewählten Chemie-Hilfe-Problems.',
129
+ },
113
130
  type: 'number',
114
131
  role: 'value.time',
115
132
  read: true,