iobroker.poolcontrol 1.2.0 → 1.2.1

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 (66) hide show
  1. package/README.md +285 -292
  2. package/admin/i18n/de/translations.json +158 -4
  3. package/admin/i18n/en/translations.json +161 -3
  4. package/admin/i18n/es/translations.json +158 -4
  5. package/admin/i18n/fr/translations.json +158 -4
  6. package/admin/i18n/it/translations.json +158 -4
  7. package/admin/i18n/nl/translations.json +158 -4
  8. package/admin/i18n/pl/translations.json +158 -4
  9. package/admin/i18n/pt/translations.json +158 -4
  10. package/admin/i18n/ru/translations.json +158 -4
  11. package/admin/i18n/uk/translations.json +158 -4
  12. package/admin/i18n/zh-cn/translations.json +158 -4
  13. package/admin/jsonConfig.json +180 -602
  14. package/io-package.json +107 -100
  15. package/lib/helpers/actuatorsHelper.js +6 -8
  16. package/lib/helpers/aiChemistryHelpHelper.js +7 -7
  17. package/lib/helpers/aiForecastHelper.js +21 -21
  18. package/lib/helpers/aiHelper.js +53 -63
  19. package/lib/helpers/consumptionHelper.js +23 -25
  20. package/lib/helpers/controlHelper.js +24 -24
  21. package/lib/helpers/controlHelper2.js +17 -17
  22. package/lib/helpers/debugLogHelper.js +12 -14
  23. package/lib/helpers/frostHelper.js +6 -6
  24. package/lib/helpers/heatHelper.js +14 -14
  25. package/lib/helpers/infoHelper.js +2 -2
  26. package/lib/helpers/migrationHelper.js +16 -16
  27. package/lib/helpers/photovoltaicHelper.js +28 -28
  28. package/lib/helpers/pumpHelper.js +16 -18
  29. package/lib/helpers/pumpHelper2.js +8 -10
  30. package/lib/helpers/pumpHelper3.js +9 -9
  31. package/lib/helpers/pumpHelper4.js +9 -9
  32. package/lib/helpers/pumpSpeedHelper.js +6 -6
  33. package/lib/helpers/runtimeHelper.js +14 -14
  34. package/lib/helpers/solarHelper.js +9 -9
  35. package/lib/helpers/speechHelper.js +13 -15
  36. package/lib/helpers/speechTextHelper.js +13 -13
  37. package/lib/helpers/statisticsHelper.js +9 -9
  38. package/lib/helpers/statisticsHelperMonth.js +15 -15
  39. package/lib/helpers/statisticsHelperWeek.js +11 -11
  40. package/lib/helpers/statusHelper.js +9 -9
  41. package/lib/helpers/temperatureHelper.js +9 -11
  42. package/lib/helpers/timeHelper.js +7 -9
  43. package/lib/stateDefinitions/actuatorsStates.js +19 -19
  44. package/lib/stateDefinitions/aiChemistryHelpStates.js +59 -28
  45. package/lib/stateDefinitions/aiStates.js +119 -31
  46. package/lib/stateDefinitions/consumptionStates.js +20 -14
  47. package/lib/stateDefinitions/controlStates.js +90 -37
  48. package/lib/stateDefinitions/debugLogStates.js +28 -13
  49. package/lib/stateDefinitions/generalStates.js +4 -4
  50. package/lib/stateDefinitions/heatStates.js +21 -21
  51. package/lib/stateDefinitions/infoStates.js +11 -5
  52. package/lib/stateDefinitions/photovoltaicStates.js +52 -24
  53. package/lib/stateDefinitions/pumpSpeedStates.js +11 -11
  54. package/lib/stateDefinitions/pumpStates.js +24 -15
  55. package/lib/stateDefinitions/pumpStates2.js +22 -10
  56. package/lib/stateDefinitions/pumpStates3.js +63 -24
  57. package/lib/stateDefinitions/pumpStates4.js +62 -32
  58. package/lib/stateDefinitions/runtimeStates.js +10 -10
  59. package/lib/stateDefinitions/solarStates.js +9 -9
  60. package/lib/stateDefinitions/speechStates.js +24 -21
  61. package/lib/stateDefinitions/statisticsStates.js +107 -29
  62. package/lib/stateDefinitions/statusStates.js +14 -12
  63. package/lib/stateDefinitions/temperatureStates.js +18 -12
  64. package/lib/stateDefinitions/timeStates.js +5 -5
  65. package/main.js +38 -0
  66. package/package.json +7 -8
@@ -4,17 +4,11 @@
4
4
  "items": {
5
5
  "general": {
6
6
  "type": "panel",
7
- "label": {
8
- "de": "Allg. Einstellungen",
9
- "en": "General Settings"
10
- },
7
+ "label": "General Settings",
11
8
  "items": {
12
9
  "general_header": {
13
10
  "type": "header",
14
- "text": {
15
- "de": "Allgemeine Einstellungen zum Pool",
16
- "en": "General Pool Settings"
17
- },
11
+ "text": "General Pool Settings",
18
12
  "size": 4,
19
13
  "newLine": true,
20
14
  "xs": 12,
@@ -25,11 +19,8 @@
25
19
  },
26
20
  "pool_name": {
27
21
  "type": "text",
28
- "label": {
29
- "de": "Name des Pools",
30
- "en": "Pool Name"
31
- },
32
- "default": "Mein Pool",
22
+ "label": "Pool Name",
23
+ "default": "My Pool",
33
24
  "xs": 12,
34
25
  "sm": 3,
35
26
  "md": 3,
@@ -39,10 +30,7 @@
39
30
  },
40
31
  "pool_size": {
41
32
  "type": "number",
42
- "label": {
43
- "de": "Poolgröße (Liter)",
44
- "en": "Pool Size (Liters)"
45
- },
33
+ "label": "Pool Size (Liters)",
46
34
  "default": 30000,
47
35
  "xs": 12,
48
36
  "sm": 3,
@@ -53,10 +41,7 @@
53
41
  },
54
42
  "min_circulation_per_day": {
55
43
  "type": "select",
56
- "label": {
57
- "de": "Min. Umwälzung pro Tag",
58
- "en": "Minimum Circulation per Day"
59
- },
44
+ "label": "Minimum Circulation per Day",
60
45
  "options": [
61
46
  { "label": "0.5x", "value": 0.5 },
62
47
  { "label": "1.0x", "value": 1.0 },
@@ -74,10 +59,7 @@
74
59
  },
75
60
  "general_season_header": {
76
61
  "type": "header",
77
- "text": {
78
- "de": "Saisoneinstellungen",
79
- "en": "Season Settings"
80
- },
62
+ "text": "Season Settings",
81
63
  "size": 4,
82
64
  "newLine": true,
83
65
  "xs": 12,
@@ -88,10 +70,7 @@
88
70
  },
89
71
  "season_active": {
90
72
  "type": "checkbox",
91
- "label": {
92
- "de": "Poolsaison aktiv",
93
- "en": "Pool Season Active"
94
- },
73
+ "label": "Pool Season Active",
95
74
  "default": false,
96
75
  "xs": 12,
97
76
  "sm": 3,
@@ -114,17 +93,11 @@
114
93
  },
115
94
  "pump": {
116
95
  "type": "panel",
117
- "label": {
118
- "de": "Pumpe",
119
- "en": "Pump"
120
- },
96
+ "label": "Pump",
121
97
  "items": {
122
98
  "Leistung_header": {
123
99
  "type": "header",
124
- "text": {
125
- "de": "Pumpeneinstellungen (Nennleistung)",
126
- "en": "Pump Settings (Rated Power)"
127
- },
100
+ "text": "Pump Settings (Rated Power)",
128
101
  "size": 4,
129
102
  "newLine": true,
130
103
  "xs": 12,
@@ -135,10 +108,7 @@
135
108
  },
136
109
  "pump_max_watt": {
137
110
  "type": "number",
138
- "label": {
139
- "de": "Max. Leistung (Watt)",
140
- "en": "Max Power (Watt)"
141
- },
111
+ "label": "Max Power (Watt)",
142
112
  "default": 1000,
143
113
  "xs": 12,
144
114
  "sm": 3,
@@ -149,10 +119,7 @@
149
119
  },
150
120
  "pump_power_lph": {
151
121
  "type": "number",
152
- "label": {
153
- "de": "Pumpenleistung (l/h)",
154
- "en": "Pump Flow Rate (l/h)"
155
- },
122
+ "label": "Pump Flow Rate (l/h)",
156
123
  "default": 6000,
157
124
  "xs": 12,
158
125
  "sm": 3,
@@ -162,10 +129,7 @@
162
129
  },
163
130
  "Frostschutz_header": {
164
131
  "type": "header",
165
- "text": {
166
- "de": "Frostschutz",
167
- "en": "Frost Protection"
168
- },
132
+ "text": "Frost Protection",
169
133
  "size": 4,
170
134
  "newLine": true,
171
135
  "xs": 12,
@@ -176,10 +140,7 @@
176
140
  },
177
141
  "frost_protection_active": {
178
142
  "type": "checkbox",
179
- "label": {
180
- "de": "Frostschutz aktivieren",
181
- "en": "Enable Frost Protection"
182
- },
143
+ "label": "Enable Frost Protection",
183
144
  "default": false,
184
145
  "xs": 12,
185
146
  "sm": 3,
@@ -190,10 +151,7 @@
190
151
  },
191
152
  "frost_protection_temp": {
192
153
  "type": "number",
193
- "label": {
194
- "de": "Frostschutz-Temperatur (°C)",
195
- "en": "Frost Protection Temperature (°C)"
196
- },
154
+ "label": "Frost Protection Temperature (°C)",
197
155
  "default": 2,
198
156
  "xs": 12,
199
157
  "sm": 3,
@@ -203,10 +161,7 @@
203
161
  },
204
162
  "pumpswitch_header": {
205
163
  "type": "header",
206
- "text": {
207
- "de": "Pumpendatenpunkte (Messsteckdose & Aktueller Verbrauch Watt)",
208
- "en": "Pump Data Points (Smart Socket & Current Power Consumption)"
209
- },
164
+ "text": "Pump Data Points (Smart Socket & Current Power Consumption)",
210
165
  "size": 4,
211
166
  "newLine": true,
212
167
  "xs": 12,
@@ -217,10 +172,7 @@
217
172
  },
218
173
  "pump_switch": {
219
174
  "type": "objectId",
220
- "label": {
221
- "de": "Objekt-ID schaltbare Steckdose Pumpe",
222
- "en": "Object ID Pump Switch Socket"
223
- },
175
+ "label": "Object ID Pump Switch Socket",
224
176
  "default": "",
225
177
  "xs": 12,
226
178
  "sm": 3,
@@ -230,10 +182,7 @@
230
182
  },
231
183
  "pump_current_power_id": {
232
184
  "type": "objectId",
233
- "label": {
234
- "de": "Objekt-ID aktuelle Leistung (W)",
235
- "en": "Object ID Current Power (W)"
236
- },
185
+ "label": "Object ID Current Power (W)",
237
186
  "default": "",
238
187
  "xs": 12,
239
188
  "sm": 3,
@@ -243,10 +192,7 @@
243
192
  },
244
193
  "pump_mode_hint": {
245
194
  "type": "staticText",
246
- "text": {
247
- "de": "Pumpenmodus (Automatik/Manuell/Aus/Zeit) kann über den Datenpunkt 'pump.mode' gesteuert werden.",
248
- "en": "Pump mode (Auto/Manual/Off/Timer) can be controlled via data point 'pump.mode'."
249
- },
195
+ "text": "Pump mode (Auto/Manual/Off/Timer) can be controlled via data point 'pump.mode'.",
250
196
  "newLine": true,
251
197
  "xs": 12,
252
198
  "sm": 12,
@@ -256,10 +202,7 @@
256
202
  },
257
203
  "pressure_header": {
258
204
  "type": "header",
259
- "text": {
260
- "de": "Drucksensor (Filterdruck)",
261
- "en": "Pressure Sensor (Filter Pressure)"
262
- },
205
+ "text": "Pressure Sensor (Filter Pressure)",
263
206
  "size": 4,
264
207
  "newLine": true,
265
208
  "xs": 12,
@@ -270,10 +213,7 @@
270
213
  },
271
214
  "use_pressure_sensor": {
272
215
  "type": "checkbox",
273
- "label": {
274
- "de": "Drucksensor verwenden",
275
- "en": "Use Pressure Sensor"
276
- },
216
+ "label": "Use Pressure Sensor",
277
217
  "default": false,
278
218
  "xs": 12,
279
219
  "sm": 3,
@@ -284,10 +224,7 @@
284
224
  },
285
225
  "pressure_sensor_id": {
286
226
  "type": "objectId",
287
- "label": {
288
- "de": "Objekt-ID Drucksensor (bar)",
289
- "en": "Object ID Pressure Sensor (bar)"
290
- },
227
+ "label": "Object ID Pressure Sensor (bar)",
291
228
  "default": "",
292
229
  "xs": 12,
293
230
  "sm": 3,
@@ -297,10 +234,7 @@
297
234
  },
298
235
  "pressure_hint": {
299
236
  "type": "staticText",
300
- "text": {
301
- "de": "Hinweis: Unterstützt sowohl externe Sensoren als auch die PoolControl-Druckbox.",
302
- "en": "Note: Supports external sensors as well as the PoolControl pressure box."
303
- },
237
+ "text": "Note: Supports external sensors as well as the PoolControl pressure box.",
304
238
  "newLine": true,
305
239
  "xs": 12,
306
240
  "sm": 12,
@@ -310,10 +244,7 @@
310
244
  },
311
245
  "pump_safety_header": {
312
246
  "type": "header",
313
- "text": {
314
- "de": "Sicherheitsfunktionen",
315
- "en": "Safety Functions"
316
- },
247
+ "text": "Safety Functions",
317
248
  "size": 4,
318
249
  "newLine": true,
319
250
  "xs": 12,
@@ -324,10 +255,7 @@
324
255
  },
325
256
  "manual_safety_enabled": {
326
257
  "type": "checkbox",
327
- "label": {
328
- "de": "Sicherheitsfunktionen auch im Modus 'Manuell' aktivieren",
329
- "en": "Enable safety functions also in 'Manual' mode"
330
- },
258
+ "label": "Enable safety functions also in 'Manual' mode",
331
259
  "default": true,
332
260
  "xs": 12,
333
261
  "sm": 6,
@@ -338,10 +266,7 @@
338
266
  },
339
267
  "manual_safety_enabled_hint": {
340
268
  "type": "staticText",
341
- "text": {
342
- "de": "Wenn aktiviert, werden die Sicherheitsfunktionen wie Frostschutz und Überhitzungsschutz (Solar) weiterhin ausgeführt.",
343
- "en": "If enabled, safety functions such as frost protection and overheating protection (solar) remain active."
344
- },
269
+ "text": "If enabled, safety functions such as frost protection and overheating protection (solar) remain active.",
345
270
  "newLine": true,
346
271
  "xs": 12,
347
272
  "sm": 12,
@@ -353,17 +278,11 @@
353
278
  },
354
279
  "temperature": {
355
280
  "type": "panel",
356
- "label": {
357
- "de": "Temperaturverw.",
358
- "en": "Temperature Management"
359
- },
281
+ "label": "Temperature Management",
360
282
  "items": {
361
283
  "tempsensor_header": {
362
284
  "type": "header",
363
- "text": {
364
- "de": "Temperatursensoren",
365
- "en": "Temperature Sensors"
366
- },
285
+ "text": "Temperature Sensors",
367
286
  "size": 4,
368
287
  "newLine": true,
369
288
  "xs": 12,
@@ -374,10 +293,7 @@
374
293
  },
375
294
  "surface_temp_active": {
376
295
  "type": "checkbox",
377
- "label": {
378
- "de": "Sensor Oberfläche verwenden",
379
- "en": "Use Surface Sensor"
380
- },
296
+ "label": "Use Surface Sensor",
381
297
  "default": false,
382
298
  "xs": 12,
383
299
  "sm": 3,
@@ -388,10 +304,7 @@
388
304
  },
389
305
  "surface_temp_sensor": {
390
306
  "type": "objectId",
391
- "label": {
392
- "de": "Objekt-ID Sensor Oberfläche",
393
- "en": "Object ID Surface Sensor"
394
- },
307
+ "label": "Object ID Surface Sensor",
395
308
  "default": "",
396
309
  "xs": 12,
397
310
  "sm": 3,
@@ -401,10 +314,7 @@
401
314
  },
402
315
  "ground_temp_active": {
403
316
  "type": "checkbox",
404
- "label": {
405
- "de": "Sensor Grund verwenden",
406
- "en": "Use Ground Sensor"
407
- },
317
+ "label": "Use Ground Sensor",
408
318
  "default": false,
409
319
  "xs": 12,
410
320
  "sm": 3,
@@ -415,10 +325,7 @@
415
325
  },
416
326
  "ground_temp_sensor": {
417
327
  "type": "objectId",
418
- "label": {
419
- "de": "Objekt-ID Sensor Grund",
420
- "en": "Object ID Ground Sensor"
421
- },
328
+ "label": "Object ID Ground Sensor",
422
329
  "default": "",
423
330
  "xs": 12,
424
331
  "sm": 3,
@@ -428,10 +335,7 @@
428
335
  },
429
336
  "flow_temp_active": {
430
337
  "type": "checkbox",
431
- "label": {
432
- "de": "Sensor Vorlauf verwenden",
433
- "en": "Use Flow Sensor"
434
- },
338
+ "label": "Use Flow Sensor",
435
339
  "default": false,
436
340
  "xs": 12,
437
341
  "sm": 3,
@@ -442,10 +346,7 @@
442
346
  },
443
347
  "flow_temp_sensor": {
444
348
  "type": "objectId",
445
- "label": {
446
- "de": "Objekt-ID Sensor Vorlauf",
447
- "en": "Object ID Flow Sensor"
448
- },
349
+ "label": "Object ID Flow Sensor",
449
350
  "default": "",
450
351
  "xs": 12,
451
352
  "sm": 3,
@@ -455,10 +356,7 @@
455
356
  },
456
357
  "return_temp_active": {
457
358
  "type": "checkbox",
458
- "label": {
459
- "de": "Sensor Rücklauf verwenden",
460
- "en": "Use Return Sensor"
461
- },
359
+ "label": "Use Return Sensor",
462
360
  "default": false,
463
361
  "xs": 12,
464
362
  "sm": 3,
@@ -469,10 +367,7 @@
469
367
  },
470
368
  "return_temp_sensor": {
471
369
  "type": "objectId",
472
- "label": {
473
- "de": "Objekt-ID Sensor Rücklauf",
474
- "en": "Object ID Return Sensor"
475
- },
370
+ "label": "Object ID Return Sensor",
476
371
  "default": "",
477
372
  "xs": 12,
478
373
  "sm": 3,
@@ -482,10 +377,7 @@
482
377
  },
483
378
  "collector_temp_active": {
484
379
  "type": "checkbox",
485
- "label": {
486
- "de": "Sensor Kollektor verwenden",
487
- "en": "Use Collector Sensor"
488
- },
380
+ "label": "Use Collector Sensor",
489
381
  "default": false,
490
382
  "xs": 12,
491
383
  "sm": 3,
@@ -496,10 +388,7 @@
496
388
  },
497
389
  "collector_temp_sensor": {
498
390
  "type": "objectId",
499
- "label": {
500
- "de": "Objekt-ID Sensor Kollektor",
501
- "en": "Object ID Collector Sensor"
502
- },
391
+ "label": "Object ID Collector Sensor",
503
392
  "default": "",
504
393
  "xs": 12,
505
394
  "sm": 3,
@@ -509,10 +398,7 @@
509
398
  },
510
399
  "outside_temp_active": {
511
400
  "type": "checkbox",
512
- "label": {
513
- "de": "Sensor Außentemperatur verwenden",
514
- "en": "Use Outside Temperature Sensor"
515
- },
401
+ "label": "Use Outside Temperature Sensor",
516
402
  "default": false,
517
403
  "xs": 12,
518
404
  "sm": 3,
@@ -523,10 +409,7 @@
523
409
  },
524
410
  "outside_temp_sensor": {
525
411
  "type": "objectId",
526
- "label": {
527
- "de": "Objekt-ID Sensor Außentemperatur",
528
- "en": "Object ID Outside Temperature Sensor"
529
- },
412
+ "label": "Object ID Outside Temperature Sensor",
530
413
  "default": "",
531
414
  "xs": 12,
532
415
  "sm": 3,
@@ -538,17 +421,11 @@
538
421
  },
539
422
  "solar": {
540
423
  "type": "panel",
541
- "label": {
542
- "de": "Solar/Heizungsverw.",
543
- "en": "Solar / Heating Control"
544
- },
424
+ "label": "Solar / Heating Control",
545
425
  "items": {
546
426
  "solar_control_active_header": {
547
427
  "type": "header",
548
- "text": {
549
- "de": "Solarsteuerung aktivieren",
550
- "en": "Enable Solar Control"
551
- },
428
+ "text": "Enable Solar Control",
552
429
  "size": 4,
553
430
  "newLine": true,
554
431
  "xs": 12,
@@ -559,10 +436,7 @@
559
436
  },
560
437
  "solar_control_active": {
561
438
  "type": "checkbox",
562
- "label": {
563
- "de": "Solarsteuerung aktivieren",
564
- "en": "Enable Solar Control"
565
- },
439
+ "label": "Enable Solar Control",
566
440
  "default": false,
567
441
  "xs": 12,
568
442
  "sm": 3,
@@ -573,10 +447,7 @@
573
447
  },
574
448
  "solar_hysteresis_active_header": {
575
449
  "type": "header",
576
- "text": {
577
- "de": "Hysterese",
578
- "en": "Hysteresis"
579
- },
450
+ "text": "Hysteresis",
580
451
  "size": 4,
581
452
  "newLine": true,
582
453
  "xs": 12,
@@ -587,10 +458,7 @@
587
458
  },
588
459
  "solar_hysteresis_active": {
589
460
  "type": "checkbox",
590
- "label": {
591
- "de": "Regelung mit Hysterese verwenden",
592
- "en": "Use Hysteresis Control"
593
- },
461
+ "label": "Use Hysteresis Control",
594
462
  "default": false,
595
463
  "xs": 12,
596
464
  "sm": 3,
@@ -601,10 +469,7 @@
601
469
  },
602
470
  "solar_temp_on": {
603
471
  "type": "number",
604
- "label": {
605
- "de": "Kollektortemperatur Einschaltgrenze (°C)",
606
- "en": "Collector Temperature On Threshold (°C)"
607
- },
472
+ "label": "Collector Temperature On Threshold (°C)",
608
473
  "default": 30,
609
474
  "xs": 12,
610
475
  "sm": 3,
@@ -614,10 +479,7 @@
614
479
  },
615
480
  "solar_temp_off": {
616
481
  "type": "number",
617
- "label": {
618
- "de": "Kollektortemperatur Ausschaltgrenze (°C)",
619
- "en": "Collector Temperature Off Threshold (°C)"
620
- },
482
+ "label": "Collector Temperature Off Threshold (°C)",
621
483
  "default": 25,
622
484
  "xs": 12,
623
485
  "sm": 3,
@@ -627,10 +489,7 @@
627
489
  },
628
490
  "solar_collector_warn_active_header": {
629
491
  "type": "header",
630
- "text": {
631
- "de": "Kollektortemperatur-Warnung",
632
- "en": "Collector Temperature Warning"
633
- },
492
+ "text": "Collector Temperature Warning",
634
493
  "size": 4,
635
494
  "newLine": true,
636
495
  "xs": 12,
@@ -641,10 +500,7 @@
641
500
  },
642
501
  "solar_collector_warn_active": {
643
502
  "type": "checkbox",
644
- "label": {
645
- "de": "Kollektortemperatur-Warnung aktivieren",
646
- "en": "Enable Collector Temperature Warning"
647
- },
503
+ "label": "Enable Collector Temperature Warning",
648
504
  "default": false,
649
505
  "xs": 12,
650
506
  "sm": 3,
@@ -655,10 +511,7 @@
655
511
  },
656
512
  "solar_collector_warn_temp": {
657
513
  "type": "number",
658
- "label": {
659
- "de": "Warnschwelle Kollektortemperatur (°C)",
660
- "en": "Collector Temperature Warning Threshold (°C)"
661
- },
514
+ "label": "Collector Temperature Warning Threshold (°C)",
662
515
  "default": 80,
663
516
  "xs": 12,
664
517
  "sm": 3,
@@ -668,10 +521,7 @@
668
521
  },
669
522
  "solar_collector_warn_speech": {
670
523
  "type": "checkbox",
671
- "label": {
672
- "de": "Bei Warnung Sprachausgabe/Benachrichtigung",
673
- "en": "Announce / Notify on Warning"
674
- },
524
+ "label": "Announce / Notify on Warning",
675
525
  "default": true,
676
526
  "xs": 12,
677
527
  "sm": 6,
@@ -682,10 +532,7 @@
682
532
  },
683
533
  "solar_collector_warn_hint": {
684
534
  "type": "staticText",
685
- "text": {
686
- "de": "Hinweis: Die Warnung wird automatisch zurückgesetzt, sobald die Temperatur 10 % unter die eingestellte Schwelle fällt.",
687
- "en": "Note: The warning resets automatically once the temperature drops 10% below the configured threshold."
688
- },
535
+ "text": "Note: The warning resets automatically once the temperature drops 10% below the configured threshold.",
689
536
  "newLine": true,
690
537
  "xs": 12,
691
538
  "sm": 12,
@@ -695,10 +542,7 @@
695
542
  },
696
543
  "heat_control_header": {
697
544
  "type": "header",
698
- "text": {
699
- "de": "Heizung / Wärmepumpe",
700
- "en": "Heating / Heat Pump"
701
- },
545
+ "text": "Heating / Heat Pump",
702
546
  "size": 4,
703
547
  "newLine": true,
704
548
  "xs": 12,
@@ -709,10 +553,7 @@
709
553
  },
710
554
  "heat_control_active": {
711
555
  "type": "checkbox",
712
- "label": {
713
- "de": "Heizungssteuerung aktivieren",
714
- "en": "Enable Heating Control"
715
- },
556
+ "label": "Enable Heating Control",
716
557
  "default": false,
717
558
  "xs": 12,
718
559
  "sm": 3,
@@ -723,23 +564,14 @@
723
564
  },
724
565
  "heat_control_type": {
725
566
  "type": "select",
726
- "label": {
727
- "de": "Art der Heizungssteuerung",
728
- "en": "Type of Heating Control"
729
- },
567
+ "label": "Type of Heating Control",
730
568
  "options": [
731
569
  {
732
- "label": {
733
- "de": "Messsteckdose schalten (Ein / Aus)",
734
- "en": "Switch Smart Plug (On / Off)"
735
- },
570
+ "label": "Switch Smart Plug (On / Off)",
736
571
  "value": "socket"
737
572
  },
738
573
  {
739
- "label": {
740
- "de": "Logischer Steuer-State (true / false)",
741
- "en": "Logical Control State (true / false)"
742
- },
574
+ "label": "Logical Control State (true / false)",
743
575
  "value": "boolean"
744
576
  }
745
577
  ],
@@ -753,10 +585,7 @@
753
585
  },
754
586
  "heat_control_object_id": {
755
587
  "type": "objectId",
756
- "label": {
757
- "de": "Objekt-ID Heizung / Wärmepumpe",
758
- "en": "Object ID Heating / Heat Pump"
759
- },
588
+ "label": "Object ID Heating / Heat Pump",
760
589
  "default": "",
761
590
  "xs": 12,
762
591
  "sm": 6,
@@ -766,10 +595,7 @@
766
595
  },
767
596
  "heat_temp_target": {
768
597
  "type": "number",
769
- "label": {
770
- "de": "Zieltemperatur Pool (°C)",
771
- "en": "Target Pool Temperature (°C)"
772
- },
598
+ "label": "Target Pool Temperature (°C)",
773
599
  "default": 26,
774
600
  "xs": 12,
775
601
  "sm": 3,
@@ -780,10 +606,7 @@
780
606
  },
781
607
  "heat_temp_max": {
782
608
  "type": "number",
783
- "label": {
784
- "de": "Maximale Pooltemperatur (°C – Sicherheitsabschaltung)",
785
- "en": "Maximum Pool Temperature (°C – Safety Cutoff)"
786
- },
609
+ "label": "Maximum Pool Temperature (°C – Safety Cutoff)",
787
610
  "default": 30,
788
611
  "xs": 12,
789
612
  "sm": 3,
@@ -793,10 +616,7 @@
793
616
  },
794
617
  "heat_control_hint": {
795
618
  "type": "staticText",
796
- "text": {
797
- "de": "Hinweis: Die Heizungssteuerung arbeitet temperaturgeführt und nur, wenn die Poolsaison aktiv ist. Je nach ausgewählter Steuerungsart wird entweder eine Messsteckdose geschaltet oder ein logischer Steuer-State (true/false) gesetzt.",
798
- "en": "Note: Heating control is temperature-driven and only active during pool season. Depending on the selected control type, either a smart plug is switched or a logical control state (true/false) is set."
799
- },
619
+ "text": "Note: Heating control is temperature-driven and only active during pool season. Depending on the selected control type, either a smart plug is switched or a logical control state (true/false) is set.",
800
620
  "newLine": true,
801
621
  "xs": 12,
802
622
  "sm": 12,
@@ -808,17 +628,11 @@
808
628
  },
809
629
  "timecontrol": {
810
630
  "type": "panel",
811
- "label": {
812
- "de": "Zeitsteuerung",
813
- "en": "Time Control"
814
- },
631
+ "label": "Time Control",
815
632
  "items": {
816
633
  "time1_active_header": {
817
634
  "type": "header",
818
- "text": {
819
- "de": "Zeitfenster 1",
820
- "en": "Time Window 1"
821
- },
635
+ "text": "Time Windows",
822
636
  "size": 4,
823
637
  "newLine": true,
824
638
  "xs": 12,
@@ -829,10 +643,7 @@
829
643
  },
830
644
  "time1_active": {
831
645
  "type": "checkbox",
832
- "label": {
833
- "de": "Zeitfenster 1 aktiv",
834
- "en": "Enable Time Window 1"
835
- },
646
+ "label": "Enable Time Window 1",
836
647
  "default": true,
837
648
  "xs": 12,
838
649
  "sm": 3,
@@ -843,10 +654,7 @@
843
654
  },
844
655
  "time1_start": {
845
656
  "type": "text",
846
- "label": {
847
- "de": "Start (HH:MM)",
848
- "en": "Start (HH:MM)"
849
- },
657
+ "label": "Start (HH:MM)",
850
658
  "default": "08:00",
851
659
  "xs": 12,
852
660
  "sm": 3,
@@ -856,10 +664,7 @@
856
664
  },
857
665
  "time1_end": {
858
666
  "type": "text",
859
- "label": {
860
- "de": "Ende (HH:MM)",
861
- "en": "End (HH:MM)"
862
- },
667
+ "label": "End (HH:MM)",
863
668
  "default": "10:00",
864
669
  "xs": 12,
865
670
  "sm": 3,
@@ -867,20 +672,17 @@
867
672
  "lg": 3,
868
673
  "xl": 3
869
674
  },
870
- "time1_day_mon": { "type": "checkbox", "label": { "de": "Montag", "en": "Monday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
871
- "time1_day_tue": { "type": "checkbox", "label": { "de": "Dienstag", "en": "Tuesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
872
- "time1_day_wed": { "type": "checkbox", "label": { "de": "Mittwoch", "en": "Wednesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
873
- "time1_day_thu": { "type": "checkbox", "label": { "de": "Donnerstag", "en": "Thursday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
874
- "time1_day_fri": { "type": "checkbox", "label": { "de": "Freitag", "en": "Friday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
875
- "time1_day_sat": { "type": "checkbox", "label": { "de": "Samstag", "en": "Saturday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
876
- "time1_day_sun": { "type": "checkbox", "label": { "de": "Sonntag", "en": "Sunday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
675
+ "time1_day_mon": { "type": "checkbox", "label": "Monday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
676
+ "time1_day_tue": { "type": "checkbox", "label": "Tuesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
677
+ "time1_day_wed": { "type": "checkbox", "label": "Wednesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
678
+ "time1_day_thu": { "type": "checkbox", "label": "Thursday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
679
+ "time1_day_fri": { "type": "checkbox", "label": "Friday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
680
+ "time1_day_sat": { "type": "checkbox", "label": "Saturday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
681
+ "time1_day_sun": { "type": "checkbox", "label": "Sunday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
877
682
 
878
683
  "time2_active_header": {
879
684
  "type": "header",
880
- "text": {
881
- "de": "Zeitfenster 2",
882
- "en": "Time Window 2"
883
- },
685
+ "text": "Time Window 2",
884
686
  "size": 4,
885
687
  "newLine": true,
886
688
  "xs": 12,
@@ -891,10 +693,7 @@
891
693
  },
892
694
  "time2_active": {
893
695
  "type": "checkbox",
894
- "label": {
895
- "de": "Zeitfenster 2 aktiv",
896
- "en": "Enable Time Window 2"
897
- },
696
+ "label": "Enable Time Window 2",
898
697
  "default": false,
899
698
  "xs": 12,
900
699
  "sm": 3,
@@ -905,10 +704,7 @@
905
704
  },
906
705
  "time2_start": {
907
706
  "type": "text",
908
- "label": {
909
- "de": "Start (HH:MM)",
910
- "en": "Start (HH:MM)"
911
- },
707
+ "label": "Start (HH:MM)",
912
708
  "default": "14:00",
913
709
  "xs": 12,
914
710
  "sm": 3,
@@ -918,10 +714,7 @@
918
714
  },
919
715
  "time2_end": {
920
716
  "type": "text",
921
- "label": {
922
- "de": "Ende (HH:MM)",
923
- "en": "End (HH:MM)"
924
- },
717
+ "label": "End (HH:MM)",
925
718
  "default": "16:00",
926
719
  "xs": 12,
927
720
  "sm": 3,
@@ -929,20 +722,17 @@
929
722
  "lg": 3,
930
723
  "xl": 3
931
724
  },
932
- "time2_day_mon": { "type": "checkbox", "label": { "de": "Montag", "en": "Monday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
933
- "time2_day_tue": { "type": "checkbox", "label": { "de": "Dienstag", "en": "Tuesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
934
- "time2_day_wed": { "type": "checkbox", "label": { "de": "Mittwoch", "en": "Wednesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
935
- "time2_day_thu": { "type": "checkbox", "label": { "de": "Donnerstag", "en": "Thursday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
936
- "time2_day_fri": { "type": "checkbox", "label": { "de": "Freitag", "en": "Friday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
937
- "time2_day_sat": { "type": "checkbox", "label": { "de": "Samstag", "en": "Saturday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
938
- "time2_day_sun": { "type": "checkbox", "label": { "de": "Sonntag", "en": "Sunday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
725
+ "time2_day_mon": { "type": "checkbox", "label": "Monday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
726
+ "time2_day_tue": { "type": "checkbox", "label": "Tuesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
727
+ "time2_day_wed": { "type": "checkbox", "label": "Wednesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
728
+ "time2_day_thu": { "type": "checkbox", "label": "Thursday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
729
+ "time2_day_fri": { "type": "checkbox", "label": "Friday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
730
+ "time2_day_sat": { "type": "checkbox", "label": "Saturday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
731
+ "time2_day_sun": { "type": "checkbox", "label": "Sunday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
939
732
 
940
733
  "time3_active_header": {
941
734
  "type": "header",
942
- "text": {
943
- "de": "Zeitfenster 3",
944
- "en": "Time Window 3"
945
- },
735
+ "text": "Time Window 3",
946
736
  "size": 4,
947
737
  "newLine": true,
948
738
  "xs": 12,
@@ -953,10 +743,7 @@
953
743
  },
954
744
  "time3_active": {
955
745
  "type": "checkbox",
956
- "label": {
957
- "de": "Zeitfenster 3 aktiv",
958
- "en": "Enable Time Window 3"
959
- },
746
+ "label": "Enable Time Window 3",
960
747
  "default": false,
961
748
  "xs": 12,
962
749
  "sm": 3,
@@ -967,10 +754,7 @@
967
754
  },
968
755
  "time3_start": {
969
756
  "type": "text",
970
- "label": {
971
- "de": "Start (HH:MM)",
972
- "en": "Start (HH:MM)"
973
- },
757
+ "label": "Start (HH:MM)",
974
758
  "default": "18:00",
975
759
  "xs": 12,
976
760
  "sm": 3,
@@ -980,10 +764,7 @@
980
764
  },
981
765
  "time3_end": {
982
766
  "type": "text",
983
- "label": {
984
- "de": "Ende (HH:MM)",
985
- "en": "End (HH:MM)"
986
- },
767
+ "label": "End (HH:MM)",
987
768
  "default": "20:00",
988
769
  "xs": 12,
989
770
  "sm": 3,
@@ -991,28 +772,22 @@
991
772
  "lg": 3,
992
773
  "xl": 3
993
774
  },
994
- "time3_day_mon": { "type": "checkbox", "label": { "de": "Montag", "en": "Monday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
995
- "time3_day_tue": { "type": "checkbox", "label": { "de": "Dienstag", "en": "Tuesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
996
- "time3_day_wed": { "type": "checkbox", "label": { "de": "Mittwoch", "en": "Wednesday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
997
- "time3_day_thu": { "type": "checkbox", "label": { "de": "Donnerstag", "en": "Thursday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
998
- "time3_day_fri": { "type": "checkbox", "label": { "de": "Freitag", "en": "Friday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
999
- "time3_day_sat": { "type": "checkbox", "label": { "de": "Samstag", "en": "Saturday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
1000
- "time3_day_sun": { "type": "checkbox", "label": { "de": "Sonntag", "en": "Sunday" }, "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 }
775
+ "time3_day_mon": { "type": "checkbox", "label": "Monday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1, "newLine": true },
776
+ "time3_day_tue": { "type": "checkbox", "label": "Tuesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
777
+ "time3_day_wed": { "type": "checkbox", "label": "Wednesday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
778
+ "time3_day_thu": { "type": "checkbox", "label": "Thursday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
779
+ "time3_day_fri": { "type": "checkbox", "label": "Friday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
780
+ "time3_day_sat": { "type": "checkbox", "label": "Saturday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 },
781
+ "time3_day_sun": { "type": "checkbox", "label": "Sunday", "default": true, "xs": 12, "sm": 1, "md": 1, "lg": 1, "xl": 1 }
1001
782
  }
1002
783
  },
1003
784
  "speech": {
1004
785
  "type": "panel",
1005
- "label": {
1006
- "de": "Sprachausgaben",
1007
- "en": "Speech Output"
1008
- },
786
+ "label": "Speech Output",
1009
787
  "items": {
1010
788
  "speech_general_header": {
1011
789
  "type": "header",
1012
- "text": {
1013
- "de": "Generell",
1014
- "en": "General"
1015
- },
790
+ "text": "General",
1016
791
  "size": 4,
1017
792
  "newLine": true,
1018
793
  "xs": 12,
@@ -1023,10 +798,7 @@
1023
798
  },
1024
799
  "speech_active": {
1025
800
  "type": "checkbox",
1026
- "label": {
1027
- "de": "Sprachausgaben aktivieren",
1028
- "en": "Enable speech output"
1029
- },
801
+ "label": "Enable speech output",
1030
802
  "default": false,
1031
803
  "xs": 12,
1032
804
  "sm": 3,
@@ -1038,10 +810,7 @@
1038
810
 
1039
811
  "speech_alexa_header": {
1040
812
  "type": "header",
1041
- "text": {
1042
- "de": "Amazon Alexa",
1043
- "en": "Amazon Alexa"
1044
- },
813
+ "text": "Amazon Alexa",
1045
814
  "size": 4,
1046
815
  "newLine": true,
1047
816
  "xs": 12,
@@ -1052,10 +821,7 @@
1052
821
  },
1053
822
  "speech_alexa_enabled": {
1054
823
  "type": "checkbox",
1055
- "label": {
1056
- "de": "Ausgabe über Alexa aktivieren",
1057
- "en": "Enable Alexa output"
1058
- },
824
+ "label": "Enable Alexa output",
1059
825
  "default": false,
1060
826
  "xs": 12,
1061
827
  "sm": 3,
@@ -1066,10 +832,7 @@
1066
832
  },
1067
833
  "speech_alexa_device": {
1068
834
  "type": "objectId",
1069
- "label": {
1070
- "de": "Alexa-Gerät",
1071
- "en": "Alexa device"
1072
- },
835
+ "label": "Alexa device",
1073
836
  "default": "",
1074
837
  "xs": 12,
1075
838
  "sm": 6,
@@ -1079,10 +842,7 @@
1079
842
  },
1080
843
  "speech_alexa_volume": {
1081
844
  "type": "number",
1082
- "label": {
1083
- "de": "Lautstärke (0–100)",
1084
- "en": "Volume (0–100)"
1085
- },
845
+ "label": "Volume (0–100)",
1086
846
  "default": 50,
1087
847
  "xs": 12,
1088
848
  "sm": 3,
@@ -1093,23 +853,14 @@
1093
853
  },
1094
854
  "speech_alexa_voice": {
1095
855
  "type": "select",
1096
- "label": {
1097
- "de": "Stimme",
1098
- "en": "Voice"
1099
- },
856
+ "label": "Voice",
1100
857
  "options": [
1101
858
  {
1102
- "label": {
1103
- "de": "Standard (weiblich)",
1104
- "en": "Default (female)"
1105
- },
859
+ "label": "Default (female)",
1106
860
  "value": "female"
1107
861
  },
1108
862
  {
1109
- "label": {
1110
- "de": "Männlich",
1111
- "en": "Male"
1112
- },
863
+ "label": "Male",
1113
864
  "value": "male"
1114
865
  }
1115
866
  ],
@@ -1123,10 +874,7 @@
1123
874
 
1124
875
  "speech_telegram_header": {
1125
876
  "type": "header",
1126
- "text": {
1127
- "de": "Telegram",
1128
- "en": "Telegram"
1129
- },
877
+ "text": "Telegram",
1130
878
  "size": 4,
1131
879
  "newLine": true,
1132
880
  "xs": 12,
@@ -1137,10 +885,7 @@
1137
885
  },
1138
886
  "speech_telegram_enabled": {
1139
887
  "type": "checkbox",
1140
- "label": {
1141
- "de": "Ausgabe über Telegram aktivieren",
1142
- "en": "Enable Telegram output"
1143
- },
888
+ "label": "Enable Telegram output",
1144
889
  "default": false,
1145
890
  "xs": 12,
1146
891
  "sm": 3,
@@ -1152,10 +897,7 @@
1152
897
  "speech_telegram_instance": {
1153
898
  "type": "instance",
1154
899
  "adapter": "telegram",
1155
- "label": {
1156
- "de": "Telegram-Instanz",
1157
- "en": "Telegram instance"
1158
- },
900
+ "label": "Telegram instance",
1159
901
  "default": "telegram.0",
1160
902
  "xs": 12,
1161
903
  "sm": 6,
@@ -1175,14 +917,8 @@
1175
917
  },
1176
918
  "speech_telegram_users": {
1177
919
  "type": "text",
1178
- "label": {
1179
- "de": "Telegram-Empfänger (Benutzernamen, Komma-getrennt / leer = an alle Benutzer)",
1180
- "en": "Telegram recipients (usernames, comma separated / empty = send to all users)"
1181
- },
1182
- "tooltip": {
1183
- "de": "Beispiel: Dirk,Dennis (leer = an alle Benutzer senden)",
1184
- "en": "Example: Dirk,Dennis (empty = send to all users)"
1185
- },
920
+ "label": "Telegram recipients (usernames, comma separated / empty = send to all users)",
921
+ "tooltip": "Example: Dirk,Dennis (empty = send to all users)",
1186
922
  "default": "",
1187
923
  "xs": 12,
1188
924
  "sm": 6,
@@ -1193,10 +929,7 @@
1193
929
 
1194
930
  "speech_mail_header": {
1195
931
  "type": "header",
1196
- "text": {
1197
- "de": "Mail",
1198
- "en": "Mail"
1199
- },
932
+ "text": "Mail",
1200
933
  "size": 4,
1201
934
  "newLine": true,
1202
935
  "xs": 12,
@@ -1207,10 +940,7 @@
1207
940
  },
1208
941
  "speech_email_enabled": {
1209
942
  "type": "checkbox",
1210
- "label": {
1211
- "de": "Ausgabe über E-Mail aktivieren",
1212
- "en": "Enable email output"
1213
- },
943
+ "label": "Enable email output",
1214
944
  "default": false,
1215
945
  "xs": 12,
1216
946
  "sm": 3,
@@ -1222,10 +952,7 @@
1222
952
  "speech_email_instance": {
1223
953
  "type": "instance",
1224
954
  "adapter": "email",
1225
- "label": {
1226
- "de": "E-Mail Adapter-Instanz",
1227
- "en": "Email adapter instance"
1228
- },
955
+ "label": "Email adapter instance",
1229
956
  "default": "email.0",
1230
957
  "xs": 12,
1231
958
  "sm": 6,
@@ -1235,10 +962,7 @@
1235
962
  },
1236
963
  "speech_email_recipient": {
1237
964
  "type": "text",
1238
- "label": {
1239
- "de": "Empfänger-Adresse",
1240
- "en": "Recipient address"
1241
- },
965
+ "label": "Recipient address",
1242
966
  "default": "meineadresse@example.com",
1243
967
  "xs": 12,
1244
968
  "sm": 6,
@@ -1249,11 +973,8 @@
1249
973
  },
1250
974
  "speech_email_subject": {
1251
975
  "type": "text",
1252
- "label": {
1253
- "de": "E-Mail Betreff",
1254
- "en": "Email subject"
1255
- },
1256
- "default": "PoolControl Nachricht",
976
+ "label": "Email subject",
977
+ "default": "PoolControl Notification",
1257
978
  "xs": 12,
1258
979
  "sm": 6,
1259
980
  "md": 6,
@@ -1268,10 +989,7 @@
1268
989
 
1269
990
  "speech_temp_threshold": {
1270
991
  "type": "number",
1271
- "label": {
1272
- "de": "Temperaturschwelle für Ansage (°C)",
1273
- "en": "Temperature threshold for announcement (°C)"
1274
- },
992
+ "label": "Temperature threshold for announcement (°C)",
1275
993
  "default": 25,
1276
994
  "xs": 12,
1277
995
  "sm": 3,
@@ -1282,10 +1000,7 @@
1282
1000
  },
1283
1001
  "speech_include_errors": {
1284
1002
  "type": "checkbox",
1285
- "label": {
1286
- "de": "Fehlermeldungen ansagen",
1287
- "en": "Announce error messages"
1288
- },
1003
+ "label": "Announce error messages",
1289
1004
  "default": true,
1290
1005
  "xs": 12,
1291
1006
  "sm": 3,
@@ -1297,17 +1012,11 @@
1297
1012
  },
1298
1013
  "consumption": {
1299
1014
  "type": "panel",
1300
- "label": {
1301
- "de": "PV, Verbrauch & Kosten",
1302
- "en": "PV, Consumption & Costs"
1303
- },
1015
+ "label": "PV, Consumption & Costs",
1304
1016
  "items": {
1305
1017
  "consumption_header": {
1306
1018
  "type": "header",
1307
- "text": {
1308
- "de": "Verbrauch- und Kostenberechnung",
1309
- "en": "Consumption and cost calculation"
1310
- },
1019
+ "text": "Consumption and cost calculation",
1311
1020
  "size": 4,
1312
1021
  "newLine": true,
1313
1022
  "xs": 12,
@@ -1318,10 +1027,7 @@
1318
1027
  },
1319
1028
  "consumption_enabled": {
1320
1029
  "type": "checkbox",
1321
- "label": {
1322
- "de": "Verbrauchs- und Kostenberechnung aktivieren",
1323
- "en": "Enable consumption and cost calculation"
1324
- },
1030
+ "label": "Enable consumption and cost calculation",
1325
1031
  "default": false,
1326
1032
  "xs": 12,
1327
1033
  "sm": 6,
@@ -1333,10 +1039,7 @@
1333
1039
 
1334
1040
  "external_energy_total_id": {
1335
1041
  "type": "objectId",
1336
- "label": {
1337
- "de": "Objekt-ID externer kWh-Zähler",
1338
- "en": "Object ID external kWh meter"
1339
- },
1042
+ "label": "Object ID external kWh meter",
1340
1043
  "default": "",
1341
1044
  "xs": 12,
1342
1045
  "sm": 6,
@@ -1346,10 +1049,7 @@
1346
1049
  },
1347
1050
  "energy_price_eur_kwh": {
1348
1051
  "type": "number",
1349
- "label": {
1350
- "de": "Strompreis (€ / kWh)",
1351
- "en": "Electricity price (€ / kWh)"
1352
- },
1052
+ "label": "Electricity price (€ / kWh)",
1353
1053
  "default": 0.35,
1354
1054
  "min": 0,
1355
1055
  "step": 0.01,
@@ -1363,10 +1063,7 @@
1363
1063
 
1364
1064
  "consumption_hint": {
1365
1065
  "type": "staticText",
1366
- "text": {
1367
- "de": "Hinweis: Für die Verbrauchsberechnung wird ein externer kWh-Zähler benötigt (z. B. Messsteckdose).",
1368
- "en": "Note: An external kWh meter is required for consumption calculation (e.g. smart plug)."
1369
- },
1066
+ "text": "Note: An external kWh meter is required for consumption calculation (e.g. smart plug).",
1370
1067
  "newLine": true,
1371
1068
  "xs": 12,
1372
1069
  "sm": 12,
@@ -1377,10 +1074,7 @@
1377
1074
 
1378
1075
  "pv_header": {
1379
1076
  "type": "header",
1380
- "text": {
1381
- "de": "Photovoltaik (Überschusserkennung)",
1382
- "en": "Photovoltaics (Surplus detection)"
1383
- },
1077
+ "text": "Photovoltaics (Surplus detection)",
1384
1078
  "size": 4,
1385
1079
  "newLine": true,
1386
1080
  "xs": 12,
@@ -1392,46 +1086,31 @@
1392
1086
 
1393
1087
  "power_generated_id": {
1394
1088
  "type": "objectId",
1395
- "label": {
1396
- "de": "Objekt-ID PV-Erzeugungsleistung (W)",
1397
- "en": "Object ID PV generation power (W)"
1398
- },
1089
+ "label": "Object ID PV generation power (W)",
1399
1090
  "default": "",
1400
1091
  "xs": 12,
1401
1092
  "sm": 6,
1402
1093
  "md": 6,
1403
1094
  "lg": 6,
1404
1095
  "xl": 6,
1405
- "tooltip": {
1406
- "de": "Datenpunkt mit aktueller PV-Leistung (Watt)",
1407
- "en": "Datapoint containing current PV power (Watts)"
1408
- }
1096
+ "tooltip": "Datapoint containing current PV power (Watts)"
1409
1097
  },
1410
1098
 
1411
1099
  "power_house_id": {
1412
1100
  "type": "objectId",
1413
- "label": {
1414
- "de": "Objekt-ID Hausverbrauch (W)",
1415
- "en": "Object ID house consumption (W)"
1416
- },
1101
+ "label": "Object ID house consumption (W)",
1417
1102
  "default": "",
1418
1103
  "xs": 12,
1419
1104
  "sm": 6,
1420
1105
  "md": 6,
1421
1106
  "lg": 6,
1422
1107
  "xl": 6,
1423
- "tooltip": {
1424
- "de": "Datenpunkt mit aktuellem Hausverbrauch (Watt)",
1425
- "en": "Datapoint containing current house consumption (Watts)"
1426
- }
1108
+ "tooltip": "Datapoint containing current house consumption (Watts)"
1427
1109
  },
1428
1110
 
1429
1111
  "threshold_w": {
1430
1112
  "type": "number",
1431
- "label": {
1432
- "de": "Schwellwert für PV-Überschuss (W)",
1433
- "en": "Threshold for PV surplus (W)"
1434
- },
1113
+ "label": "Threshold for PV surplus (W)",
1435
1114
  "default": 200,
1436
1115
  "min": 0,
1437
1116
  "max": 2000,
@@ -1441,26 +1120,17 @@
1441
1120
  "md": 3,
1442
1121
  "lg": 3,
1443
1122
  "xl": 3,
1444
- "tooltip": {
1445
- "de": "Ab welcher Differenz zwischen PV und Hausverbrauch ein Überschuss gilt",
1446
- "en": "Difference between PV generation and house consumption that counts as surplus"
1447
- }
1123
+ "tooltip": "Difference between PV generation and house consumption that counts as surplus"
1448
1124
  }
1449
1125
  }
1450
1126
  },
1451
1127
  "actuators": {
1452
1128
  "type": "panel",
1453
- "label": {
1454
- "de": "Zusatz-Aktoren",
1455
- "en": "Additional Actuators"
1456
- },
1129
+ "label": "Additional Actuators",
1457
1130
  "items": {
1458
1131
  "actuators_header": {
1459
1132
  "type": "header",
1460
- "text": {
1461
- "de": "Zusatz-Aktoren (Ventile, Beleuchtung & Zusatzpumpen)",
1462
- "en": "Additional actuators (valves, lighting & auxiliary pumps)"
1463
- },
1133
+ "text": "Additional actuators (valves, lighting & auxiliary pumps)",
1464
1134
  "size": 4,
1465
1135
  "newLine": true,
1466
1136
  "xs": 12,
@@ -1471,10 +1141,7 @@
1471
1141
  },
1472
1142
  "actuators_intro": {
1473
1143
  "type": "staticText",
1474
- "text": {
1475
- "de": "In diesem Bereich können optionale Zusatz-Aktoren konfiguriert werden. Aktoren werden nur dann im Adapter angelegt, wenn sie explizit aktiviert werden.",
1476
- "en": "Optional additional actuators can be configured here. Actuators are only created in the adapter if they are explicitly enabled."
1477
- },
1144
+ "text": "Optional additional actuators can be configured here. Actuators are only created in the adapter if they are explicitly enabled.",
1478
1145
  "newLine": true,
1479
1146
  "xs": 12,
1480
1147
  "sm": 12,
@@ -1485,10 +1152,7 @@
1485
1152
 
1486
1153
  "lighting_header": {
1487
1154
  "type": "header",
1488
- "text": {
1489
- "de": "Beleuchtung",
1490
- "en": "Lighting"
1491
- },
1155
+ "text": "Lighting",
1492
1156
  "size": 4,
1493
1157
  "newLine": true,
1494
1158
  "xs": 12,
@@ -1500,10 +1164,7 @@
1500
1164
 
1501
1165
  "light_1_active": {
1502
1166
  "type": "checkbox",
1503
- "label": {
1504
- "de": "Beleuchtung 1 aktiv",
1505
- "en": "Lighting 1 active"
1506
- },
1167
+ "label": "Lighting 1 active",
1507
1168
  "default": false,
1508
1169
  "newLine": true,
1509
1170
  "xs": 12,
@@ -1514,10 +1175,7 @@
1514
1175
  },
1515
1176
  "light_1_name": {
1516
1177
  "type": "text",
1517
- "label": {
1518
- "de": "Name Beleuchtung 1",
1519
- "en": "Name Lighting 1"
1520
- },
1178
+ "label": "Name Lighting 1",
1521
1179
  "default": "",
1522
1180
  "xs": 12,
1523
1181
  "sm": 3,
@@ -1527,10 +1185,7 @@
1527
1185
  },
1528
1186
  "light_1_object": {
1529
1187
  "type": "objectId",
1530
- "label": {
1531
- "de": "Objekt-ID Beleuchtung 1",
1532
- "en": "Object ID Lighting 1"
1533
- },
1188
+ "label": "Object ID Lighting 1",
1534
1189
  "default": "",
1535
1190
  "xs": 12,
1536
1191
  "sm": 6,
@@ -1541,10 +1196,7 @@
1541
1196
 
1542
1197
  "light_2_active": {
1543
1198
  "type": "checkbox",
1544
- "label": {
1545
- "de": "Beleuchtung 2 aktiv",
1546
- "en": "Lighting 2 active"
1547
- },
1199
+ "label": "Lighting 2 active",
1548
1200
  "default": false,
1549
1201
  "newLine": true,
1550
1202
  "xs": 12,
@@ -1555,10 +1207,7 @@
1555
1207
  },
1556
1208
  "light_2_name": {
1557
1209
  "type": "text",
1558
- "label": {
1559
- "de": "Name Beleuchtung 2",
1560
- "en": "Name Lighting 2"
1561
- },
1210
+ "label": "Name Lighting 2",
1562
1211
  "default": "",
1563
1212
  "xs": 12,
1564
1213
  "sm": 3,
@@ -1568,10 +1217,7 @@
1568
1217
  },
1569
1218
  "light_2_object": {
1570
1219
  "type": "objectId",
1571
- "label": {
1572
- "de": "Objekt-ID Beleuchtung 2",
1573
- "en": "Object ID Lighting 2"
1574
- },
1220
+ "label": "Object ID Lighting 2",
1575
1221
  "default": "",
1576
1222
  "xs": 12,
1577
1223
  "sm": 6,
@@ -1582,10 +1228,7 @@
1582
1228
 
1583
1229
  "light_3_active": {
1584
1230
  "type": "checkbox",
1585
- "label": {
1586
- "de": "Beleuchtung 3 aktiv",
1587
- "en": "Lighting 3 active"
1588
- },
1231
+ "label": "Lighting 3 active",
1589
1232
  "default": false,
1590
1233
  "newLine": true,
1591
1234
  "xs": 12,
@@ -1596,10 +1239,7 @@
1596
1239
  },
1597
1240
  "light_3_name": {
1598
1241
  "type": "text",
1599
- "label": {
1600
- "de": "Name Beleuchtung 3",
1601
- "en": "Name Lighting 3"
1602
- },
1242
+ "label": "Name Lighting 3",
1603
1243
  "default": "",
1604
1244
  "xs": 12,
1605
1245
  "sm": 3,
@@ -1609,10 +1249,7 @@
1609
1249
  },
1610
1250
  "light_3_object": {
1611
1251
  "type": "objectId",
1612
- "label": {
1613
- "de": "Objekt-ID Beleuchtung 3",
1614
- "en": "Object ID Lighting 3"
1615
- },
1252
+ "label": "Object ID Lighting 3",
1616
1253
  "default": "",
1617
1254
  "xs": 12,
1618
1255
  "sm": 6,
@@ -1623,10 +1260,7 @@
1623
1260
 
1624
1261
  "extrapumps_header": {
1625
1262
  "type": "header",
1626
- "text": {
1627
- "de": "Zusatzpumpen & Attraktionen",
1628
- "en": "Auxiliary pumps & attractions"
1629
- },
1263
+ "text": "Auxiliary pumps & attractions",
1630
1264
  "size": 4,
1631
1265
  "newLine": true,
1632
1266
  "xs": 12,
@@ -1638,10 +1272,7 @@
1638
1272
 
1639
1273
  "extrapump_1_active": {
1640
1274
  "type": "checkbox",
1641
- "label": {
1642
- "de": "Zusatzpumpe 1 aktiv",
1643
- "en": "Auxiliary pump 1 active"
1644
- },
1275
+ "label": "Auxiliary pump 1 active",
1645
1276
  "default": false,
1646
1277
  "newLine": true,
1647
1278
  "xs": 12,
@@ -1652,10 +1283,7 @@
1652
1283
  },
1653
1284
  "extrapump_1_name": {
1654
1285
  "type": "text",
1655
- "label": {
1656
- "de": "Name Zusatzpumpe 1",
1657
- "en": "Name Auxiliary pump 1"
1658
- },
1286
+ "label": "Name Auxiliary pump 1",
1659
1287
  "default": "",
1660
1288
  "xs": 12,
1661
1289
  "sm": 3,
@@ -1665,10 +1293,7 @@
1665
1293
  },
1666
1294
  "extrapump_1_object": {
1667
1295
  "type": "objectId",
1668
- "label": {
1669
- "de": "Objekt-ID Zusatzpumpe 1",
1670
- "en": "Object ID Auxiliary pump 1"
1671
- },
1296
+ "label": "Object ID Auxiliary pump 1",
1672
1297
  "default": "",
1673
1298
  "xs": 12,
1674
1299
  "sm": 6,
@@ -1679,10 +1304,7 @@
1679
1304
 
1680
1305
  "extrapump_2_active": {
1681
1306
  "type": "checkbox",
1682
- "label": {
1683
- "de": "Zusatzpumpe 2 aktiv",
1684
- "en": "Auxiliary pump 2 active"
1685
- },
1307
+ "label": "Auxiliary pump 2 active",
1686
1308
  "default": false,
1687
1309
  "newLine": true,
1688
1310
  "xs": 12,
@@ -1693,10 +1315,7 @@
1693
1315
  },
1694
1316
  "extrapump_2_name": {
1695
1317
  "type": "text",
1696
- "label": {
1697
- "de": "Name Zusatzpumpe 2",
1698
- "en": "Name Auxiliary pump 2"
1699
- },
1318
+ "label": "Name Auxiliary pump 2",
1700
1319
  "default": "",
1701
1320
  "xs": 12,
1702
1321
  "sm": 3,
@@ -1706,10 +1325,7 @@
1706
1325
  },
1707
1326
  "extrapump_2_object": {
1708
1327
  "type": "objectId",
1709
- "label": {
1710
- "de": "Objekt-ID Zusatzpumpe 2",
1711
- "en": "Object ID Auxiliary pump 2"
1712
- },
1328
+ "label": "Object ID Auxiliary pump 2",
1713
1329
  "default": "",
1714
1330
  "xs": 12,
1715
1331
  "sm": 6,
@@ -1720,10 +1336,7 @@
1720
1336
 
1721
1337
  "extrapump_3_active": {
1722
1338
  "type": "checkbox",
1723
- "label": {
1724
- "de": "Zusatzpumpe 3 aktiv",
1725
- "en": "Auxiliary pump 3 active"
1726
- },
1339
+ "label": "Auxiliary pump 3 active",
1727
1340
  "default": false,
1728
1341
  "newLine": true,
1729
1342
  "xs": 12,
@@ -1734,10 +1347,7 @@
1734
1347
  },
1735
1348
  "extrapump_3_name": {
1736
1349
  "type": "text",
1737
- "label": {
1738
- "de": "Name Zusatzpumpe 3",
1739
- "en": "Name Auxiliary pump 3"
1740
- },
1350
+ "label": "Name Auxiliary pump 3",
1741
1351
  "default": "",
1742
1352
  "xs": 12,
1743
1353
  "sm": 3,
@@ -1747,10 +1357,7 @@
1747
1357
  },
1748
1358
  "extrapump_3_object": {
1749
1359
  "type": "objectId",
1750
- "label": {
1751
- "de": "Objekt-ID Zusatzpumpe 3",
1752
- "en": "Object ID Auxiliary pump 3"
1753
- },
1360
+ "label": "Object ID Auxiliary pump 3",
1754
1361
  "default": "",
1755
1362
  "xs": 12,
1756
1363
  "sm": 6,
@@ -1762,17 +1369,11 @@
1762
1369
  },
1763
1370
  "help": {
1764
1371
  "type": "panel",
1765
- "label": {
1766
- "de": "Hilfe & Info",
1767
- "en": "Help & Info"
1768
- },
1372
+ "label": "Help & Info",
1769
1373
  "items": {
1770
1374
  "help_header": {
1771
1375
  "type": "header",
1772
- "text": {
1773
- "de": "Hilfe und Hinweise",
1774
- "en": "Help and Information"
1775
- },
1376
+ "text": "Help and Information",
1776
1377
  "size": 4,
1777
1378
  "newLine": true,
1778
1379
  "xs": 12,
@@ -1781,13 +1382,10 @@
1781
1382
  "lg": 12,
1782
1383
  "xl": 12
1783
1384
  },
1784
- "helpLink": {
1785
- "type": "staticLink",
1786
- "label": {
1787
- "de": "Öffne die ausführliche Dokumentation auf GitHub",
1788
- "en": "Open the detailed documentation on GitHub"
1789
- },
1790
- "href": "https://github.com/DasBo1975/ioBroker.poolcontrol/blob/main/admin/help.md",
1385
+ "helpLink_en": {
1386
+ "type": "staticLink",
1387
+ "label": "Open documentation (English) on GitHub",
1388
+ "href": "https://github.com/DasBo1975/ioBroker.poolcontrol/blob/main/docs/en/help.md",
1791
1389
  "newLine": true,
1792
1390
  "xs": 12,
1793
1391
  "sm": 12,
@@ -1795,12 +1393,19 @@
1795
1393
  "lg": 12,
1796
1394
  "xl": 12
1797
1395
  },
1396
+ "helpLink_de": {
1397
+ "type": "staticLink",
1398
+ "label": "Open documentation (German) on GitHub",
1399
+ "href": "https://github.com/DasBo1975/ioBroker.poolcontrol/blob/main/docs/de/help.md",
1400
+ "xs": 12,
1401
+ "sm": 12,
1402
+ "md": 12,
1403
+ "lg": 12,
1404
+ "xl": 12
1405
+ },
1798
1406
  "helpText": {
1799
1407
  "type": "staticText",
1800
- "text": {
1801
- "de": "Hier finden Sie die vollständige Dokumentation und Hinweise zu allen Einstellungen. Weitere Hinweise zu künftigen Versionen folgen.",
1802
- "en": "Here you will find the complete documentation and information about all settings. Additional information about future versions will follow."
1803
- },
1408
+ "text": "Here you will find the complete documentation and information about all settings. Additional information about future versions will follow.",
1804
1409
  "xs": 12,
1805
1410
  "sm": 12,
1806
1411
  "md": 12,
@@ -1810,10 +1415,7 @@
1810
1415
 
1811
1416
  "ai_info_header": {
1812
1417
  "type": "header",
1813
- "text": {
1814
- "de": "Wichtige Hinweise zum KI-System",
1815
- "en": "Important information about the AI system"
1816
- },
1418
+ "text": "Important information about the AI system",
1817
1419
  "size": 4,
1818
1420
  "newLine": true,
1819
1421
  "xs": 12,
@@ -1824,10 +1426,7 @@
1824
1426
  },
1825
1427
  "ai_info_text": {
1826
1428
  "type": "staticText",
1827
- "text": {
1828
- "de": "Das KI-System (aiHelper & aiForecastHelper) ruft Wetterdaten von Open-Meteo über eine HTTPS-Verbindung ab. Dabei werden die Geodaten aus der ioBroker-Systemkonfiguration (system.config › latitude/longitude) verwendet. Es werden keine Daten gespeichert oder an Dritte übermittelt. Ohne korrekte Geodaten kann das KI-System keine Vorhersagen erzeugen.",
1829
- "en": "The AI system (aiHelper & aiForecastHelper) retrieves weather data from Open-Meteo via HTTPS. It uses the geo-coordinates from the ioBroker system configuration (system.config › latitude/longitude). No data is stored or transmitted to third parties. Without valid geo-coordinates, the AI system cannot generate forecasts."
1830
- },
1429
+ "text": "The AI system (aiHelper & aiForecastHelper) retrieves weather data from Open-Meteo via HTTPS. It uses the geo-coordinates from the ioBroker system configuration (system.config › latitude/longitude). No data is stored or transmitted to third parties. Without valid geo-coordinates, the AI system cannot generate forecasts.",
1831
1430
  "newLine": true,
1832
1431
  "xs": 12,
1833
1432
  "sm": 12,
@@ -1838,10 +1437,7 @@
1838
1437
 
1839
1438
  "help_ai_info": {
1840
1439
  "type": "staticText",
1841
- "text": {
1842
- "de": "Hinweis: Die KI-Funktionen sind vollständig optional und können jederzeit über den Datenpunkt ‚ai.enabled‘ deaktiviert werden. Die Wetterfunktionen (z. B. Wetterhinweise, Pooltipps, Vorhersage für morgen) lassen sich zusätzlich einzeln über die jeweiligen Schalter unter ‚ai.weather.switches.*‘ ein- oder ausschalten. Für die Erstellung der Wetterdaten verwendet der Adapter den Dienst Open-Meteo. Hierfür werden die in ioBroker hinterlegten Geodaten (Breiten- und Längengrad aus system.config) benötigt.",
1843
- "en": "Note: The AI features are completely optional and can be disabled at any time via the 'ai.enabled' datapoint. Weather features (e.g. weather hints, pool tips, forecast for tomorrow) can also be individually enabled or disabled via 'ai.weather.switches.*'. The adapter uses the Open-Meteo service to generate weather data. For this, the geo-coordinates stored in ioBroker (latitude and longitude from system.config) are required."
1844
- },
1440
+ "text": "Note: The AI features are completely optional and can be disabled at any time via the 'ai.enabled' datapoint. Weather features (e.g. weather hints, pool tips, forecast for tomorrow) can also be individually enabled or disabled via 'ai.weather.switches.*'. The adapter uses the Open-Meteo service to generate weather data. For this, the geo-coordinates stored in ioBroker (latitude and longitude from system.config) are required.",
1845
1441
  "newLine": true,
1846
1442
  "xs": 12,
1847
1443
  "sm": 12,
@@ -1852,10 +1448,7 @@
1852
1448
 
1853
1449
  "info_internet_header": {
1854
1450
  "type": "header",
1855
- "text": {
1856
- "de": "Internetzugriffe & Datenschutz",
1857
- "en": "Internet access & data protection"
1858
- },
1451
+ "text": "Internet access & data protection",
1859
1452
  "size": 4,
1860
1453
  "newLine": true,
1861
1454
  "xs": 12,
@@ -1866,10 +1459,7 @@
1866
1459
  },
1867
1460
  "info_internet_text": {
1868
1461
  "type": "staticText",
1869
- "text": {
1870
- "de": "Der PoolControl-Adapter arbeitet grundsätzlich vollständig lokal. Aktuell nutzen nur die KI-Funktionen Wetterdaten von Open-Meteo über eine verschlüsselte HTTPS-Verbindung. Dabei werden ausschließlich die in ioBroker hinterlegten Geodaten (Breiten- und Längengrad) übertragen. Es werden keine weiteren Daten gespeichert oder an Dritte übermittelt. Zukünftig können weitere optionale Internetdienste hinzukommen, diese werden jedoch stets klar gekennzeichnet.",
1871
- "en": "The PoolControl adapter works completely locally by default. Currently, only the AI features access weather data from Open-Meteo via encrypted HTTPS. Only the geo-coordinates stored in ioBroker (latitude and longitude) are transmitted. No additional data is stored or sent to third parties. Future optional internet services may be added, but they will always be clearly marked."
1872
- },
1462
+ "text": "The PoolControl adapter works completely locally by default. Currently, only the AI features access weather data from Open-Meteo via encrypted HTTPS. Only the geo-coordinates stored in ioBroker (latitude and longitude) are transmitted. No additional data is stored or sent to third parties. Future optional internet services may be added, but they will always be clearly marked.",
1873
1463
  "newLine": true,
1874
1464
  "xs": 12,
1875
1465
  "sm": 12,
@@ -1880,10 +1470,7 @@
1880
1470
 
1881
1471
  "info_season_header": {
1882
1472
  "type": "header",
1883
- "text": {
1884
- "de": "Hinweis zur Poolsaison",
1885
- "en": "Note about pool season"
1886
- },
1473
+ "text": "Note about pool season",
1887
1474
  "size": 4,
1888
1475
  "newLine": true,
1889
1476
  "xs": 12,
@@ -1894,10 +1481,7 @@
1894
1481
  },
1895
1482
  "info_season_text": {
1896
1483
  "type": "staticText",
1897
- "text": {
1898
- "de": "Viele automatische Funktionen (z. B. Solarsteuerung, Photovoltaikmodus, KI-Wetterlogik und Diagnosefunktionen) arbeiten nur, wenn die Poolsaison aktiv ist. Der Saisonstatus kann jederzeit über den Datenpunkt 'status.season_active' oder über die Instanzkonfiguration geändert werden.",
1899
- "en": "Many automatic features (e.g. solar control, photovoltaic mode, AI weather logic and diagnostic functions) only operate when the pool season is active. The season status can be changed at any time via the 'status.season_active' datapoint or in the instance configuration."
1900
- },
1484
+ "text": "Many automatic features (e.g. solar control, photovoltaic mode, AI weather logic and diagnostic functions) only operate when the pool season is active. The season status can be changed at any time via the 'status.season_active' datapoint or in the instance configuration.",
1901
1485
  "newLine": true,
1902
1486
  "xs": 12,
1903
1487
  "sm": 12,
@@ -1908,10 +1492,7 @@
1908
1492
 
1909
1493
  "info_speech_header": {
1910
1494
  "type": "header",
1911
- "text": {
1912
- "de": "Zentrale Sprachausgabe (speech.queue)",
1913
- "en": "Central speech output (speech.queue)"
1914
- },
1495
+ "text": "Central speech output (speech.queue)",
1915
1496
  "size": 4,
1916
1497
  "newLine": true,
1917
1498
  "xs": 12,
@@ -1922,10 +1503,7 @@
1922
1503
  },
1923
1504
  "info_speech_text": {
1924
1505
  "type": "staticText",
1925
- "text": {
1926
- "de": "Alle Text- und Sprachausgaben des Adapters – einschließlich KI-Vorhersagen, Warnmeldungen, Pumpenstatus, Solarhinweisen und Diagnosemeldungen – werden über den zentralen Datenpunkt 'speech.queue' ausgegeben. Dieser sollte für VIS-Anzeigen, Alexa- oder Telegram-Ausgaben genutzt werden.",
1927
- "en": "All text and speech outputs of the adapter – including AI forecasts, warnings, pump status, solar hints and diagnostic messages – are emitted via the central 'speech.queue' datapoint. This datapoint should be used for VIS displays, Alexa or Telegram outputs."
1928
- },
1506
+ "text": "All text and speech outputs of the adapter – including AI forecasts, warnings, pump status, solar hints and diagnostic messages – are emitted via the central 'speech.queue' datapoint. This datapoint should be used for VIS displays, Alexa or Telegram outputs.",
1929
1507
  "newLine": true,
1930
1508
  "xs": 12,
1931
1509
  "sm": 12,