iobroker.poolcontrol 1.2.10 → 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.
- package/README.md +18 -11
- package/admin/i18n/de/translations.json +0 -2
- package/admin/i18n/es/translations.json +0 -2
- package/admin/i18n/fr/translations.json +0 -2
- package/admin/i18n/it/translations.json +0 -2
- package/admin/i18n/nl/translations.json +0 -2
- package/admin/i18n/pl/translations.json +0 -2
- package/admin/i18n/pt/translations.json +0 -2
- package/admin/i18n/ru/translations.json +0 -2
- package/admin/i18n/uk/translations.json +0 -2
- package/admin/i18n/zh-cn/translations.json +0 -2
- package/io-package.json +38 -32
- package/lib/stateDefinitions/actuatorsStates.js +132 -19
- package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
- package/lib/stateDefinitions/aiStates.js +201 -31
- package/lib/stateDefinitions/consumptionStates.js +140 -14
- package/lib/stateDefinitions/controlStates.js +120 -34
- package/lib/stateDefinitions/debugLogStates.js +32 -10
- package/lib/stateDefinitions/generalStates.js +28 -4
- package/lib/stateDefinitions/heatStates.js +132 -17
- package/lib/stateDefinitions/infoStates.js +20 -5
- package/lib/stateDefinitions/photovoltaicStates.js +78 -19
- package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
- package/lib/stateDefinitions/pumpStates.js +100 -15
- package/lib/stateDefinitions/pumpStates2.js +36 -9
- package/lib/stateDefinitions/pumpStates3.js +92 -23
- package/lib/stateDefinitions/pumpStates4.js +120 -30
- package/lib/stateDefinitions/runtimeStates.js +74 -10
- package/lib/stateDefinitions/solarStates.js +68 -9
- package/lib/stateDefinitions/speechStates.js +133 -18
- package/lib/stateDefinitions/statisticsStates.js +167 -24
- package/lib/stateDefinitions/statusStates.js +92 -12
- package/lib/stateDefinitions/temperatureStates.js +117 -18
- package/lib/stateDefinitions/timeStates.js +43 -12
- package/package.json +2 -1
|
@@ -20,8 +20,10 @@ async function createControlStates(adapter) {
|
|
|
20
20
|
await adapter.setObjectNotExistsAsync('control', {
|
|
21
21
|
type: 'channel',
|
|
22
22
|
common: {
|
|
23
|
-
name:
|
|
24
|
-
|
|
23
|
+
name: {
|
|
24
|
+
en: 'Control',
|
|
25
|
+
de: 'Steuerung',
|
|
26
|
+
},
|
|
25
27
|
},
|
|
26
28
|
native: {},
|
|
27
29
|
});
|
|
@@ -31,8 +33,10 @@ async function createControlStates(adapter) {
|
|
|
31
33
|
await adapter.setObjectNotExistsAsync('control.pump', {
|
|
32
34
|
type: 'channel',
|
|
33
35
|
common: {
|
|
34
|
-
name:
|
|
35
|
-
|
|
36
|
+
name: {
|
|
37
|
+
en: 'Pump control',
|
|
38
|
+
de: 'Pumpensteuerung',
|
|
39
|
+
},
|
|
36
40
|
},
|
|
37
41
|
native: {},
|
|
38
42
|
});
|
|
@@ -41,8 +45,14 @@ async function createControlStates(adapter) {
|
|
|
41
45
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_start', {
|
|
42
46
|
type: 'state',
|
|
43
47
|
common: {
|
|
44
|
-
name:
|
|
45
|
-
|
|
48
|
+
name: {
|
|
49
|
+
en: 'Start backwash',
|
|
50
|
+
de: 'Rueckspuelung starten',
|
|
51
|
+
},
|
|
52
|
+
desc: {
|
|
53
|
+
en: 'Starts backwash for the configured duration',
|
|
54
|
+
de: 'Startet die Rueckspuelung fuer die konfigurierte Dauer',
|
|
55
|
+
},
|
|
46
56
|
type: 'boolean',
|
|
47
57
|
role: 'button',
|
|
48
58
|
read: true,
|
|
@@ -57,8 +67,14 @@ async function createControlStates(adapter) {
|
|
|
57
67
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_active', {
|
|
58
68
|
type: 'state',
|
|
59
69
|
common: {
|
|
60
|
-
name:
|
|
61
|
-
|
|
70
|
+
name: {
|
|
71
|
+
en: 'Backwash active',
|
|
72
|
+
de: 'Rueckspuelung aktiv',
|
|
73
|
+
},
|
|
74
|
+
desc: {
|
|
75
|
+
en: 'Shows whether backwash is currently running',
|
|
76
|
+
de: 'Zeigt an, ob die Rueckspuelung aktuell laeuft',
|
|
77
|
+
},
|
|
62
78
|
type: 'boolean',
|
|
63
79
|
role: 'indicator',
|
|
64
80
|
read: true,
|
|
@@ -73,8 +89,14 @@ async function createControlStates(adapter) {
|
|
|
73
89
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_duration', {
|
|
74
90
|
type: 'state',
|
|
75
91
|
common: {
|
|
76
|
-
name:
|
|
77
|
-
|
|
92
|
+
name: {
|
|
93
|
+
en: 'Backwash duration (minutes)',
|
|
94
|
+
de: 'Rueckspueldauer (Minuten)',
|
|
95
|
+
},
|
|
96
|
+
desc: {
|
|
97
|
+
en: 'Defines how long the backwash should run',
|
|
98
|
+
de: 'Legt fest, wie lange die Rueckspuelung laufen soll',
|
|
99
|
+
},
|
|
78
100
|
type: 'number',
|
|
79
101
|
role: 'level.timer',
|
|
80
102
|
read: true,
|
|
@@ -99,8 +121,14 @@ async function createControlStates(adapter) {
|
|
|
99
121
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_reminder_active', {
|
|
100
122
|
type: 'state',
|
|
101
123
|
common: {
|
|
102
|
-
name:
|
|
103
|
-
|
|
124
|
+
name: {
|
|
125
|
+
en: 'Backwash reminder active',
|
|
126
|
+
de: 'Rueckspuel-Erinnerung aktiv',
|
|
127
|
+
},
|
|
128
|
+
desc: {
|
|
129
|
+
en: 'If enabled, the adapter automatically reminds you to backwash after the configured interval has elapsed',
|
|
130
|
+
de: 'Wenn aktiviert, erinnert der Adapter automatisch an die Rueckspuelung nach Ablauf des konfigurierten Intervalls',
|
|
131
|
+
},
|
|
104
132
|
type: 'boolean',
|
|
105
133
|
role: 'switch',
|
|
106
134
|
read: true,
|
|
@@ -119,8 +147,14 @@ async function createControlStates(adapter) {
|
|
|
119
147
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_interval_days', {
|
|
120
148
|
type: 'state',
|
|
121
149
|
common: {
|
|
122
|
-
name:
|
|
123
|
-
|
|
150
|
+
name: {
|
|
151
|
+
en: 'Backwash reminder: interval (days)',
|
|
152
|
+
de: 'Rueckspuel-Erinnerung: Intervall (Tage)',
|
|
153
|
+
},
|
|
154
|
+
desc: {
|
|
155
|
+
en: 'Number of days after which a backwash reminder is triggered',
|
|
156
|
+
de: 'Anzahl der Tage, nach denen eine Rueckspuel-Erinnerung ausgeloest wird',
|
|
157
|
+
},
|
|
124
158
|
type: 'number',
|
|
125
159
|
role: 'value.interval',
|
|
126
160
|
unit: 'days',
|
|
@@ -145,8 +179,14 @@ async function createControlStates(adapter) {
|
|
|
145
179
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_last_date', {
|
|
146
180
|
type: 'state',
|
|
147
181
|
common: {
|
|
148
|
-
name:
|
|
149
|
-
|
|
182
|
+
name: {
|
|
183
|
+
en: 'Last backwash (date)',
|
|
184
|
+
de: 'Letzte Rueckspuelung (Datum)',
|
|
185
|
+
},
|
|
186
|
+
desc: {
|
|
187
|
+
en: 'Timestamp of the last performed backwash, used for reminder calculation',
|
|
188
|
+
de: 'Zeitstempel der zuletzt durchgefuehrten Rueckspuelung, verwendet fuer die Erinnerungsberechnung',
|
|
189
|
+
},
|
|
150
190
|
type: 'string',
|
|
151
191
|
role: 'date',
|
|
152
192
|
read: true,
|
|
@@ -165,8 +205,14 @@ async function createControlStates(adapter) {
|
|
|
165
205
|
await adapter.setObjectNotExistsAsync('control.pump.backwash_required', {
|
|
166
206
|
type: 'state',
|
|
167
207
|
common: {
|
|
168
|
-
name:
|
|
169
|
-
|
|
208
|
+
name: {
|
|
209
|
+
en: 'Backwash required',
|
|
210
|
+
de: 'Rueckspuelung erforderlich',
|
|
211
|
+
},
|
|
212
|
+
desc: {
|
|
213
|
+
en: 'Automatically set to true when the configured backwash interval has been exceeded',
|
|
214
|
+
de: 'Wird automatisch auf true gesetzt, wenn das konfigurierte Rueckspuelintervall ueberschritten wurde',
|
|
215
|
+
},
|
|
170
216
|
type: 'boolean',
|
|
171
217
|
role: 'indicator.alarm',
|
|
172
218
|
read: true,
|
|
@@ -181,8 +227,14 @@ async function createControlStates(adapter) {
|
|
|
181
227
|
await adapter.setObjectNotExistsAsync('control.pump.maintenance_active', {
|
|
182
228
|
type: 'state',
|
|
183
229
|
common: {
|
|
184
|
-
name:
|
|
185
|
-
|
|
230
|
+
name: {
|
|
231
|
+
en: 'Maintenance mode active',
|
|
232
|
+
de: 'Wartungsmodus aktiv',
|
|
233
|
+
},
|
|
234
|
+
desc: {
|
|
235
|
+
en: 'Disables automatic functions and allows manual pump control',
|
|
236
|
+
de: 'Deaktiviert automatische Funktionen und ermoeglicht die manuelle Pumpensteuerung',
|
|
237
|
+
},
|
|
186
238
|
type: 'boolean',
|
|
187
239
|
role: 'switch',
|
|
188
240
|
read: true,
|
|
@@ -197,8 +249,14 @@ async function createControlStates(adapter) {
|
|
|
197
249
|
await adapter.setObjectNotExistsAsync('control.pump.notifications_enabled', {
|
|
198
250
|
type: 'state',
|
|
199
251
|
common: {
|
|
200
|
-
name:
|
|
201
|
-
|
|
252
|
+
name: {
|
|
253
|
+
en: 'Enable notifications',
|
|
254
|
+
de: 'Benachrichtigungen aktivieren',
|
|
255
|
+
},
|
|
256
|
+
desc: {
|
|
257
|
+
en: 'If enabled, announcements or messages are sent for backwash and maintenance (email, Telegram, Alexa)',
|
|
258
|
+
de: 'Wenn aktiviert, werden Ansagen oder Nachrichten fuer Rueckspuelung und Wartung gesendet (E-Mail, Telegram, Alexa)',
|
|
259
|
+
},
|
|
202
260
|
type: 'boolean',
|
|
203
261
|
role: 'switch',
|
|
204
262
|
read: true,
|
|
@@ -218,8 +276,10 @@ async function createControlStates(adapter) {
|
|
|
218
276
|
await adapter.setObjectNotExistsAsync('control.energy', {
|
|
219
277
|
type: 'channel',
|
|
220
278
|
common: {
|
|
221
|
-
name:
|
|
222
|
-
|
|
279
|
+
name: {
|
|
280
|
+
en: 'Energy management',
|
|
281
|
+
de: 'Energiemanagement',
|
|
282
|
+
},
|
|
223
283
|
},
|
|
224
284
|
native: {},
|
|
225
285
|
});
|
|
@@ -228,8 +288,14 @@ async function createControlStates(adapter) {
|
|
|
228
288
|
await adapter.setObjectNotExistsAsync('control.energy.reset', {
|
|
229
289
|
type: 'state',
|
|
230
290
|
common: {
|
|
231
|
-
name:
|
|
232
|
-
|
|
291
|
+
name: {
|
|
292
|
+
en: 'Reset energy counters',
|
|
293
|
+
de: 'Energiezaehler zuruecksetzen',
|
|
294
|
+
},
|
|
295
|
+
desc: {
|
|
296
|
+
en: 'Resets all consumption and cost values to 0 (total reset)',
|
|
297
|
+
de: 'Setzt alle Verbrauchs- und Kostenwerte auf 0 zurueck (Gesamt-Reset)',
|
|
298
|
+
},
|
|
233
299
|
type: 'boolean',
|
|
234
300
|
role: 'button',
|
|
235
301
|
read: true,
|
|
@@ -245,8 +311,10 @@ async function createControlStates(adapter) {
|
|
|
245
311
|
await adapter.setObjectNotExistsAsync('control.circulation', {
|
|
246
312
|
type: 'channel',
|
|
247
313
|
common: {
|
|
248
|
-
name:
|
|
249
|
-
|
|
314
|
+
name: {
|
|
315
|
+
en: 'Daily circulation control',
|
|
316
|
+
de: 'Taegliche Umwaelzungssteuerung',
|
|
317
|
+
},
|
|
250
318
|
},
|
|
251
319
|
native: {},
|
|
252
320
|
});
|
|
@@ -255,8 +323,14 @@ async function createControlStates(adapter) {
|
|
|
255
323
|
await adapter.setObjectNotExistsAsync('control.circulation.mode', {
|
|
256
324
|
type: 'state',
|
|
257
325
|
common: {
|
|
258
|
-
name:
|
|
259
|
-
|
|
326
|
+
name: {
|
|
327
|
+
en: 'Circulation check mode',
|
|
328
|
+
de: 'Modus der Umwaelzungspruefung',
|
|
329
|
+
},
|
|
330
|
+
desc: {
|
|
331
|
+
en: 'Defines if and how daily circulation is checked and if additional pumping is required',
|
|
332
|
+
de: 'Legt fest, ob und wie die taegliche Umwaelzung geprueft wird und ob zusaetzliches Pumpen erforderlich ist',
|
|
333
|
+
},
|
|
260
334
|
type: 'string',
|
|
261
335
|
role: 'level',
|
|
262
336
|
read: true,
|
|
@@ -294,8 +368,14 @@ async function createControlStates(adapter) {
|
|
|
294
368
|
await adapter.setObjectNotExistsAsync('control.circulation.check_time', {
|
|
295
369
|
type: 'state',
|
|
296
370
|
common: {
|
|
297
|
-
name:
|
|
298
|
-
|
|
371
|
+
name: {
|
|
372
|
+
en: 'Daily circulation check time',
|
|
373
|
+
de: 'Pruefzeit fuer taegliche Umwaelzung',
|
|
374
|
+
},
|
|
375
|
+
desc: {
|
|
376
|
+
en: 'Time when daily circulation is checked and reported if necessary (format HH:MM)',
|
|
377
|
+
de: 'Zeitpunkt, zu dem die taegliche Umwaelzung geprueft und bei Bedarf gemeldet wird (Format HH:MM)',
|
|
378
|
+
},
|
|
299
379
|
type: 'string',
|
|
300
380
|
role: 'level',
|
|
301
381
|
read: true,
|
|
@@ -314,8 +394,14 @@ async function createControlStates(adapter) {
|
|
|
314
394
|
await adapter.setObjectNotExistsAsync('control.circulation.last_report', {
|
|
315
395
|
type: 'state',
|
|
316
396
|
common: {
|
|
317
|
-
name:
|
|
318
|
-
|
|
397
|
+
name: {
|
|
398
|
+
en: 'Last daily circulation report',
|
|
399
|
+
de: 'Letzter taeglicher Umwaelzungsbericht',
|
|
400
|
+
},
|
|
401
|
+
desc: {
|
|
402
|
+
en: 'Timestamp of the last automatically generated circulation report',
|
|
403
|
+
de: 'Zeitstempel des zuletzt automatisch erzeugten Umwaelzungsberichts',
|
|
404
|
+
},
|
|
319
405
|
type: 'string',
|
|
320
406
|
role: 'date',
|
|
321
407
|
read: true,
|
|
@@ -14,8 +14,10 @@ async function createDebugLogStates(adapter) {
|
|
|
14
14
|
await adapter.setObjectNotExistsAsync('SystemCheck', {
|
|
15
15
|
type: 'channel',
|
|
16
16
|
common: {
|
|
17
|
-
name:
|
|
18
|
-
|
|
17
|
+
name: {
|
|
18
|
+
en: 'SystemCheck (diagnostics and tools)',
|
|
19
|
+
de: 'SystemCheck (Diagnose und Werkzeuge)',
|
|
20
|
+
},
|
|
19
21
|
},
|
|
20
22
|
native: {},
|
|
21
23
|
});
|
|
@@ -24,8 +26,10 @@ async function createDebugLogStates(adapter) {
|
|
|
24
26
|
await adapter.setObjectNotExistsAsync('SystemCheck.debug_logs', {
|
|
25
27
|
type: 'channel',
|
|
26
28
|
common: {
|
|
27
|
-
name:
|
|
28
|
-
|
|
29
|
+
name: {
|
|
30
|
+
en: 'Debug logs (test & diagnostics)',
|
|
31
|
+
de: 'Debug-Logs (Test und Diagnose)',
|
|
32
|
+
},
|
|
29
33
|
},
|
|
30
34
|
native: {},
|
|
31
35
|
});
|
|
@@ -70,8 +74,14 @@ async function createDebugLogStates(adapter) {
|
|
|
70
74
|
await adapter.setObjectNotExistsAsync('SystemCheck.debug_logs.target_area', {
|
|
71
75
|
type: 'state',
|
|
72
76
|
common: {
|
|
73
|
-
name:
|
|
74
|
-
|
|
77
|
+
name: {
|
|
78
|
+
en: 'Monitored area',
|
|
79
|
+
de: 'Ueberwachter Bereich',
|
|
80
|
+
},
|
|
81
|
+
desc: {
|
|
82
|
+
en: 'Select which area of the instance should be monitored (e.g. pump, solar, control.backwash).',
|
|
83
|
+
de: 'Waehlt aus, welcher Bereich der Instanz ueberwacht werden soll (z. B. pump, solar, control.backwash).',
|
|
84
|
+
},
|
|
75
85
|
type: 'string',
|
|
76
86
|
role: 'text',
|
|
77
87
|
read: true,
|
|
@@ -87,8 +97,14 @@ async function createDebugLogStates(adapter) {
|
|
|
87
97
|
await adapter.setObjectNotExistsAsync('SystemCheck.debug_logs.log', {
|
|
88
98
|
type: 'state',
|
|
89
99
|
common: {
|
|
90
|
-
name:
|
|
91
|
-
|
|
100
|
+
name: {
|
|
101
|
+
en: 'Debug log text',
|
|
102
|
+
de: 'Debug-Log-Text',
|
|
103
|
+
},
|
|
104
|
+
desc: {
|
|
105
|
+
en: 'Continuous log of the selected area.',
|
|
106
|
+
de: 'Fortlaufendes Log des ausgewaehlten Bereichs.',
|
|
107
|
+
},
|
|
92
108
|
type: 'string',
|
|
93
109
|
role: 'text',
|
|
94
110
|
read: true,
|
|
@@ -102,8 +118,14 @@ async function createDebugLogStates(adapter) {
|
|
|
102
118
|
await adapter.setObjectNotExistsAsync('SystemCheck.debug_logs.clear', {
|
|
103
119
|
type: 'state',
|
|
104
120
|
common: {
|
|
105
|
-
name:
|
|
106
|
-
|
|
121
|
+
name: {
|
|
122
|
+
en: 'Clear log',
|
|
123
|
+
de: 'Log loeschen',
|
|
124
|
+
},
|
|
125
|
+
desc: {
|
|
126
|
+
en: 'Clears the continuous log in channel SystemCheck.debug_logs.',
|
|
127
|
+
de: 'Loescht das fortlaufende Log im Kanal SystemCheck.debug_logs.',
|
|
128
|
+
},
|
|
107
129
|
type: 'boolean',
|
|
108
130
|
role: 'button',
|
|
109
131
|
read: true,
|
|
@@ -13,7 +13,10 @@ async function createGeneralStates(adapter) {
|
|
|
13
13
|
await adapter.setObjectNotExistsAsync('general', {
|
|
14
14
|
type: 'channel',
|
|
15
15
|
common: {
|
|
16
|
-
name:
|
|
16
|
+
name: {
|
|
17
|
+
en: 'General settings',
|
|
18
|
+
de: 'Allgemeine Einstellungen',
|
|
19
|
+
},
|
|
17
20
|
},
|
|
18
21
|
native: {},
|
|
19
22
|
});
|
|
@@ -22,7 +25,14 @@ async function createGeneralStates(adapter) {
|
|
|
22
25
|
await adapter.setObjectNotExistsAsync('general.pool_name', {
|
|
23
26
|
type: 'state',
|
|
24
27
|
common: {
|
|
25
|
-
name:
|
|
28
|
+
name: {
|
|
29
|
+
en: 'Name of your pool',
|
|
30
|
+
de: 'Name Ihres Pools',
|
|
31
|
+
},
|
|
32
|
+
desc: {
|
|
33
|
+
en: 'Configured name of the pool',
|
|
34
|
+
de: 'Konfigurierter Name des Pools',
|
|
35
|
+
},
|
|
26
36
|
type: 'string',
|
|
27
37
|
role: 'text',
|
|
28
38
|
read: true,
|
|
@@ -39,7 +49,14 @@ async function createGeneralStates(adapter) {
|
|
|
39
49
|
await adapter.setObjectNotExistsAsync('general.min_circulation_per_day', {
|
|
40
50
|
type: 'state',
|
|
41
51
|
common: {
|
|
42
|
-
name:
|
|
52
|
+
name: {
|
|
53
|
+
en: 'Min. circulation per day',
|
|
54
|
+
de: 'Min. Umwaelzung pro Tag',
|
|
55
|
+
},
|
|
56
|
+
desc: {
|
|
57
|
+
en: 'Configured minimum circulation count per day',
|
|
58
|
+
de: 'Konfigurierte minimale Umwaelzung pro Tag',
|
|
59
|
+
},
|
|
43
60
|
type: 'number',
|
|
44
61
|
role: 'value',
|
|
45
62
|
unit: 'x',
|
|
@@ -57,7 +74,14 @@ async function createGeneralStates(adapter) {
|
|
|
57
74
|
await adapter.setObjectNotExistsAsync('general.pool_size', {
|
|
58
75
|
type: 'state',
|
|
59
76
|
common: {
|
|
60
|
-
name:
|
|
77
|
+
name: {
|
|
78
|
+
en: 'Size of your pool in liters',
|
|
79
|
+
de: 'Groesse Ihres Pools in Litern',
|
|
80
|
+
},
|
|
81
|
+
desc: {
|
|
82
|
+
en: 'Configured pool size in liters',
|
|
83
|
+
de: 'Konfigurierte Poolgroesse in Litern',
|
|
84
|
+
},
|
|
61
85
|
type: 'number',
|
|
62
86
|
role: 'value',
|
|
63
87
|
unit: 'l',
|
|
@@ -14,7 +14,10 @@ async function createHeatStates(adapter) {
|
|
|
14
14
|
await adapter.setObjectNotExistsAsync(channelId, {
|
|
15
15
|
type: 'channel',
|
|
16
16
|
common: {
|
|
17
|
-
name:
|
|
17
|
+
name: {
|
|
18
|
+
en: 'Heating / heat pump',
|
|
19
|
+
de: 'Heizung / Waermepumpe',
|
|
20
|
+
},
|
|
18
21
|
},
|
|
19
22
|
native: {},
|
|
20
23
|
});
|
|
@@ -26,7 +29,14 @@ async function createHeatStates(adapter) {
|
|
|
26
29
|
await adapter.setObjectNotExistsAsync(`${channelId}.control_active`, {
|
|
27
30
|
type: 'state',
|
|
28
31
|
common: {
|
|
29
|
-
name:
|
|
32
|
+
name: {
|
|
33
|
+
en: 'Heating control active',
|
|
34
|
+
de: 'Heizungssteuerung aktiv',
|
|
35
|
+
},
|
|
36
|
+
desc: {
|
|
37
|
+
en: 'Enables or disables the automatic heating control',
|
|
38
|
+
de: 'Aktiviert oder deaktiviert die automatische Heizungssteuerung',
|
|
39
|
+
},
|
|
30
40
|
type: 'boolean',
|
|
31
41
|
role: 'switch',
|
|
32
42
|
read: true,
|
|
@@ -50,7 +60,14 @@ async function createHeatStates(adapter) {
|
|
|
50
60
|
await adapter.setObjectNotExistsAsync(`${channelId}.control_type`, {
|
|
51
61
|
type: 'state',
|
|
52
62
|
common: {
|
|
53
|
-
name:
|
|
63
|
+
name: {
|
|
64
|
+
en: 'Type of heating control',
|
|
65
|
+
de: 'Typ der Heizungssteuerung',
|
|
66
|
+
},
|
|
67
|
+
desc: {
|
|
68
|
+
en: 'Defines which type of heating control is used',
|
|
69
|
+
de: 'Legt fest, welcher Typ der Heizungssteuerung verwendet wird',
|
|
70
|
+
},
|
|
54
71
|
type: 'string',
|
|
55
72
|
role: 'text',
|
|
56
73
|
read: true,
|
|
@@ -70,7 +87,14 @@ async function createHeatStates(adapter) {
|
|
|
70
87
|
await adapter.setObjectNotExistsAsync(`${channelId}.control_object_id`, {
|
|
71
88
|
type: 'state',
|
|
72
89
|
common: {
|
|
73
|
-
name:
|
|
90
|
+
name: {
|
|
91
|
+
en: 'Control object ID (heating)',
|
|
92
|
+
de: 'Steuerobjekt-ID (Heizung)',
|
|
93
|
+
},
|
|
94
|
+
desc: {
|
|
95
|
+
en: 'Object ID used to control the heating',
|
|
96
|
+
de: 'Objekt-ID, die zur Steuerung der Heizung verwendet wird',
|
|
97
|
+
},
|
|
74
98
|
type: 'string',
|
|
75
99
|
role: 'text',
|
|
76
100
|
read: true,
|
|
@@ -90,7 +114,14 @@ async function createHeatStates(adapter) {
|
|
|
90
114
|
await adapter.setObjectNotExistsAsync(`${channelId}.target_temperature`, {
|
|
91
115
|
type: 'state',
|
|
92
116
|
common: {
|
|
93
|
-
name:
|
|
117
|
+
name: {
|
|
118
|
+
en: 'Pool target temperature',
|
|
119
|
+
de: 'Pool-Solltemperatur',
|
|
120
|
+
},
|
|
121
|
+
desc: {
|
|
122
|
+
en: 'Desired target temperature for the pool water',
|
|
123
|
+
de: 'Gewuenschte Solltemperatur fuer das Poolwasser',
|
|
124
|
+
},
|
|
94
125
|
type: 'number',
|
|
95
126
|
role: 'level',
|
|
96
127
|
unit: '°C',
|
|
@@ -111,7 +142,14 @@ async function createHeatStates(adapter) {
|
|
|
111
142
|
await adapter.setObjectNotExistsAsync(`${channelId}.max_temperature`, {
|
|
112
143
|
type: 'state',
|
|
113
144
|
common: {
|
|
114
|
-
name:
|
|
145
|
+
name: {
|
|
146
|
+
en: 'Maximum pool temperature (safety)',
|
|
147
|
+
de: 'Maximale Pooltemperatur (Sicherheit)',
|
|
148
|
+
},
|
|
149
|
+
desc: {
|
|
150
|
+
en: 'Maximum allowed pool temperature for safety shutdown',
|
|
151
|
+
de: 'Maximal zulaessige Pooltemperatur fuer die Sicherheitsabschaltung',
|
|
152
|
+
},
|
|
115
153
|
type: 'number',
|
|
116
154
|
role: 'level',
|
|
117
155
|
unit: '°C',
|
|
@@ -133,7 +171,14 @@ async function createHeatStates(adapter) {
|
|
|
133
171
|
await adapter.setObjectNotExistsAsync(`${channelId}.pump_prerun_minutes`, {
|
|
134
172
|
type: 'state',
|
|
135
173
|
common: {
|
|
136
|
-
name:
|
|
174
|
+
name: {
|
|
175
|
+
en: 'Pump pre-run time before heating',
|
|
176
|
+
de: 'Pumpen-Vorlaufzeit vor Heizung',
|
|
177
|
+
},
|
|
178
|
+
desc: {
|
|
179
|
+
en: 'Configured pump pre-run time in minutes before heating starts',
|
|
180
|
+
de: 'Konfigurierte Pumpen-Vorlaufzeit in Minuten vor dem Heizstart',
|
|
181
|
+
},
|
|
137
182
|
type: 'number',
|
|
138
183
|
role: 'level',
|
|
139
184
|
unit: 'min',
|
|
@@ -154,7 +199,14 @@ async function createHeatStates(adapter) {
|
|
|
154
199
|
await adapter.setObjectNotExistsAsync(`${channelId}.pump_afterrun_minutes`, {
|
|
155
200
|
type: 'state',
|
|
156
201
|
common: {
|
|
157
|
-
name:
|
|
202
|
+
name: {
|
|
203
|
+
en: 'Pump after-run time after heating',
|
|
204
|
+
de: 'Pumpen-Nachlaufzeit nach Heizung',
|
|
205
|
+
},
|
|
206
|
+
desc: {
|
|
207
|
+
en: 'Configured pump after-run time in minutes after heating stops',
|
|
208
|
+
de: 'Konfigurierte Pumpen-Nachlaufzeit in Minuten nach dem Heizende',
|
|
209
|
+
},
|
|
158
210
|
type: 'number',
|
|
159
211
|
role: 'level',
|
|
160
212
|
unit: 'min',
|
|
@@ -179,7 +231,14 @@ async function createHeatStates(adapter) {
|
|
|
179
231
|
await adapter.setObjectNotExistsAsync(`${channelId}.active`, {
|
|
180
232
|
type: 'state',
|
|
181
233
|
common: {
|
|
182
|
-
name:
|
|
234
|
+
name: {
|
|
235
|
+
en: 'Heating active',
|
|
236
|
+
de: 'Heizung aktiv',
|
|
237
|
+
},
|
|
238
|
+
desc: {
|
|
239
|
+
en: 'Shows whether heating is currently active',
|
|
240
|
+
de: 'Zeigt an, ob die Heizung aktuell aktiv ist',
|
|
241
|
+
},
|
|
183
242
|
type: 'boolean',
|
|
184
243
|
role: 'indicator.working',
|
|
185
244
|
read: true,
|
|
@@ -191,7 +250,14 @@ async function createHeatStates(adapter) {
|
|
|
191
250
|
await adapter.setObjectNotExistsAsync(`${channelId}.mode`, {
|
|
192
251
|
type: 'state',
|
|
193
252
|
common: {
|
|
194
|
-
name:
|
|
253
|
+
name: {
|
|
254
|
+
en: 'Heating mode',
|
|
255
|
+
de: 'Heizmodus',
|
|
256
|
+
},
|
|
257
|
+
desc: {
|
|
258
|
+
en: 'Current operating mode of the heating control',
|
|
259
|
+
de: 'Aktueller Betriebsmodus der Heizungssteuerung',
|
|
260
|
+
},
|
|
195
261
|
type: 'string',
|
|
196
262
|
role: 'text',
|
|
197
263
|
read: true,
|
|
@@ -203,7 +269,14 @@ async function createHeatStates(adapter) {
|
|
|
203
269
|
await adapter.setObjectNotExistsAsync(`${channelId}.blocked`, {
|
|
204
270
|
type: 'state',
|
|
205
271
|
common: {
|
|
206
|
-
name:
|
|
272
|
+
name: {
|
|
273
|
+
en: 'Heating blocked',
|
|
274
|
+
de: 'Heizung blockiert',
|
|
275
|
+
},
|
|
276
|
+
desc: {
|
|
277
|
+
en: 'Shows whether heating is currently blocked',
|
|
278
|
+
de: 'Zeigt an, ob die Heizung aktuell blockiert ist',
|
|
279
|
+
},
|
|
207
280
|
type: 'boolean',
|
|
208
281
|
role: 'indicator.blocked',
|
|
209
282
|
read: true,
|
|
@@ -216,7 +289,14 @@ async function createHeatStates(adapter) {
|
|
|
216
289
|
await adapter.setObjectNotExistsAsync(`${channelId}.prerun_active`, {
|
|
217
290
|
type: 'state',
|
|
218
291
|
common: {
|
|
219
|
-
name:
|
|
292
|
+
name: {
|
|
293
|
+
en: 'Pump pre-run active',
|
|
294
|
+
de: 'Pumpen-Vorlauf aktiv',
|
|
295
|
+
},
|
|
296
|
+
desc: {
|
|
297
|
+
en: 'Indicates whether the pump is currently running before the heating process starts',
|
|
298
|
+
de: 'Zeigt an, ob die Pumpe aktuell vor dem Heizvorgang läuft',
|
|
299
|
+
},
|
|
220
300
|
type: 'boolean',
|
|
221
301
|
role: 'indicator.working',
|
|
222
302
|
read: true,
|
|
@@ -228,7 +308,14 @@ async function createHeatStates(adapter) {
|
|
|
228
308
|
await adapter.setObjectNotExistsAsync(`${channelId}.afterrun_active`, {
|
|
229
309
|
type: 'state',
|
|
230
310
|
common: {
|
|
231
|
-
name:
|
|
311
|
+
name: {
|
|
312
|
+
en: 'Pump after-run active',
|
|
313
|
+
de: 'Pumpen-Nachlauf aktiv',
|
|
314
|
+
},
|
|
315
|
+
desc: {
|
|
316
|
+
en: 'Indicates whether the pump is currently running after the heating process has finished',
|
|
317
|
+
de: 'Zeigt an, ob die Pumpe aktuell nach dem Heizvorgang läuft',
|
|
318
|
+
},
|
|
232
319
|
type: 'boolean',
|
|
233
320
|
role: 'indicator.working',
|
|
234
321
|
read: true,
|
|
@@ -240,7 +327,14 @@ async function createHeatStates(adapter) {
|
|
|
240
327
|
await adapter.setObjectNotExistsAsync(`${channelId}.last_change`, {
|
|
241
328
|
type: 'state',
|
|
242
329
|
common: {
|
|
243
|
-
name:
|
|
330
|
+
name: {
|
|
331
|
+
en: 'Last heating status change',
|
|
332
|
+
de: 'Letzte Aenderung des Heizstatus',
|
|
333
|
+
},
|
|
334
|
+
desc: {
|
|
335
|
+
en: 'Timestamp of the last heating status change',
|
|
336
|
+
de: 'Zeitstempel der letzten Aenderung des Heizstatus',
|
|
337
|
+
},
|
|
244
338
|
type: 'number',
|
|
245
339
|
role: 'value.time',
|
|
246
340
|
read: true,
|
|
@@ -252,7 +346,14 @@ async function createHeatStates(adapter) {
|
|
|
252
346
|
await adapter.setObjectNotExistsAsync(`${channelId}.heating_request`, {
|
|
253
347
|
type: 'state',
|
|
254
348
|
common: {
|
|
255
|
-
name:
|
|
349
|
+
name: {
|
|
350
|
+
en: 'Heating request (PoolControl)',
|
|
351
|
+
de: 'Heizanforderung (PoolControl)',
|
|
352
|
+
},
|
|
353
|
+
desc: {
|
|
354
|
+
en: 'Indicates whether PoolControl currently requests heating',
|
|
355
|
+
de: 'Zeigt an, ob PoolControl aktuell Wärme anfordert',
|
|
356
|
+
},
|
|
256
357
|
type: 'boolean',
|
|
257
358
|
role: 'indicator.request',
|
|
258
359
|
read: true,
|
|
@@ -269,7 +370,14 @@ async function createHeatStates(adapter) {
|
|
|
269
370
|
await adapter.setObjectNotExistsAsync(`${channelId}.reason`, {
|
|
270
371
|
type: 'state',
|
|
271
372
|
common: {
|
|
272
|
-
name:
|
|
373
|
+
name: {
|
|
374
|
+
en: 'Reason for heating status',
|
|
375
|
+
de: 'Grund fuer Heizstatus',
|
|
376
|
+
},
|
|
377
|
+
desc: {
|
|
378
|
+
en: 'Reason text for the current heating status',
|
|
379
|
+
de: 'Begruendungstext fuer den aktuellen Heizstatus',
|
|
380
|
+
},
|
|
273
381
|
type: 'string',
|
|
274
382
|
role: 'text',
|
|
275
383
|
read: true,
|
|
@@ -281,7 +389,14 @@ async function createHeatStates(adapter) {
|
|
|
281
389
|
await adapter.setObjectNotExistsAsync(`${channelId}.info`, {
|
|
282
390
|
type: 'state',
|
|
283
391
|
common: {
|
|
284
|
-
name:
|
|
392
|
+
name: {
|
|
393
|
+
en: 'Heating info',
|
|
394
|
+
de: 'Heizungsinfo',
|
|
395
|
+
},
|
|
396
|
+
desc: {
|
|
397
|
+
en: 'Additional information text about the heating status',
|
|
398
|
+
de: 'Zusaetzlicher Informationstext zum Heizstatus',
|
|
399
|
+
},
|
|
285
400
|
type: 'string',
|
|
286
401
|
role: 'text',
|
|
287
402
|
read: true,
|