iobroker.poolcontrol 0.0.7

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/LICENSE +22 -0
  2. package/README.md +129 -0
  3. package/admin/i18n/de/translations.json +5 -0
  4. package/admin/i18n/en/translations.json +5 -0
  5. package/admin/i18n/es/translations.json +5 -0
  6. package/admin/i18n/fr/translations.json +5 -0
  7. package/admin/i18n/it/translations.json +5 -0
  8. package/admin/i18n/nl/translations.json +5 -0
  9. package/admin/i18n/pl/translations.json +5 -0
  10. package/admin/i18n/pt/translations.json +5 -0
  11. package/admin/i18n/ru/translations.json +5 -0
  12. package/admin/i18n/uk/translations.json +5 -0
  13. package/admin/i18n/zh-cn/translations.json +5 -0
  14. package/admin/jsonConfig.json +901 -0
  15. package/admin/poolcontrol.png +0 -0
  16. package/io-package.json +176 -0
  17. package/lib/adapter-config.d.ts +19 -0
  18. package/lib/helpers/consumptionHelper.js +185 -0
  19. package/lib/helpers/frostHelper.js +94 -0
  20. package/lib/helpers/pumpHelper.js +224 -0
  21. package/lib/helpers/runtimeHelper.js +159 -0
  22. package/lib/helpers/solarHelper.js +138 -0
  23. package/lib/helpers/speechHelper.js +108 -0
  24. package/lib/helpers/temperatureHelper.js +227 -0
  25. package/lib/helpers/timeHelper.js +88 -0
  26. package/lib/stateDefinitions/consumptionStates.js +82 -0
  27. package/lib/stateDefinitions/generalStates.js +68 -0
  28. package/lib/stateDefinitions/pumpStates.js +184 -0
  29. package/lib/stateDefinitions/runtimeStates.js +113 -0
  30. package/lib/stateDefinitions/solarStates.js +150 -0
  31. package/lib/stateDefinitions/speechStates.js +104 -0
  32. package/lib/stateDefinitions/temperatureStates.js +182 -0
  33. package/lib/stateDefinitions/timeStates.js +102 -0
  34. package/main.js +145 -0
  35. package/package.json +60 -0
@@ -0,0 +1,901 @@
1
+ {
2
+ "i18n": false,
3
+ "type": "tabs",
4
+ "items": {
5
+ "general": {
6
+ "type": "panel",
7
+ "label": "Allgemeine Einstellungen",
8
+ "items": {
9
+ "divider1": {
10
+ "type": "divider",
11
+ "newLine": true
12
+ },
13
+ "pool_name": {
14
+ "type": "text",
15
+ "label": "Name des Pools",
16
+ "default": "Mein Pool",
17
+ "xs": 12,
18
+ "sm": 3,
19
+ "md": 3,
20
+ "lg": 3,
21
+ "xl": 3
22
+ },
23
+ "pool_size": {
24
+ "type": "number",
25
+ "label": "Poolgröße (Liter)",
26
+ "default": 30000,
27
+ "xs": 12,
28
+ "sm": 3,
29
+ "md": 3,
30
+ "lg": 3,
31
+ "xl": 3,
32
+ "newLine": true
33
+ },
34
+ "min_circulation_per_day": {
35
+ "type": "select",
36
+ "label": "Min. Umwälzung pro Tag",
37
+ "options": [
38
+ { "label": "0,5x", "value": 0.5 },
39
+ { "label": "1,0x", "value": 1.0 },
40
+ { "label": "1,5x", "value": 1.5 },
41
+ { "label": "2,0x", "value": 2.0 },
42
+ { "label": "2,5x", "value": 2.5 },
43
+ { "label": "3,0x", "value": 3.0 }
44
+ ],
45
+ "default": 1,
46
+ "xs": 12,
47
+ "sm": 3,
48
+ "md": 3,
49
+ "lg": 3,
50
+ "xl": 3,
51
+ "newLine": true
52
+ }
53
+ }
54
+ },
55
+ "pump": {
56
+ "type": "panel",
57
+ "label": "Pumpe",
58
+ "items": {
59
+ "divider2": {
60
+ "type": "divider",
61
+ "newLine": true
62
+ },
63
+ "pump_max_watt": {
64
+ "type": "number",
65
+ "label": "Max. Leistung (Watt)",
66
+ "default": 1000,
67
+ "xs": 12,
68
+ "sm": 3,
69
+ "md": 3,
70
+ "lg": 3,
71
+ "xl": 3
72
+ },
73
+ "pump_power_lph": {
74
+ "type": "number",
75
+ "label": "Pumpenleistung (l/h)",
76
+ "default": 6000,
77
+ "xs": 12,
78
+ "sm": 3,
79
+ "md": 3,
80
+ "lg": 3,
81
+ "xl": 3,
82
+ "newLine": true
83
+ },
84
+ "divider3": {
85
+ "type": "divider",
86
+ "newLine": true
87
+ },
88
+ "frost_protection_active": {
89
+ "type": "checkbox",
90
+ "label": "Frostschutz aktivieren",
91
+ "default": false,
92
+ "xs": 12,
93
+ "sm": 3,
94
+ "md": 3,
95
+ "lg": 3,
96
+ "xl": 3,
97
+ "newLine": true
98
+ },
99
+ "frost_protection_temp": {
100
+ "type": "number",
101
+ "label": "Frostschutz-Temperatur (°C)",
102
+ "default": 2,
103
+ "xs": 12,
104
+ "sm": 3,
105
+ "md": 3,
106
+ "lg": 3,
107
+ "xl": 3
108
+ },
109
+ "divider4": {
110
+ "type": "divider",
111
+ "newLine": true
112
+ },
113
+ "pump_switch": {
114
+ "type": "objectId",
115
+ "label": "Objekt-ID schaltbare Steckdose Pumpe",
116
+ "default": "",
117
+ "xs": 12,
118
+ "sm": 3,
119
+ "md": 3,
120
+ "lg": 3,
121
+ "xl": 3
122
+ },
123
+ "pump_current_power_id": {
124
+ "type": "objectId",
125
+ "label": "Objekt-ID aktuelle Leistung (W)",
126
+ "default": "",
127
+ "xs": 12,
128
+ "sm": 3,
129
+ "md": 3,
130
+ "lg": 3,
131
+ "xl": 3
132
+ },
133
+ "divider9": {
134
+ "type": "divider",
135
+ "newLine": true
136
+ },
137
+ "pump_mode_hint": {
138
+ "type": "staticText",
139
+ "text": "Pumpenmodus (Automatik/Manuell/Aus/Zeit) kann über den Datenpunkt 'pump.mode' gesteuert werden.",
140
+ "newLine": true
141
+ },
142
+ "divider10": {
143
+ "type": "divider",
144
+ "newLine": true
145
+ },
146
+ "manual_safety_enabled": {
147
+ "type": "checkbox",
148
+ "label": "Sicherheitsfunktionen auch im Modus 'Manuell' aktivieren",
149
+ "default": true,
150
+ "xs": 12,
151
+ "sm": 6,
152
+ "md": 6,
153
+ "lg": 6,
154
+ "xl": 6,
155
+ "newLine": true
156
+ },
157
+ "manual_safety_enabled_hint": {
158
+ "type": "staticText",
159
+ "text": "Wenn aktiviert, werden die Sicherheitsfunktionen wie Frostschutz und Überhitzungsschutz (Solar) weiterhin ausgeführt.",
160
+ "newLine": true
161
+ }
162
+ }
163
+ },
164
+ "temperature": {
165
+ "type": "panel",
166
+ "label": "Temperaturverwaltung",
167
+ "items": {
168
+ "divider5": {
169
+ "type": "divider",
170
+ "newLine": true
171
+ },
172
+ "surface_temp_active": {
173
+ "type": "checkbox",
174
+ "label": "Sensor Oberfläche verwenden",
175
+ "default": false,
176
+ "xs": 12,
177
+ "sm": 3,
178
+ "md": 3,
179
+ "lg": 3,
180
+ "xl": 3,
181
+ "newLine": true
182
+ },
183
+ "surface_temp_sensor": {
184
+ "type": "objectId",
185
+ "label": "Objekt-ID Sensor Oberfläche",
186
+ "default": "",
187
+ "xs": 12,
188
+ "sm": 3,
189
+ "md": 3,
190
+ "lg": 3,
191
+ "xl": 3
192
+ },
193
+ "ground_temp_active": {
194
+ "type": "checkbox",
195
+ "label": "Sensor Grund verwenden",
196
+ "default": false,
197
+ "xs": 12,
198
+ "sm": 3,
199
+ "md": 3,
200
+ "lg": 3,
201
+ "xl": 3,
202
+ "newLine": true
203
+ },
204
+ "ground_temp_sensor": {
205
+ "type": "objectId",
206
+ "label": "Objekt-ID Sensor Grund",
207
+ "default": "",
208
+ "xs": 12,
209
+ "sm": 3,
210
+ "md": 3,
211
+ "lg": 3,
212
+ "xl": 3
213
+ },
214
+ "flow_temp_active": {
215
+ "type": "checkbox",
216
+ "label": "Sensor Vorlauf verwenden",
217
+ "default": false,
218
+ "xs": 12,
219
+ "sm": 3,
220
+ "md": 3,
221
+ "lg": 3,
222
+ "xl": 3,
223
+ "newLine": true
224
+ },
225
+ "flow_temp_sensor": {
226
+ "type": "objectId",
227
+ "label": "Objekt-ID Sensor Vorlauf",
228
+ "default": "",
229
+ "xs": 12,
230
+ "sm": 3,
231
+ "md": 3,
232
+ "lg": 3,
233
+ "xl": 3
234
+ },
235
+ "return_temp_active": {
236
+ "type": "checkbox",
237
+ "label": "Sensor Rücklauf verwenden",
238
+ "default": false,
239
+ "xs": 12,
240
+ "sm": 3,
241
+ "md": 3,
242
+ "lg": 3,
243
+ "xl": 3,
244
+ "newLine": true
245
+ },
246
+ "return_temp_sensor": {
247
+ "type": "objectId",
248
+ "label": "Objekt-ID Sensor Rücklauf",
249
+ "default": "",
250
+ "xs": 12,
251
+ "sm": 3,
252
+ "md": 3,
253
+ "lg": 3,
254
+ "xl": 3
255
+ },
256
+ "collector_temp_active": {
257
+ "type": "checkbox",
258
+ "label": "Sensor Kollektor verwenden",
259
+ "default": false,
260
+ "xs": 12,
261
+ "sm": 3,
262
+ "md": 3,
263
+ "lg": 3,
264
+ "xl": 3,
265
+ "newLine": true
266
+ },
267
+ "collector_temp_sensor": {
268
+ "type": "objectId",
269
+ "label": "Objekt-ID Sensor Kollektor",
270
+ "default": "",
271
+ "xs": 12,
272
+ "sm": 3,
273
+ "md": 3,
274
+ "lg": 3,
275
+ "xl": 3
276
+ },
277
+ "outside_temp_active": {
278
+ "type": "checkbox",
279
+ "label": "Sensor Außentemperatur verwenden",
280
+ "default": false,
281
+ "xs": 12,
282
+ "sm": 3,
283
+ "md": 3,
284
+ "lg": 3,
285
+ "xl": 3,
286
+ "newLine": true
287
+ },
288
+ "outside_temp_sensor": {
289
+ "type": "objectId",
290
+ "label": "Objekt-ID Sensor Außentemperatur",
291
+ "default": "",
292
+ "xs": 12,
293
+ "sm": 3,
294
+ "md": 3,
295
+ "lg": 3,
296
+ "xl": 3
297
+ }
298
+ }
299
+ },
300
+ "solar": {
301
+ "type": "panel",
302
+ "label": "Solarverwaltung",
303
+ "items": {
304
+ "divider6": {
305
+ "type": "divider",
306
+ "newLine": true
307
+ },
308
+ "solar_control_active": {
309
+ "type": "checkbox",
310
+ "label": "Solarsteuerung aktivieren",
311
+ "default": false,
312
+ "xs": 12,
313
+ "sm": 3,
314
+ "md": 3,
315
+ "lg": 3,
316
+ "xl": 3,
317
+ "newLine": true
318
+ },
319
+ "divider_solar1": {
320
+ "type": "divider",
321
+ "newLine": true
322
+ },
323
+ "solar_hysteresis_active": {
324
+ "type": "checkbox",
325
+ "label": "Regelung mit Hysterese verwenden",
326
+ "default": false,
327
+ "xs": 12,
328
+ "sm": 3,
329
+ "md": 3,
330
+ "lg": 3,
331
+ "xl": 3,
332
+ "newLine": true
333
+ },
334
+ "solar_temp_on": {
335
+ "type": "number",
336
+ "label": "Kollektortemperatur Einschaltgrenze (°C)",
337
+ "default": 30,
338
+ "xs": 12,
339
+ "sm": 3,
340
+ "md": 3,
341
+ "lg": 3,
342
+ "xl": 3
343
+ },
344
+ "solar_temp_off": {
345
+ "type": "number",
346
+ "label": "Kollektortemperatur Ausschaltgrenze (°C)",
347
+ "default": 25,
348
+ "xs": 12,
349
+ "sm": 3,
350
+ "md": 3,
351
+ "lg": 3,
352
+ "xl": 3
353
+ },
354
+ "divider_solar2": {
355
+ "type": "divider",
356
+ "newLine": true
357
+ },
358
+ "solar_collector_warn_active": {
359
+ "type": "checkbox",
360
+ "label": "Kollektortemperatur-Warnung aktivieren",
361
+ "default": false,
362
+ "xs": 12,
363
+ "sm": 3,
364
+ "md": 3,
365
+ "lg": 3,
366
+ "xl": 3,
367
+ "newLine": true
368
+ },
369
+ "solar_collector_warn_temp": {
370
+ "type": "number",
371
+ "label": "Warnschwelle Kollektortemperatur (°C)",
372
+ "default": 80,
373
+ "xs": 12,
374
+ "sm": 3,
375
+ "md": 3,
376
+ "lg": 3,
377
+ "xl": 3
378
+ },
379
+ "solar_collector_warn_speech": {
380
+ "type": "checkbox",
381
+ "label": "Bei Warnung Sprachausgabe/Benachrichtigung",
382
+ "default": true,
383
+ "xs": 12,
384
+ "sm": 6,
385
+ "md": 6,
386
+ "lg": 6,
387
+ "xl": 6,
388
+ "newLine": true
389
+ },
390
+ "solar_collector_warn_hint": {
391
+ "type": "staticText",
392
+ "text": "Hinweis: Die Warnung wird automatisch zurückgesetzt, sobald die Temperatur 10 % unter die eingestellte Schwelle fällt.",
393
+ "newLine": true
394
+ }
395
+ }
396
+ },
397
+ "timecontrol": {
398
+ "type": "panel",
399
+ "label": "Zeitsteuerung",
400
+ "items": {
401
+ "divider_time1": {
402
+ "type": "divider",
403
+ "newLine": true
404
+ },
405
+ "time1_active": {
406
+ "type": "checkbox",
407
+ "label": "Zeitfenster 1 aktiv",
408
+ "default": true,
409
+ "xs": 12,
410
+ "sm": 3,
411
+ "md": 3,
412
+ "lg": 3,
413
+ "xl": 3,
414
+ "newLine": true
415
+ },
416
+ "time1_start": {
417
+ "type": "text",
418
+ "label": "Start (HH:MM)",
419
+ "default": "08:00",
420
+ "xs": 12,
421
+ "sm": 3,
422
+ "md": 3,
423
+ "lg": 3,
424
+ "xl": 3
425
+ },
426
+ "time1_end": {
427
+ "type": "text",
428
+ "label": "Ende (HH:MM)",
429
+ "default": "10:00",
430
+ "xs": 12,
431
+ "sm": 3,
432
+ "md": 3,
433
+ "lg": 3,
434
+ "xl": 3
435
+ },
436
+ "time1_day_mon": {
437
+ "type": "checkbox",
438
+ "label": "Montag",
439
+ "default": true,
440
+ "xs": 12,
441
+ "sm": 1,
442
+ "md": 1,
443
+ "lg": 1,
444
+ "xl": 1,
445
+ "newLine": true
446
+ },
447
+ "time1_day_tue": {
448
+ "type": "checkbox",
449
+ "label": "Dienstag",
450
+ "default": true,
451
+ "xs": 12,
452
+ "sm": 1,
453
+ "md": 1,
454
+ "lg": 1,
455
+ "xl": 1
456
+ },
457
+ "time1_day_wed": {
458
+ "type": "checkbox",
459
+ "label": "Mittwoch",
460
+ "default": true,
461
+ "xs": 12,
462
+ "sm": 1,
463
+ "md": 1,
464
+ "lg": 1,
465
+ "xl": 1
466
+ },
467
+ "time1_day_thu": {
468
+ "type": "checkbox",
469
+ "label": "Donnerstag",
470
+ "default": true,
471
+ "xs": 12,
472
+ "sm": 1,
473
+ "md": 1,
474
+ "lg": 1,
475
+ "xl": 1
476
+ },
477
+ "time1_day_fri": {
478
+ "type": "checkbox",
479
+ "label": "Freitag",
480
+ "default": true,
481
+ "xs": 12,
482
+ "sm": 1,
483
+ "md": 1,
484
+ "lg": 1,
485
+ "xl": 1
486
+ },
487
+ "time1_day_sat": {
488
+ "type": "checkbox",
489
+ "label": "Samstag",
490
+ "default": true,
491
+ "xs": 12,
492
+ "sm": 1,
493
+ "md": 1,
494
+ "lg": 1,
495
+ "xl": 1
496
+ },
497
+ "time1_day_sun": {
498
+ "type": "checkbox",
499
+ "label": "Sonntag",
500
+ "default": true,
501
+ "xs": 12,
502
+ "sm": 1,
503
+ "md": 1,
504
+ "lg": 1,
505
+ "xl": 1
506
+ },
507
+ "divider_time2": {
508
+ "type": "divider",
509
+ "newLine": true
510
+ },
511
+ "time2_active": {
512
+ "type": "checkbox",
513
+ "label": "Zeitfenster 2 aktiv",
514
+ "default": false,
515
+ "xs": 12,
516
+ "sm": 3,
517
+ "md": 3,
518
+ "lg": 3,
519
+ "xl": 3,
520
+ "newLine": true
521
+ },
522
+ "time2_start": {
523
+ "type": "text",
524
+ "label": "Start (HH:MM)",
525
+ "default": "14:00",
526
+ "xs": 12,
527
+ "sm": 3,
528
+ "md": 3,
529
+ "lg": 3,
530
+ "xl": 3,
531
+ "newLine": true
532
+ },
533
+ "time2_end": {
534
+ "type": "text",
535
+ "label": "Ende (HH:MM)",
536
+ "default": "16:00",
537
+ "xs": 12,
538
+ "sm": 3,
539
+ "md": 3,
540
+ "lg": 3,
541
+ "xl": 3
542
+ },
543
+ "time2_day_mon": {
544
+ "type": "checkbox",
545
+ "label": "Montag",
546
+ "default": true,
547
+ "xs": 12,
548
+ "sm": 1,
549
+ "md": 1,
550
+ "lg": 1,
551
+ "xl": 1,
552
+ "newLine": true
553
+ },
554
+ "time2_day_tue": {
555
+ "type": "checkbox",
556
+ "label": "Dienstag",
557
+ "default": true,
558
+ "xs": 12,
559
+ "sm": 1,
560
+ "md": 1,
561
+ "lg": 1,
562
+ "xl": 1
563
+ },
564
+ "time2_day_wed": {
565
+ "type": "checkbox",
566
+ "label": "Mittwoch",
567
+ "default": true,
568
+ "xs": 12,
569
+ "sm": 1,
570
+ "md": 1,
571
+ "lg": 1,
572
+ "xl": 1
573
+ },
574
+ "time2_day_thu": {
575
+ "type": "checkbox",
576
+ "label": "Donnerstag",
577
+ "default": true,
578
+ "xs": 12,
579
+ "sm": 1,
580
+ "md": 1,
581
+ "lg": 1,
582
+ "xl": 1
583
+ },
584
+ "time2_day_fri": {
585
+ "type": "checkbox",
586
+ "label": "Freitag",
587
+ "default": true,
588
+ "xs": 12,
589
+ "sm": 1,
590
+ "md": 1,
591
+ "lg": 1,
592
+ "xl": 1
593
+ },
594
+ "time2_day_sat": {
595
+ "type": "checkbox",
596
+ "label": "Samstag",
597
+ "default": true,
598
+ "xs": 12,
599
+ "sm": 1,
600
+ "md": 1,
601
+ "lg": 1,
602
+ "xl": 1
603
+ },
604
+ "time2_day_sun": {
605
+ "type": "checkbox",
606
+ "label": "Sonntag",
607
+ "default": true,
608
+ "xs": 12,
609
+ "sm": 1,
610
+ "md": 1,
611
+ "lg": 1,
612
+ "xl": 1
613
+ },
614
+ "divider_time3": {
615
+ "type": "divider",
616
+ "newLine": true
617
+ },
618
+ "time3_active": {
619
+ "type": "checkbox",
620
+ "label": "Zeitfenster 3 aktiv",
621
+ "default": false,
622
+ "xs": 12,
623
+ "sm": 3,
624
+ "md": 3,
625
+ "lg": 3,
626
+ "xl": 3,
627
+ "newLine": true
628
+ },
629
+ "time3_start": {
630
+ "type": "text",
631
+ "label": "Start (HH:MM)",
632
+ "default": "18:00",
633
+ "xs": 12,
634
+ "sm": 3,
635
+ "md": 3,
636
+ "lg": 3,
637
+ "xl": 3
638
+ },
639
+ "time3_end": {
640
+ "type": "text",
641
+ "label": "Ende (HH:MM)",
642
+ "default": "20:00",
643
+ "xs": 12,
644
+ "sm": 3,
645
+ "md": 3,
646
+ "lg": 3,
647
+ "xl": 3
648
+ },
649
+ "time3_day_mon": {
650
+ "type": "checkbox",
651
+ "label": "Montag",
652
+ "default": true,
653
+ "xs": 12,
654
+ "sm": 1,
655
+ "md": 1,
656
+ "lg": 1,
657
+ "xl": 1,
658
+ "newLine": true
659
+ },
660
+ "time3_day_tue": {
661
+ "type": "checkbox",
662
+ "label": "Dienstag",
663
+ "default": true,
664
+ "xs": 12,
665
+ "sm": 1,
666
+ "md": 1,
667
+ "lg": 1,
668
+ "xl": 1
669
+ },
670
+ "time3_day_wed": {
671
+ "type": "checkbox",
672
+ "label": "Mittwoch",
673
+ "default": true,
674
+ "xs": 12,
675
+ "sm": 1,
676
+ "md": 1,
677
+ "lg": 1,
678
+ "xl": 1
679
+ },
680
+ "time3_day_thu": {
681
+ "type": "checkbox",
682
+ "label": "Donnerstag",
683
+ "default": true,
684
+ "xs": 12,
685
+ "sm": 1,
686
+ "md": 1,
687
+ "lg": 1,
688
+ "xl": 1
689
+ },
690
+ "time3_day_fri": {
691
+ "type": "checkbox",
692
+ "label": "Freitag",
693
+ "default": true,
694
+ "xs": 12,
695
+ "sm": 1,
696
+ "md": 1,
697
+ "lg": 1,
698
+ "xl": 1
699
+ },
700
+ "time3_day_sat": {
701
+ "type": "checkbox",
702
+ "label": "Samstag",
703
+ "default": true,
704
+ "xs": 12,
705
+ "sm": 1,
706
+ "md": 1,
707
+ "lg": 1,
708
+ "xl": 1
709
+ },
710
+ "time3_day_sun": {
711
+ "type": "checkbox",
712
+ "label": "Sonntag",
713
+ "default": true,
714
+ "xs": 12,
715
+ "sm": 1,
716
+ "md": 1,
717
+ "lg": 1,
718
+ "xl": 1
719
+ }
720
+ }
721
+ },
722
+ "speech": {
723
+ "type": "panel",
724
+ "label": "Sprachausgaben",
725
+ "items": {
726
+ "divider_speech1": {
727
+ "type": "divider",
728
+ "newLine": true
729
+ },
730
+ "speech_active": {
731
+ "type": "checkbox",
732
+ "label": "Sprachausgaben aktivieren",
733
+ "default": false,
734
+ "xs": 12,
735
+ "sm": 3,
736
+ "md": 3,
737
+ "lg": 3,
738
+ "xl": 3,
739
+ "newLine": true
740
+ },
741
+
742
+ "divider_speech2": {
743
+ "type": "divider",
744
+ "newLine": true
745
+ },
746
+ "speech_alexa_enabled": {
747
+ "type": "checkbox",
748
+ "label": "Ausgabe über Alexa aktivieren",
749
+ "default": false,
750
+ "xs": 12,
751
+ "sm": 3,
752
+ "md": 3,
753
+ "lg": 3,
754
+ "xl": 3,
755
+ "newLine": true
756
+ },
757
+ "speech_alexa_device": {
758
+ "type": "objectId",
759
+ "label": "Alexa-Gerät",
760
+ "default": "",
761
+ "xs": 12,
762
+ "sm": 6,
763
+ "md": 6,
764
+ "lg": 6,
765
+ "xl": 6
766
+ },
767
+ "speech_alexa_volume": {
768
+ "type": "number",
769
+ "label": "Lautstärke (0–100)",
770
+ "default": 50,
771
+ "xs": 12,
772
+ "sm": 3,
773
+ "md": 3,
774
+ "lg": 3,
775
+ "xl": 3,
776
+ "newLine": true
777
+ },
778
+ "speech_alexa_voice": {
779
+ "type": "select",
780
+ "label": "Stimme",
781
+ "options": [
782
+ { "label": "Standard (weiblich)", "value": "female" },
783
+ { "label": "Männlich", "value": "male" }
784
+ ],
785
+ "default": "female",
786
+ "xs": 12,
787
+ "sm": 3,
788
+ "md": 3,
789
+ "lg": 3,
790
+ "xl": 3
791
+ },
792
+
793
+ "divider_speech3": {
794
+ "type": "divider",
795
+ "newLine": true
796
+ },
797
+ "speech_telegram_enabled": {
798
+ "type": "checkbox",
799
+ "label": "Ausgabe über Telegram aktivieren",
800
+ "default": false,
801
+ "xs": 12,
802
+ "sm": 3,
803
+ "md": 3,
804
+ "lg": 3,
805
+ "xl": 3,
806
+ "newLine": true
807
+ },
808
+ "speech_telegram_instance": {
809
+ "type": "instance",
810
+ "adapter": "telegram",
811
+ "label": "Telegram-Instanz",
812
+ "default": "telegram.0",
813
+ "xs": 12,
814
+ "sm": 6,
815
+ "md": 6,
816
+ "lg": 6,
817
+ "xl": 6
818
+ },
819
+ "divider_speech4": {
820
+ "type": "divider",
821
+ "newLine": true
822
+ },
823
+ "speech_temp_threshold": {
824
+ "type": "number",
825
+ "label": "Temperaturschwelle für Ansage (°C)",
826
+ "default": 25,
827
+ "xs": 12,
828
+ "sm": 3,
829
+ "md": 3,
830
+ "lg": 3,
831
+ "xl": 3,
832
+ "newLine": true
833
+ },
834
+ "speech_include_errors": {
835
+ "type": "checkbox",
836
+ "label": "Fehlermeldungen ansagen",
837
+ "default": true,
838
+ "xs": 12,
839
+ "sm": 3,
840
+ "md": 3,
841
+ "lg": 3,
842
+ "xl": 3
843
+ }
844
+ }
845
+ },
846
+ "consumption": {
847
+ "type": "panel",
848
+ "label": "Verbrauch & Kosten",
849
+ "items": {
850
+ "divider_cons1": {
851
+ "type": "divider",
852
+ "newLine": true
853
+ },
854
+ "consumption_enabled": {
855
+ "type": "checkbox",
856
+ "label": "Verbrauchs- und Kostenberechnung aktivieren",
857
+ "default": false,
858
+ "xs": 12,
859
+ "sm": 6,
860
+ "md": 6,
861
+ "lg": 6,
862
+ "xl": 6,
863
+ "newLine": true
864
+ },
865
+
866
+ "external_energy_total_id": {
867
+ "type": "objectId",
868
+ "label": "Objekt-ID externer kWh-Zähler",
869
+ "default": "",
870
+ "xs": 12,
871
+ "sm": 6,
872
+ "md": 6,
873
+ "lg": 6,
874
+ "xl": 6
875
+ },
876
+
877
+ "divider_cons2": {
878
+ "type": "divider",
879
+ "newLine": true
880
+ },
881
+ "energy_price_eur_kwh": {
882
+ "type": "number",
883
+ "label": "Strompreis (€ / kWh)",
884
+ "default": 0.35,
885
+ "xs": 12,
886
+ "sm": 3,
887
+ "md": 3,
888
+ "lg": 3,
889
+ "xl": 3,
890
+ "newLine": true
891
+ },
892
+
893
+ "consumption_hint": {
894
+ "type": "staticText",
895
+ "text": "Hinweis: Für die Verbrauchsberechnung wird ein externer kWh-Zähler benötigt (z. B. Messsteckdose).",
896
+ "newLine": true
897
+ }
898
+ }
899
+ }
900
+ }
901
+ }