iobroker.poolcontrol 1.2.12 → 1.2.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/README.md +6 -0
  2. package/admin/i18n/de/translations.json +0 -2
  3. package/admin/i18n/es/translations.json +0 -2
  4. package/admin/i18n/fr/translations.json +0 -2
  5. package/admin/i18n/it/translations.json +0 -2
  6. package/admin/i18n/nl/translations.json +0 -2
  7. package/admin/i18n/pl/translations.json +0 -2
  8. package/admin/i18n/pt/translations.json +0 -2
  9. package/admin/i18n/ru/translations.json +0 -2
  10. package/admin/i18n/uk/translations.json +0 -2
  11. package/admin/i18n/zh-cn/translations.json +0 -2
  12. package/io-package.json +16 -15
  13. package/lib/stateDefinitions/actuatorsStates.js +132 -19
  14. package/lib/stateDefinitions/aiChemistryHelpStates.js +28 -11
  15. package/lib/stateDefinitions/aiStates.js +201 -31
  16. package/lib/stateDefinitions/consumptionStates.js +140 -14
  17. package/lib/stateDefinitions/controlStates.js +120 -34
  18. package/lib/stateDefinitions/debugLogStates.js +32 -10
  19. package/lib/stateDefinitions/generalStates.js +28 -4
  20. package/lib/stateDefinitions/heatStates.js +132 -17
  21. package/lib/stateDefinitions/infoStates.js +20 -5
  22. package/lib/stateDefinitions/photovoltaicStates.js +78 -19
  23. package/lib/stateDefinitions/pumpSpeedStates.js +76 -11
  24. package/lib/stateDefinitions/pumpStates.js +100 -15
  25. package/lib/stateDefinitions/pumpStates2.js +36 -9
  26. package/lib/stateDefinitions/pumpStates3.js +92 -23
  27. package/lib/stateDefinitions/pumpStates4.js +120 -30
  28. package/lib/stateDefinitions/runtimeStates.js +74 -10
  29. package/lib/stateDefinitions/solarStates.js +68 -9
  30. package/lib/stateDefinitions/speechStates.js +133 -18
  31. package/lib/stateDefinitions/statisticsStates.js +167 -24
  32. package/lib/stateDefinitions/statusStates.js +92 -12
  33. package/lib/stateDefinitions/temperatureStates.js +117 -18
  34. package/lib/stateDefinitions/timeStates.js +43 -12
  35. package/package.json +1 -1
@@ -21,11 +21,41 @@
21
21
  * @param {import("iobroker").Adapter} adapter - ioBroker Adapter-Instanz
22
22
  */
23
23
  async function createTemperatureStates(adapter) {
24
+ const sensorLabels = {
25
+ surface: {
26
+ en: 'Surface',
27
+ de: 'Oberflaeche',
28
+ },
29
+ ground: {
30
+ en: 'Ground',
31
+ de: 'Grund',
32
+ },
33
+ flow: {
34
+ en: 'Flow',
35
+ de: 'Vorlauf',
36
+ },
37
+ return: {
38
+ en: 'Return',
39
+ de: 'Ruecklauf',
40
+ },
41
+ collector: {
42
+ en: 'Collector',
43
+ de: 'Kollektor',
44
+ },
45
+ outside: {
46
+ en: 'Outside temperature',
47
+ de: 'Aussentemperatur',
48
+ },
49
+ };
50
+
24
51
  // Root-Kanal (robustheitshalber explizit anlegen)
25
52
  await adapter.setObjectNotExistsAsync('temperature', {
26
53
  type: 'channel',
27
54
  common: {
28
- name: 'Temperature management',
55
+ name: {
56
+ en: 'Temperature management',
57
+ de: 'Temperaturverwaltung',
58
+ },
29
59
  },
30
60
  native: {},
31
61
  });
@@ -34,7 +64,10 @@ async function createTemperatureStates(adapter) {
34
64
  await adapter.setObjectNotExistsAsync('temperature.delta', {
35
65
  type: 'channel',
36
66
  common: {
37
- name: 'Temperature deltas',
67
+ name: {
68
+ en: 'Temperature deltas',
69
+ de: 'Temperaturdeltas',
70
+ },
38
71
  },
39
72
  native: {},
40
73
  });
@@ -45,7 +78,14 @@ async function createTemperatureStates(adapter) {
45
78
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}_temp_active`, {
46
79
  type: 'state',
47
80
  common: {
48
- name: `Use sensor ${label}`,
81
+ name: {
82
+ en: `Use sensor ${label.en}`,
83
+ de: `Sensor ${label.de} verwenden`,
84
+ },
85
+ desc: {
86
+ en: `Enables or disables the ${label.en} sensor from the instance configuration`,
87
+ de: `Aktiviert oder deaktiviert den Sensor ${label.de} aus der Instanzkonfiguration`,
88
+ },
49
89
  type: 'boolean',
50
90
  role: 'switch',
51
91
  read: true,
@@ -61,7 +101,14 @@ async function createTemperatureStates(adapter) {
61
101
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}_temp_sensor`, {
62
102
  type: 'state',
63
103
  common: {
64
- name: `Object ID sensor ${label}`,
104
+ name: {
105
+ en: `Object ID sensor ${label.en}`,
106
+ de: `Objekt-ID Sensor ${label.de}`,
107
+ },
108
+ desc: {
109
+ en: `Configured object ID of the ${label.en} sensor`,
110
+ de: `Konfigurierte Objekt-ID des Sensors ${label.de}`,
111
+ },
65
112
  type: 'string',
66
113
  role: 'text',
67
114
  read: true,
@@ -78,7 +125,10 @@ async function createTemperatureStates(adapter) {
78
125
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}`, {
79
126
  type: 'channel',
80
127
  common: {
81
- name: `Sensor ${label}`,
128
+ name: {
129
+ en: `Sensor ${label.en}`,
130
+ de: `Sensor ${label.de}`,
131
+ },
82
132
  },
83
133
  native: {},
84
134
  });
@@ -86,7 +136,14 @@ async function createTemperatureStates(adapter) {
86
136
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}.current`, {
87
137
  type: 'state',
88
138
  common: {
89
- name: `Current value sensor ${label}`,
139
+ name: {
140
+ en: `Current value sensor ${label.en}`,
141
+ de: `Aktueller Wert Sensor ${label.de}`,
142
+ },
143
+ desc: {
144
+ en: `Current measured temperature value of the ${label.en} sensor`,
145
+ de: `Aktuell gemessener Temperaturwert des Sensors ${label.de}`,
146
+ },
90
147
  type: 'number',
91
148
  role: 'value.temperature',
92
149
  unit: '°C',
@@ -99,7 +156,14 @@ async function createTemperatureStates(adapter) {
99
156
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}.min_today`, {
100
157
  type: 'state',
101
158
  common: {
102
- name: `Daily minimum sensor ${label}`,
159
+ name: {
160
+ en: `Daily minimum sensor ${label.en}`,
161
+ de: `Tagesminimum Sensor ${label.de}`,
162
+ },
163
+ desc: {
164
+ en: `Lowest temperature recorded today for the ${label.en} sensor`,
165
+ de: `Niedrigste heute erfasste Temperatur des Sensors ${label.de}`,
166
+ },
103
167
  type: 'number',
104
168
  role: 'value.temperature',
105
169
  unit: '°C',
@@ -113,7 +177,14 @@ async function createTemperatureStates(adapter) {
113
177
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}.max_today`, {
114
178
  type: 'state',
115
179
  common: {
116
- name: `Daily maximum sensor ${label}`,
180
+ name: {
181
+ en: `Daily maximum sensor ${label.en}`,
182
+ de: `Tagesmaximum Sensor ${label.de}`,
183
+ },
184
+ desc: {
185
+ en: `Highest temperature recorded today for the ${label.en} sensor`,
186
+ de: `Hoechste heute erfasste Temperatur des Sensors ${label.de}`,
187
+ },
117
188
  type: 'number',
118
189
  role: 'value.temperature',
119
190
  unit: '°C',
@@ -127,7 +198,14 @@ async function createTemperatureStates(adapter) {
127
198
  await adapter.setObjectNotExistsAsync(`temperature.${sensorKey}.delta_per_hour`, {
128
199
  type: 'state',
129
200
  common: {
130
- name: `Change per hour sensor ${label}`,
201
+ name: {
202
+ en: `Change per hour sensor ${label.en}`,
203
+ de: `Aenderung pro Stunde Sensor ${label.de}`,
204
+ },
205
+ desc: {
206
+ en: `Hourly temperature change of the ${label.en} sensor`,
207
+ de: `Stuendliche Temperaturveraenderung des Sensors ${label.de}`,
208
+ },
131
209
  type: 'number',
132
210
  role: 'value.temperature',
133
211
  unit: '°C/h',
@@ -139,18 +217,25 @@ async function createTemperatureStates(adapter) {
139
217
  }
140
218
 
141
219
  // Reihenfolge wie in der Instanz-Config (jsonConfig)
142
- await createSensorSet('surface', 'Oberfläche');
143
- await createSensorSet('ground', 'Grund');
144
- await createSensorSet('flow', 'Vorlauf');
145
- await createSensorSet('return', 'Rücklauf');
146
- await createSensorSet('collector', 'Kollektor');
147
- await createSensorSet('outside', 'Außentemperatur');
220
+ await createSensorSet('surface', sensorLabels.surface);
221
+ await createSensorSet('ground', sensorLabels.ground);
222
+ await createSensorSet('flow', sensorLabels.flow);
223
+ await createSensorSet('return', sensorLabels.return);
224
+ await createSensorSet('collector', sensorLabels.collector);
225
+ await createSensorSet('outside', sensorLabels.outside);
148
226
 
149
227
  // Deltas zwischen Sensoren
150
228
  await adapter.setObjectNotExistsAsync('temperature.delta.collector_outside', {
151
229
  type: 'state',
152
230
  common: {
153
- name: 'Delta collector - air',
231
+ name: {
232
+ en: 'Delta collector - air',
233
+ de: 'Delta Kollektor - Luft',
234
+ },
235
+ desc: {
236
+ en: 'Temperature difference between collector and outside air',
237
+ de: 'Temperaturdifferenz zwischen Kollektor und Aussenluft',
238
+ },
154
239
  type: 'number',
155
240
  role: 'value.temperature',
156
241
  unit: '°C',
@@ -163,7 +248,14 @@ async function createTemperatureStates(adapter) {
163
248
  await adapter.setObjectNotExistsAsync('temperature.delta.surface_ground', {
164
249
  type: 'state',
165
250
  common: {
166
- name: 'Delta surface - ground',
251
+ name: {
252
+ en: 'Delta surface - ground',
253
+ de: 'Delta Oberflaeche - Grund',
254
+ },
255
+ desc: {
256
+ en: 'Temperature difference between pool surface and ground',
257
+ de: 'Temperaturdifferenz zwischen Pooloberflaeche und Grund',
258
+ },
167
259
  type: 'number',
168
260
  role: 'value.temperature',
169
261
  unit: '°C',
@@ -176,7 +268,14 @@ async function createTemperatureStates(adapter) {
176
268
  await adapter.setObjectNotExistsAsync('temperature.delta.flow_return', {
177
269
  type: 'state',
178
270
  common: {
179
- name: 'Delta flow - return',
271
+ name: {
272
+ en: 'Delta flow - return',
273
+ de: 'Delta Vorlauf - Ruecklauf',
274
+ },
275
+ desc: {
276
+ en: 'Temperature difference between flow and return',
277
+ de: 'Temperaturdifferenz zwischen Vorlauf und Ruecklauf',
278
+ },
180
279
  type: 'number',
181
280
  role: 'value.temperature',
182
281
  unit: '°C',
@@ -13,7 +13,10 @@ async function createTimeStates(adapter) {
13
13
  await adapter.setObjectNotExistsAsync('timecontrol', {
14
14
  type: 'channel',
15
15
  common: {
16
- name: 'Time control',
16
+ name: {
17
+ en: 'Time control',
18
+ de: 'Zeitsteuerung',
19
+ },
17
20
  },
18
21
  native: {},
19
22
  });
@@ -23,7 +26,14 @@ async function createTimeStates(adapter) {
23
26
  await adapter.setObjectNotExistsAsync(`timecontrol.${prefix}_active`, {
24
27
  type: 'state',
25
28
  common: {
26
- name: `Time window ${label} active`,
29
+ name: {
30
+ en: `Time window ${label} active`,
31
+ de: `Zeitfenster ${label} Aktiv`,
32
+ },
33
+ desc: {
34
+ en: `Enables or disables time window ${label}`,
35
+ de: `Aktiviert oder deaktiviert das Zeitfenster ${label}`,
36
+ },
27
37
  type: 'boolean',
28
38
  role: 'switch',
29
39
  read: true,
@@ -40,7 +50,14 @@ async function createTimeStates(adapter) {
40
50
  await adapter.setObjectNotExistsAsync(`timecontrol.${prefix}_start`, {
41
51
  type: 'state',
42
52
  common: {
43
- name: `Time window ${label} start (HH:MM)`,
53
+ name: {
54
+ en: `Time window ${label} start (HH:MM)`,
55
+ de: `Zeitfenster ${label} Start (HH:MM)`,
56
+ },
57
+ desc: {
58
+ en: `Start time of time window ${label} in HH:MM format`,
59
+ de: `Startzeit des Zeitfensters ${label} im Format HH:MM`,
60
+ },
44
61
  type: 'string',
45
62
  role: 'level',
46
63
  read: true,
@@ -57,7 +74,14 @@ async function createTimeStates(adapter) {
57
74
  await adapter.setObjectNotExistsAsync(`timecontrol.${prefix}_end`, {
58
75
  type: 'state',
59
76
  common: {
60
- name: `Time window ${label} end (HH:MM)`,
77
+ name: {
78
+ en: `Time window ${label} end (HH:MM)`,
79
+ de: `Zeitfenster ${label} Ende (HH:MM)`,
80
+ },
81
+ desc: {
82
+ en: `End time of time window ${label} in HH:MM format`,
83
+ de: `Endzeit des Zeitfensters ${label} im Format HH:MM`,
84
+ },
61
85
  type: 'string',
62
86
  role: 'level',
63
87
  read: true,
@@ -72,20 +96,27 @@ async function createTimeStates(adapter) {
72
96
 
73
97
  // Wochentage
74
98
  const days = [
75
- ['mon', 'Montag'],
76
- ['tue', 'Dienstag'],
77
- ['wed', 'Mittwoch'],
78
- ['thu', 'Donnerstag'],
79
- ['fri', 'Freitag'],
80
- ['sat', 'Samstag'],
81
- ['sun', 'Sonntag'],
99
+ ['mon', { en: 'Monday', de: 'Montag' }],
100
+ ['tue', { en: 'Tuesday', de: 'Dienstag' }],
101
+ ['wed', { en: 'Wednesday', de: 'Mittwoch' }],
102
+ ['thu', { en: 'Thursday', de: 'Donnerstag' }],
103
+ ['fri', { en: 'Friday', de: 'Freitag' }],
104
+ ['sat', { en: 'Saturday', de: 'Samstag' }],
105
+ ['sun', { en: 'Sunday', de: 'Sonntag' }],
82
106
  ];
83
107
 
84
108
  for (const [key, labelDay] of days) {
85
109
  await adapter.setObjectNotExistsAsync(`timecontrol.${prefix}_day_${key}`, {
86
110
  type: 'state',
87
111
  common: {
88
- name: `Time window ${label} ${labelDay}`,
112
+ name: {
113
+ en: `Time window ${label} ${labelDay.en}`,
114
+ de: `Zeitfenster ${label} ${labelDay.de}`,
115
+ },
116
+ desc: {
117
+ en: `Defines whether time window ${label} is active on ${labelDay.en}`,
118
+ de: `Legt fest, ob das Zeitfenster ${label} am ${labelDay.de} aktiv ist`,
119
+ },
89
120
  type: 'boolean',
90
121
  role: 'switch',
91
122
  read: true,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.poolcontrol",
3
- "version": "1.2.12",
3
+ "version": "1.2.13",
4
4
  "description": "Steuerung & Automatisierung für den Pool (Pumpe, Heizung, Ventile, Sensoren).",
5
5
  "author": "DasBo1975 <dasbo1975@outlook.de>",
6
6
  "homepage": "https://github.com/DasBo1975/ioBroker.poolcontrol",