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.
Files changed (35) hide show
  1. package/README.md +18 -11
  2. package/admin/i18n/de/translations.json +0 -2
  3. package/admin/i18n/es/translations.json +0 -2
  4. package/admin/i18n/fr/translations.json +0 -2
  5. package/admin/i18n/it/translations.json +0 -2
  6. package/admin/i18n/nl/translations.json +0 -2
  7. package/admin/i18n/pl/translations.json +0 -2
  8. package/admin/i18n/pt/translations.json +0 -2
  9. package/admin/i18n/ru/translations.json +0 -2
  10. package/admin/i18n/uk/translations.json +0 -2
  11. package/admin/i18n/zh-cn/translations.json +0 -2
  12. package/io-package.json +38 -32
  13. package/lib/stateDefinitions/actuatorsStates.js +132 -19
  14. package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
  15. package/lib/stateDefinitions/aiStates.js +201 -31
  16. package/lib/stateDefinitions/consumptionStates.js +140 -14
  17. package/lib/stateDefinitions/controlStates.js +120 -34
  18. package/lib/stateDefinitions/debugLogStates.js +32 -10
  19. package/lib/stateDefinitions/generalStates.js +28 -4
  20. package/lib/stateDefinitions/heatStates.js +132 -17
  21. package/lib/stateDefinitions/infoStates.js +20 -5
  22. package/lib/stateDefinitions/photovoltaicStates.js +78 -19
  23. package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
  24. package/lib/stateDefinitions/pumpStates.js +100 -15
  25. package/lib/stateDefinitions/pumpStates2.js +36 -9
  26. package/lib/stateDefinitions/pumpStates3.js +92 -23
  27. package/lib/stateDefinitions/pumpStates4.js +120 -30
  28. package/lib/stateDefinitions/runtimeStates.js +74 -10
  29. package/lib/stateDefinitions/solarStates.js +68 -9
  30. package/lib/stateDefinitions/speechStates.js +133 -18
  31. package/lib/stateDefinitions/statisticsStates.js +167 -24
  32. package/lib/stateDefinitions/statusStates.js +92 -12
  33. package/lib/stateDefinitions/temperatureStates.js +117 -18
  34. package/lib/stateDefinitions/timeStates.js +43 -12
  35. package/package.json +2 -1
@@ -26,7 +26,10 @@ async function createStatisticsStates(adapter) {
26
26
  await adapter.setObjectNotExistsAsync('analytics', {
27
27
  type: 'channel',
28
28
  common: {
29
- name: 'Analytics & insights (statistics, history, reports)',
29
+ name: {
30
+ en: 'Analytics & insights (statistics, history, reports)',
31
+ de: 'Analysen & Statistiken (Verlauf, Berichte)',
32
+ },
30
33
  },
31
34
  native: {},
32
35
  });
@@ -34,7 +37,10 @@ async function createStatisticsStates(adapter) {
34
37
  await adapter.setObjectNotExistsAsync('analytics.statistics', {
35
38
  type: 'channel',
36
39
  common: {
37
- name: 'Statistical evaluations',
40
+ name: {
41
+ en: 'Statistical evaluations',
42
+ de: 'Statistische Auswertungen',
43
+ },
38
44
  },
39
45
  native: {},
40
46
  });
@@ -42,7 +48,10 @@ async function createStatisticsStates(adapter) {
42
48
  await adapter.setObjectNotExistsAsync('analytics.statistics.temperature', {
43
49
  type: 'channel',
44
50
  common: {
45
- name: 'Temperature statistics',
51
+ name: {
52
+ en: 'Temperature statistics',
53
+ de: 'Temperaturstatistiken',
54
+ },
46
55
  },
47
56
  native: {},
48
57
  });
@@ -74,20 +83,62 @@ async function createStatisticsStates(adapter) {
74
83
  */
75
84
  async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
76
85
  const basePathRoot = `analytics.statistics.temperature.${periodId}`;
86
+ const periodNames = {
87
+ today: {
88
+ en: 'Daily statistics (temperatures)',
89
+ de: 'Tagesstatistik (Temperaturen)',
90
+ },
91
+ week: {
92
+ en: 'Weekly statistics (temperatures)',
93
+ de: 'Wochenstatistik (Temperaturen)',
94
+ },
95
+ month: {
96
+ en: 'Monthly statistics (temperatures)',
97
+ de: 'Monatsstatistik (Temperaturen)',
98
+ },
99
+ };
100
+
101
+ const sensorNames = {
102
+ outside: {
103
+ en: 'Outside temperature',
104
+ de: 'Aussentemperatur',
105
+ },
106
+ ground: {
107
+ en: 'Ground temperature',
108
+ de: 'Bodentemperatur',
109
+ },
110
+ surface: {
111
+ en: 'Pool surface temperature',
112
+ de: 'Pooloberflaechentemperatur',
113
+ },
114
+ flow: {
115
+ en: 'Flow temperature',
116
+ de: 'Vorlauftemperatur',
117
+ },
118
+ return: {
119
+ en: 'Return temperature',
120
+ de: 'Ruecklauftemperatur',
121
+ },
122
+ collector: {
123
+ en: 'Collector temperature (solar)',
124
+ de: 'Kollektortemperatur (Solar)',
125
+ },
126
+ };
127
+
77
128
  await adapter.setObjectNotExistsAsync(basePathRoot, {
78
129
  type: 'channel',
79
- common: { name: displayName },
130
+ common: { name: periodNames[periodId] || { en: displayName, de: displayName } },
80
131
  native: {},
81
132
  });
82
133
 
83
134
  // Definierte Sensoren
84
135
  const sensors = [
85
- { id: 'outside', name: 'Outside temperature' },
86
- { id: 'ground', name: 'Ground temperature' },
87
- { id: 'surface', name: 'Pool surface' },
88
- { id: 'flow', name: 'Flow' },
89
- { id: 'return', name: 'Return' },
90
- { id: 'collector', name: 'Collector (solar)' },
136
+ { id: 'outside', name: sensorNames.outside },
137
+ { id: 'ground', name: sensorNames.ground },
138
+ { id: 'surface', name: sensorNames.surface },
139
+ { id: 'flow', name: sensorNames.flow },
140
+ { id: 'return', name: sensorNames.return },
141
+ { id: 'collector', name: sensorNames.collector },
91
142
  ];
92
143
 
93
144
  for (const sensor of sensors) {
@@ -95,7 +146,10 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
95
146
  await adapter.setObjectNotExistsAsync(basePath, {
96
147
  type: 'channel',
97
148
  common: {
98
- name: `${sensor.name} (${displayName})`,
149
+ name: {
150
+ en: `${sensor.name.en} (${periodNames[periodId].en})`,
151
+ de: `${sensor.name.de} (${periodNames[periodId].de})`,
152
+ },
99
153
  },
100
154
  native: {},
101
155
  });
@@ -103,58 +157,121 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
103
157
  const stateDefs = [
104
158
  {
105
159
  id: 'temp_min',
106
- name: 'Lowest temperature',
160
+ name: {
161
+ en: 'Lowest temperature',
162
+ de: 'Niedrigste Temperatur',
163
+ },
164
+ desc: {
165
+ en: `Lowest recorded temperature for ${sensor.name.en} in this period`,
166
+ de: `Niedrigste erfasste Temperatur fuer ${sensor.name.de} in diesem Zeitraum`,
167
+ },
107
168
  type: 'number',
108
169
  role: 'value.temperature',
109
170
  unit: '°C',
110
171
  },
111
172
  {
112
173
  id: 'temp_max',
113
- name: 'Highest temperature',
174
+ name: {
175
+ en: 'Highest temperature',
176
+ de: 'Hoechste Temperatur',
177
+ },
178
+ desc: {
179
+ en: `Highest recorded temperature for ${sensor.name.en} in this period`,
180
+ de: `Hoechste erfasste Temperatur fuer ${sensor.name.de} in diesem Zeitraum`,
181
+ },
114
182
  type: 'number',
115
183
  role: 'value.temperature',
116
184
  unit: '°C',
117
185
  },
118
186
  {
119
187
  id: 'temp_min_time',
120
- name: 'Time of minimum',
188
+ name: {
189
+ en: 'Time of minimum temperature',
190
+ de: 'Zeitpunkt der Mindesttemperatur',
191
+ },
192
+ desc: {
193
+ en: `Timestamp of the minimum temperature for ${sensor.name.en} in this period`,
194
+ de: `Zeitstempel der Mindesttemperatur fuer ${sensor.name.de} in diesem Zeitraum`,
195
+ },
121
196
  type: 'string',
122
197
  role: 'value.time',
123
198
  },
124
199
  {
125
200
  id: 'temp_max_time',
126
- name: 'Time of maximum',
201
+ name: {
202
+ en: 'Time of maximum temperature',
203
+ de: 'Zeitpunkt der Hoechsttemperatur',
204
+ },
205
+ desc: {
206
+ en: `Timestamp of the maximum temperature for ${sensor.name.en} in this period`,
207
+ de: `Zeitstempel der Hoechsttemperatur fuer ${sensor.name.de} in diesem Zeitraum`,
208
+ },
127
209
  type: 'string',
128
210
  role: 'value.time',
129
211
  },
130
212
  {
131
213
  id: 'temp_avg',
132
- name: 'Average temperature',
214
+ name: {
215
+ en: 'Average temperature',
216
+ de: 'Durchschnittstemperatur',
217
+ },
218
+ desc: {
219
+ en: `Average temperature for ${sensor.name.en} in this period`,
220
+ de: `Durchschnittstemperatur fuer ${sensor.name.de} in diesem Zeitraum`,
221
+ },
133
222
  type: 'number',
134
223
  role: 'value.temperature',
135
224
  unit: '°C',
136
225
  },
137
226
  {
138
227
  id: 'data_points_count',
139
- name: 'Number of values',
228
+ name: {
229
+ en: 'Number of recorded values',
230
+ de: 'Anzahl der erfasstenWerte',
231
+ },
232
+ desc: {
233
+ en: `Number of recorded values for ${sensor.name.en} in this period`,
234
+ de: `Anzahl der erfassten Werte fuer ${sensor.name.de} in diesem Zeitraum`,
235
+ },
140
236
  type: 'number',
141
237
  role: 'value',
142
238
  },
143
239
  {
144
240
  id: 'last_update',
145
- name: 'Last update',
241
+ name: {
242
+ en: 'Last update',
243
+ de: 'Letzte Aktualisierung',
244
+ },
245
+ desc: {
246
+ en: `Timestamp of the last statistics update for ${sensor.name.en}`,
247
+ de: `Zeitstempel der letzten Statistikaktualisierung fuer ${sensor.name.de}`,
248
+ },
146
249
  type: 'string',
147
250
  role: 'value.time',
148
251
  },
149
252
  {
150
253
  id: 'summary_json',
151
- name: `${displayName} (JSON)`,
254
+ name: {
255
+ en: `${periodNames[periodId].en} (JSON)`,
256
+ de: `${periodNames[periodId].de} (JSON)`,
257
+ },
258
+ desc: {
259
+ en: `JSON summary for ${sensor.name.en} in this period`,
260
+ de: `JSON-Zusammenfassung fuer ${sensor.name.de} in diesem Zeitraum`,
261
+ },
152
262
  type: 'string',
153
263
  role: 'json',
154
264
  },
155
265
  {
156
266
  id: 'summary_html',
157
- name: `${displayName} (HTML)`,
267
+ name: {
268
+ en: `${periodNames[periodId].en} (HTML)`,
269
+ de: `${periodNames[periodId].de} (HTML)`,
270
+ },
271
+ desc: {
272
+ en: `HTML summary for ${sensor.name.en} in this period`,
273
+ de: `HTML-Zusammenfassung fuer ${sensor.name.de} in diesem Zeitraum`,
274
+ },
158
275
  type: 'string',
159
276
  role: 'html',
160
277
  },
@@ -164,7 +281,14 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
164
281
  if (periodId === 'today') {
165
282
  stateDefs.push({
166
283
  id: 'reset_today',
167
- name: 'Reset daily statistics',
284
+ name: {
285
+ en: 'Reset daily statistics',
286
+ de: 'Tagesstatistik zuruecksetzen',
287
+ },
288
+ desc: {
289
+ en: `Resets the daily statistics for ${sensor.name.en}`,
290
+ de: `Setzt die Tagesstatistik fuer ${sensor.name.de} zurueck`,
291
+ },
168
292
  type: 'boolean',
169
293
  role: 'button',
170
294
  });
@@ -175,6 +299,7 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
175
299
  type: 'state',
176
300
  common: {
177
301
  name: def.name,
302
+ desc: def.desc,
178
303
  type: def.type,
179
304
  role: def.role,
180
305
  unit: def.unit || undefined,
@@ -193,7 +318,10 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
193
318
  await adapter.setObjectNotExistsAsync(outputBase, {
194
319
  type: 'channel',
195
320
  common: {
196
- name: 'Overall outputs (all sensors)',
321
+ name: {
322
+ en: 'Overall outputs (all sensors)',
323
+ de: 'Gesamtausgaben (alle Sensoren)',
324
+ },
197
325
  },
198
326
  native: {},
199
327
  });
@@ -201,12 +329,26 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
201
329
  const outputs = [
202
330
  {
203
331
  id: 'summary_all_json',
204
- name: `Overall summary of all sensors (${displayName}, JSON)`,
332
+ name: {
333
+ en: `Overall summary of all sensors (${periodNames[periodId].en}, JSON)`,
334
+ de: `Gesamtzusammenfassung aller Sensoren (${periodNames[periodId].de}, JSON)`,
335
+ },
336
+ desc: {
337
+ en: `Combined JSON summary of all temperature sensors for ${periodNames[periodId].en}`,
338
+ de: `Kombinierte JSON-Zusammenfassung aller Temperatursensoren fuer ${periodNames[periodId].de}`,
339
+ },
205
340
  role: 'json',
206
341
  },
207
342
  {
208
343
  id: 'summary_all_html',
209
- name: `Overall summary of all sensors (${displayName}, HTML)`,
344
+ name: {
345
+ en: `Overall summary of all sensors (${periodNames[periodId].en}, HTML)`,
346
+ de: `Gesamtzusammenfassung aller Sensoren (${periodNames[periodId].de}, HTML)`,
347
+ },
348
+ desc: {
349
+ en: `Combined HTML summary of all temperature sensors for ${periodNames[periodId].en}`,
350
+ de: `Kombinierte HTML-Zusammenfassung aller Temperatursensoren fuer ${periodNames[periodId].de}`,
351
+ },
210
352
  role: 'html',
211
353
  },
212
354
  ];
@@ -216,6 +358,7 @@ async function _createTemperatureStatsGroup(adapter, periodId, displayName) {
216
358
  type: 'state',
217
359
  common: {
218
360
  name: out.name,
361
+ desc: out.desc,
219
362
  type: 'string',
220
363
  role: out.role,
221
364
  read: true,
@@ -21,7 +21,10 @@ async function createStatusStates(adapter) {
21
21
  await adapter.setObjectNotExistsAsync('status', {
22
22
  type: 'channel',
23
23
  common: {
24
- name: 'Status overview',
24
+ name: {
25
+ en: 'Status overview',
26
+ de: 'Statusuebersicht',
27
+ },
25
28
  },
26
29
  native: {},
27
30
  });
@@ -30,7 +33,14 @@ async function createStatusStates(adapter) {
30
33
  await adapter.setObjectNotExistsAsync('status.summary', {
31
34
  type: 'state',
32
35
  common: {
33
- name: 'Summary as text',
36
+ name: {
37
+ en: 'Summary',
38
+ de: 'Zusammenfassung',
39
+ },
40
+ desc: {
41
+ en: 'Text summary of the current system status',
42
+ de: 'Textzusammenfassung des aktuellen Systemstatus',
43
+ },
34
44
  type: 'string',
35
45
  role: 'text',
36
46
  read: true,
@@ -45,7 +55,14 @@ async function createStatusStates(adapter) {
45
55
  await adapter.setObjectNotExistsAsync('status.overview_json', {
46
56
  type: 'state',
47
57
  common: {
48
- name: 'Overview as JSON',
58
+ name: {
59
+ en: 'Overview as JSON',
60
+ de: 'Uebersicht als JSON',
61
+ },
62
+ desc: {
63
+ en: 'JSON summary of the current system status',
64
+ de: 'JSON-Zusammenfassung des aktuellen Systemstatus',
65
+ },
49
66
  type: 'string',
50
67
  role: 'json',
51
68
  read: true,
@@ -59,7 +76,14 @@ async function createStatusStates(adapter) {
59
76
  await adapter.setObjectNotExistsAsync('status.last_summary_update', {
60
77
  type: 'state',
61
78
  common: {
62
- name: 'Last summary update',
79
+ name: {
80
+ en: 'Last summary update',
81
+ de: 'Letzte Aktualisierung der Zusammenfassung',
82
+ },
83
+ desc: {
84
+ en: 'Timestamp of the last status summary update',
85
+ de: 'Zeitstempel der letzten Aktualisierung der Statuszusammenfassung',
86
+ },
63
87
  type: 'string',
64
88
  role: 'date',
65
89
  read: true,
@@ -73,7 +97,14 @@ async function createStatusStates(adapter) {
73
97
  await adapter.setObjectNotExistsAsync('status.pump_last_start', {
74
98
  type: 'state',
75
99
  common: {
76
- name: 'Last pump start',
100
+ name: {
101
+ en: 'Last pump start',
102
+ de: 'Letzter Pumpenstart',
103
+ },
104
+ desc: {
105
+ en: 'Timestamp of the last pump start',
106
+ de: 'Zeitstempel des letzten Pumpenstarts',
107
+ },
77
108
  type: 'string',
78
109
  role: 'date',
79
110
  read: true,
@@ -88,7 +119,14 @@ async function createStatusStates(adapter) {
88
119
  await adapter.setObjectNotExistsAsync('status.pump_last_stop', {
89
120
  type: 'state',
90
121
  common: {
91
- name: 'Last pump stop',
122
+ name: {
123
+ en: 'Last pump stop',
124
+ de: 'Letzter Pumpenstopp',
125
+ },
126
+ desc: {
127
+ en: 'Timestamp of the last pump stop',
128
+ de: 'Zeitstempel des letzten Pumpenstopps',
129
+ },
92
130
  type: 'string',
93
131
  role: 'date',
94
132
  read: true,
@@ -103,7 +141,14 @@ async function createStatusStates(adapter) {
103
141
  await adapter.setObjectNotExistsAsync('status.pump_was_on_today', {
104
142
  type: 'state',
105
143
  common: {
106
- name: 'Pump was on today',
144
+ name: {
145
+ en: 'Pump was on today',
146
+ de: 'Pumpe war heute an',
147
+ },
148
+ desc: {
149
+ en: 'Indicates whether the pump has been active today',
150
+ de: 'Zeigt an, ob die Pumpe heute aktiv war',
151
+ },
107
152
  type: 'boolean',
108
153
  role: 'indicator',
109
154
  read: true,
@@ -118,7 +163,14 @@ async function createStatusStates(adapter) {
118
163
  await adapter.setObjectNotExistsAsync('status.pump_today_count', {
119
164
  type: 'state',
120
165
  common: {
121
- name: 'Pump starts today',
166
+ name: {
167
+ en: 'Pump starts today',
168
+ de: 'Pumpenstarts heute',
169
+ },
170
+ desc: {
171
+ en: 'Number of pump starts counted today',
172
+ de: 'Anzahl der heute gezaehlten Pumpenstarts',
173
+ },
122
174
  type: 'number',
123
175
  role: 'value',
124
176
  read: true,
@@ -133,7 +185,14 @@ async function createStatusStates(adapter) {
133
185
  await adapter.setObjectNotExistsAsync('status.system_ok', {
134
186
  type: 'state',
135
187
  common: {
136
- name: 'System OK',
188
+ name: {
189
+ en: 'System OK',
190
+ de: 'System OK',
191
+ },
192
+ desc: {
193
+ en: 'Indicates whether the system status is currently OK',
194
+ de: 'Zeigt an, ob der Systemstatus aktuell in Ordnung ist',
195
+ },
137
196
  type: 'boolean',
138
197
  role: 'indicator',
139
198
  read: true,
@@ -147,7 +206,14 @@ async function createStatusStates(adapter) {
147
206
  await adapter.setObjectNotExistsAsync('status.system_warning', {
148
207
  type: 'state',
149
208
  common: {
150
- name: 'System warning active',
209
+ name: {
210
+ en: 'System warning active',
211
+ de: 'Systemwarnung aktiv',
212
+ },
213
+ desc: {
214
+ en: 'Indicates whether a system warning is currently active',
215
+ de: 'Zeigt an, ob aktuell eine Systemwarnung aktiv ist',
216
+ },
151
217
  type: 'boolean',
152
218
  role: 'indicator',
153
219
  read: true,
@@ -161,7 +227,14 @@ async function createStatusStates(adapter) {
161
227
  await adapter.setObjectNotExistsAsync('status.system_warning_text', {
162
228
  type: 'state',
163
229
  common: {
164
- name: 'System warning description',
230
+ name: {
231
+ en: 'System warning description',
232
+ de: 'Beschreibung der Systemwarnung',
233
+ },
234
+ desc: {
235
+ en: 'Text description of the current system warning',
236
+ de: 'Textbeschreibung der aktuellen Systemwarnung',
237
+ },
165
238
  type: 'string',
166
239
  role: 'text',
167
240
  read: true,
@@ -175,7 +248,14 @@ async function createStatusStates(adapter) {
175
248
  await adapter.setObjectNotExistsAsync('status.season_active', {
176
249
  type: 'state',
177
250
  common: {
178
- name: 'Pool season active',
251
+ name: {
252
+ en: 'Pool season active',
253
+ de: 'Poolsaison aktiv',
254
+ },
255
+ desc: {
256
+ en: 'Enables or disables the active pool season state',
257
+ de: 'Aktiviert oder deaktiviert den Status der aktiven Poolsaison',
258
+ },
179
259
  type: 'boolean',
180
260
  role: 'switch',
181
261
  read: true,