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
@@ -15,7 +15,7 @@
15
15
  * @returns {Promise<void>}
16
16
  */
17
17
  async function createPhotovoltaicStates(adapter) {
18
- adapter.log.debug('[createPhotovoltaicStates] Initialisierung gestartet.');
18
+ adapter.log.debug('[createPhotovoltaicStates] Initialization started.');
19
19
 
20
20
  // --- Photovoltaik-Hauptordner ---
21
21
  await adapter.setObjectNotExistsAsync('photovoltaic', {
@@ -28,8 +28,11 @@ async function createPhotovoltaicStates(adapter) {
28
28
  const states = [
29
29
  {
30
30
  id: 'power_generated_w',
31
- name: 'PV-Erzeugungsleistung (W)',
32
- desc: 'Aktuell erzeugte Leistung der PV-Anlage in Watt',
31
+ name: { de: 'PV-Erzeugungsleistung (W)', en: 'PV generation power (W)' },
32
+ desc: {
33
+ de: 'Aktuell erzeugte Leistung der PV-Anlage in Watt',
34
+ en: 'Current generated power of the PV system in watts',
35
+ },
33
36
  type: 'number',
34
37
  role: 'value.power',
35
38
  unit: 'W',
@@ -39,8 +42,11 @@ async function createPhotovoltaicStates(adapter) {
39
42
  },
40
43
  {
41
44
  id: 'power_house_w',
42
- name: 'Hausverbrauch (W)',
43
- desc: 'Aktueller Stromverbrauch des Hauses in Watt',
45
+ name: { de: 'Hausverbrauch (W)', en: 'House consumption (W)' },
46
+ desc: {
47
+ de: 'Aktueller Stromverbrauch des Hauses in Watt',
48
+ en: 'Current power consumption of the house in watts',
49
+ },
44
50
  type: 'number',
45
51
  role: 'value.power',
46
52
  unit: 'W',
@@ -50,8 +56,11 @@ async function createPhotovoltaicStates(adapter) {
50
56
  },
51
57
  {
52
58
  id: 'power_surplus_w',
53
- name: 'PV-Überschussleistung (W)',
54
- desc: 'Berechneter Überschuss zwischen PV-Erzeugung und Hausverbrauch',
59
+ name: { de: 'PV-Überschussleistung (W)', en: 'PV surplus power (W)' },
60
+ desc: {
61
+ de: 'Berechneter Überschuss zwischen PV-Erzeugung und Hausverbrauch',
62
+ en: 'Calculated surplus between PV generation and house consumption',
63
+ },
55
64
  type: 'number',
56
65
  role: 'value.power',
57
66
  unit: 'W',
@@ -61,8 +70,11 @@ async function createPhotovoltaicStates(adapter) {
61
70
  },
62
71
  {
63
72
  id: 'surplus_active',
64
- name: 'PV-Überschuss aktiv',
65
- desc: 'Zeigt an, ob aktuell ein PV-Überschuss vorliegt (true/false)',
73
+ name: { de: 'PV-Überschuss aktiv', en: 'PV surplus active' },
74
+ desc: {
75
+ de: 'Zeigt an, ob aktuell ein PV-Überschuss vorliegt (true/false)',
76
+ en: 'Indicates whether a PV surplus is currently present (true/false)',
77
+ },
66
78
  type: 'boolean',
67
79
  role: 'indicator',
68
80
  read: true,
@@ -71,8 +83,11 @@ async function createPhotovoltaicStates(adapter) {
71
83
  },
72
84
  {
73
85
  id: 'afterrun_min',
74
- name: 'Nachlaufzeit (Minuten)',
75
- desc: 'Dauer, wie lange die Pumpe nach Ende des PV-Überschusses weiterläuft',
86
+ name: { de: 'Nachlaufzeit (Minuten)', en: 'After-run time (minutes)' },
87
+ desc: {
88
+ de: 'Dauer, wie lange die Pumpe nach Ende des PV-Überschusses weiterläuft',
89
+ en: 'Duration the pump continues to run after PV surplus ends',
90
+ },
76
91
  type: 'number',
77
92
  role: 'level',
78
93
  unit: 'min',
@@ -82,8 +97,14 @@ async function createPhotovoltaicStates(adapter) {
82
97
  },
83
98
  {
84
99
  id: 'ignore_on_circulation',
85
- name: 'PV ignorieren, wenn Umwälzmenge erreicht',
86
- desc: 'Wenn aktiviert, wird PV-Steuerung deaktiviert, sobald Tagesumwälzung erfüllt ist',
100
+ name: {
101
+ de: 'PV ignorieren, wenn Umwälzmenge erreicht',
102
+ en: 'Ignore PV when circulation target is reached',
103
+ },
104
+ desc: {
105
+ de: 'Wenn aktiviert, wird PV-Steuerung deaktiviert, sobald Tagesumwälzung erfüllt ist',
106
+ en: 'If enabled, PV control is disabled once daily circulation target is met',
107
+ },
87
108
  type: 'boolean',
88
109
  role: 'switch.enable',
89
110
  read: true,
@@ -92,8 +113,11 @@ async function createPhotovoltaicStates(adapter) {
92
113
  },
93
114
  {
94
115
  id: 'threshold_w',
95
- name: 'Schwellwert für PV-Überschuss (W)',
96
- desc: 'Watt-Schwelle, ab der ein Überschuss erkannt wird',
116
+ name: { de: 'Schwellwert für PV-Überschuss (W)', en: 'PV surplus threshold (W)' },
117
+ desc: {
118
+ de: 'Watt-Schwelle, ab der ein Überschuss erkannt wird',
119
+ en: 'Watt threshold at which a surplus is detected',
120
+ },
97
121
  type: 'number',
98
122
  role: 'value',
99
123
  unit: 'W',
@@ -103,8 +127,11 @@ async function createPhotovoltaicStates(adapter) {
103
127
  },
104
128
  {
105
129
  id: 'status_text',
106
- name: 'Statusmeldung (Text)',
107
- desc: 'Klartextstatus der PV-Erkennung (z. B. Überschuss aktiv)',
130
+ name: { de: 'Statusmeldung (Text)', en: 'Status message (text)' },
131
+ desc: {
132
+ de: 'Klartextstatus der PV-Erkennung (z. B. Überschuss aktiv)',
133
+ en: 'Plain text status of PV detection (e.g. surplus active)',
134
+ },
108
135
  type: 'string',
109
136
  role: 'text',
110
137
  read: true,
@@ -113,8 +140,11 @@ async function createPhotovoltaicStates(adapter) {
113
140
  },
114
141
  {
115
142
  id: 'last_update',
116
- name: 'Letzte Aktualisierung',
117
- desc: 'Zeitstempel der letzten Berechnung der PV-Werte',
143
+ name: { de: 'Letzte Aktualisierung', en: 'Last update' },
144
+ desc: {
145
+ de: 'Zeitstempel der letzten Berechnung der PV-Werte',
146
+ en: 'Timestamp of the last PV value calculation',
147
+ },
118
148
  type: 'string',
119
149
  role: 'date',
120
150
  read: true,
@@ -147,15 +177,13 @@ async function createPhotovoltaicStates(adapter) {
147
177
  const existing = await adapter.getStateAsync(id);
148
178
  if (existing === null || existing === undefined) {
149
179
  await adapter.setStateAsync(id, { val: s.def, ack: true });
150
- adapter.log.debug(
151
- `[createPhotovoltaicStates] Neuer State '${id}' initialisiert mit Default-Wert ${s.def}.`,
152
- );
180
+ adapter.log.debug(`[createPhotovoltaicStates] New state '${id}' initialized with default value ${s.def}.`);
153
181
  } else {
154
- adapter.log.debug(`[createPhotovoltaicStates] State '${id}' bereits vorhanden Wert bleibt erhalten.`);
182
+ adapter.log.debug(`[createPhotovoltaicStates] State '${id}' already exists - keeping existing value.`);
155
183
  }
156
184
  }
157
185
 
158
- adapter.log.info('[createPhotovoltaicStates] Initialisierung abgeschlossen.');
186
+ adapter.log.info('[createPhotovoltaicStates] Initialization completed.');
159
187
  }
160
188
 
161
189
  module.exports = { createPhotovoltaicStates };
@@ -49,7 +49,7 @@ async function createPumpSpeedStates(adapter) {
49
49
  await adapter.setObjectNotExistsAsync('pump.speed', {
50
50
  type: 'channel',
51
51
  common: {
52
- name: 'Pumpen-Leistungsempfehlung',
52
+ name: { de: 'Pumpen-Leistungsempfehlung', en: 'Pump power recommendation' },
53
53
  },
54
54
  native: {},
55
55
  });
@@ -79,7 +79,7 @@ async function createPumpSpeedStates(adapter) {
79
79
  await adapter.setObjectNotExistsAsync('pump.speed.state', {
80
80
  type: 'state',
81
81
  common: {
82
- name: 'Interner Leistungszustand (intern)',
82
+ name: { de: 'Interner Leistungszustand (intern)', en: 'Internal power state (internal)' },
83
83
  type: 'string',
84
84
  role: 'text',
85
85
  read: true,
@@ -107,7 +107,7 @@ async function createPumpSpeedStates(adapter) {
107
107
  await adapter.setObjectNotExistsAsync('pump.speed.mode', {
108
108
  type: 'state',
109
109
  common: {
110
- name: 'Empfohlener Pumpenmodus',
110
+ name: { de: 'Empfohlener Pumpenmodus', en: 'Recommended pump mode' },
111
111
  type: 'string',
112
112
  role: 'text',
113
113
  read: true,
@@ -136,7 +136,7 @@ async function createPumpSpeedStates(adapter) {
136
136
  await adapter.setObjectNotExistsAsync('pump.speed.percent', {
137
137
  type: 'state',
138
138
  common: {
139
- name: 'Empfohlene Pumpenleistung',
139
+ name: { de: 'Empfohlene Pumpenleistung', en: 'Recommended pump power' },
140
140
  type: 'number',
141
141
  role: 'value',
142
142
  unit: '%',
@@ -163,7 +163,7 @@ async function createPumpSpeedStates(adapter) {
163
163
  await adapter.setObjectNotExistsAsync('pump.speed.config', {
164
164
  type: 'channel',
165
165
  common: {
166
- name: 'Konfiguration',
166
+ name: { de: 'Konfiguration', en: 'Configuration' },
167
167
  },
168
168
  native: {},
169
169
  });
@@ -171,7 +171,7 @@ async function createPumpSpeedStates(adapter) {
171
171
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent', {
172
172
  type: 'channel',
173
173
  common: {
174
- name: 'Prozent-Mapping',
174
+ name: { de: 'Prozent-Mapping', en: 'Percent mapping' },
175
175
  },
176
176
  native: {},
177
177
  });
@@ -182,7 +182,7 @@ async function createPumpSpeedStates(adapter) {
182
182
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent.frost', {
183
183
  type: 'state',
184
184
  common: {
185
- name: 'Frostschutz (%)',
185
+ name: { de: 'Frostschutz (%)', en: 'Frost protection (%)' },
186
186
  type: 'number',
187
187
  role: 'value',
188
188
  unit: '%',
@@ -199,7 +199,7 @@ async function createPumpSpeedStates(adapter) {
199
199
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent.low', {
200
200
  type: 'state',
201
201
  common: {
202
- name: 'Niedrige Leistung (%)',
202
+ name: { de: 'Niedrige Leistung (%)', en: 'Low power (%)' },
203
203
  type: 'number',
204
204
  role: 'value',
205
205
  unit: '%',
@@ -216,7 +216,7 @@ async function createPumpSpeedStates(adapter) {
216
216
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent.normal', {
217
217
  type: 'state',
218
218
  common: {
219
- name: 'Normalbetrieb (%)',
219
+ name: { de: 'Normalbetrieb (%)', en: 'Normal operation (%)' },
220
220
  type: 'number',
221
221
  role: 'value',
222
222
  unit: '%',
@@ -233,7 +233,7 @@ async function createPumpSpeedStates(adapter) {
233
233
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent.high', {
234
234
  type: 'state',
235
235
  common: {
236
- name: 'Hohe Leistung (%)',
236
+ name: { de: 'Hohe Leistung (%)', en: 'High power (%)' },
237
237
  type: 'number',
238
238
  role: 'value',
239
239
  unit: '%',
@@ -250,7 +250,7 @@ async function createPumpSpeedStates(adapter) {
250
250
  await adapter.setObjectNotExistsAsync('pump.speed.config.percent.boost', {
251
251
  type: 'state',
252
252
  common: {
253
- name: 'Boost / Wartung (%)',
253
+ name: { de: 'Boost / Wartung (%)', en: 'Boost / maintenance (%)' },
254
254
  type: 'number',
255
255
  role: 'value',
256
256
  unit: '%',
@@ -17,7 +17,7 @@ async function createPumpStates(adapter) {
17
17
  await adapter.setObjectNotExistsAsync('pump', {
18
18
  type: 'channel',
19
19
  common: {
20
- name: 'Pumpe',
20
+ name: { de: 'Pumpe', en: 'Pump' },
21
21
  },
22
22
  native: {},
23
23
  });
@@ -26,7 +26,7 @@ async function createPumpStates(adapter) {
26
26
  await adapter.setObjectNotExistsAsync('pump.pump_max_watt', {
27
27
  type: 'state',
28
28
  common: {
29
- name: 'Max. Pumpenleistung',
29
+ name: { de: 'Max. Pumpenleistung', en: 'Max. pump power' },
30
30
  type: 'number',
31
31
  role: 'value.power',
32
32
  unit: 'W',
@@ -44,7 +44,7 @@ async function createPumpStates(adapter) {
44
44
  await adapter.setObjectNotExistsAsync('pump.pump_power_lph', {
45
45
  type: 'state',
46
46
  common: {
47
- name: 'Pumpenleistung (l/h)',
47
+ name: { de: 'Pumpenleistung (l/h)', en: 'Pump capacity (l/h)' },
48
48
  type: 'number',
49
49
  role: 'value.flow',
50
50
  unit: 'l/h',
@@ -62,7 +62,7 @@ async function createPumpStates(adapter) {
62
62
  await adapter.setObjectNotExistsAsync('pump.frost_protection_active', {
63
63
  type: 'state',
64
64
  common: {
65
- name: 'Frostschutz aktiv',
65
+ name: { de: 'Frostschutz aktiv', en: 'Frost protection active' },
66
66
  type: 'boolean',
67
67
  role: 'switch',
68
68
  read: true,
@@ -79,7 +79,7 @@ async function createPumpStates(adapter) {
79
79
  await adapter.setObjectNotExistsAsync('pump.frost_protection_temp', {
80
80
  type: 'state',
81
81
  common: {
82
- name: 'Frostschutz-Temperatur',
82
+ name: { de: 'Frostschutz-Temperatur', en: 'Frost protection temperature' },
83
83
  type: 'number',
84
84
  role: 'value.temperature',
85
85
  unit: '°C',
@@ -97,7 +97,7 @@ async function createPumpStates(adapter) {
97
97
  await adapter.setObjectNotExistsAsync('pump.pump_switch', {
98
98
  type: 'state',
99
99
  common: {
100
- name: 'Pumpe EIN/AUS',
100
+ name: { de: 'Pumpe EIN/AUS', en: 'Pump ON/OFF' },
101
101
  type: 'boolean',
102
102
  role: 'switch',
103
103
  read: true,
@@ -111,7 +111,7 @@ async function createPumpStates(adapter) {
111
111
  await adapter.setObjectNotExistsAsync('pump.mode', {
112
112
  type: 'state',
113
113
  common: {
114
- name: 'Pumpenmodus',
114
+ name: { de: 'Pumpenmodus', en: 'Pump mode' },
115
115
  type: 'string',
116
116
  role: 'state',
117
117
  read: true,
@@ -138,7 +138,10 @@ async function createPumpStates(adapter) {
138
138
  await adapter.setObjectNotExistsAsync('pump.manual_safety_enabled', {
139
139
  type: 'state',
140
140
  common: {
141
- name: "Sicherheitsfunktionen im Modus 'Manuell' aktiv",
141
+ name: {
142
+ de: "Sicherheitsfunktionen im Modus 'Manuell' aktiv",
143
+ en: "Safety functions enabled in 'Manual' mode",
144
+ },
142
145
  type: 'boolean',
143
146
  role: 'switch',
144
147
  read: true,
@@ -161,7 +164,7 @@ async function createPumpStates(adapter) {
161
164
  await adapter.setObjectNotExistsAsync('pump.status', {
162
165
  type: 'state',
163
166
  common: {
164
- name: 'Pumpenstatus',
167
+ name: { de: 'Pumpenstatus', en: 'Pump status' },
165
168
  type: 'string',
166
169
  role: 'text',
167
170
  read: true,
@@ -175,8 +178,11 @@ async function createPumpStates(adapter) {
175
178
  await adapter.setObjectNotExistsAsync('pump.active_helper', {
176
179
  type: 'state',
177
180
  common: {
178
- name: 'Aktiver Helfer (Vorrangsteuerung)',
179
- desc: 'Zeigt an, welcher Helper aktuell die Vorrangsteuerung der Pumpe übernommen hat (z. B. Control, Solar, Frost, Zeit, Heizung …)',
181
+ name: { de: 'Aktiver Helfer (Vorrangsteuerung)', en: 'Active helper (priority control)' },
182
+ desc: {
183
+ de: 'Zeigt an, welcher Helper aktuell die Vorrangsteuerung der Pumpe übernommen hat (z. B. Control, Solar, Frost, Zeit, Heizung …)',
184
+ en: 'Shows which helper currently has priority control of the pump (e.g. Control, Solar, Frost, Time, Heating ...)',
185
+ },
180
186
  type: 'string',
181
187
  role: 'text',
182
188
  read: true,
@@ -194,7 +200,7 @@ async function createPumpStates(adapter) {
194
200
  await adapter.setObjectNotExistsAsync('pump.error', {
195
201
  type: 'state',
196
202
  common: {
197
- name: 'Pumpenfehler',
203
+ name: { de: 'Pumpenfehler', en: 'Pump error' },
198
204
  type: 'boolean',
199
205
  role: 'indicator.error',
200
206
  read: true,
@@ -208,7 +214,7 @@ async function createPumpStates(adapter) {
208
214
  await adapter.setObjectNotExistsAsync('pump.current_power', {
209
215
  type: 'state',
210
216
  common: {
211
- name: 'Aktuelle Leistung der Pumpe',
217
+ name: { de: 'Aktuelle Leistung der Pumpe', en: 'Current pump power' },
212
218
  type: 'number',
213
219
  role: 'value.power',
214
220
  unit: 'W',
@@ -222,8 +228,11 @@ async function createPumpStates(adapter) {
222
228
  await adapter.setObjectNotExistsAsync('pump.reason', {
223
229
  type: 'state',
224
230
  common: {
225
- name: 'Grund für aktuellen Pumpenstatus',
226
- desc: 'Wird intern verwendet, um den Grund des aktuellen Pumpenstatus zu speichern (z. B. Rückspülen, Wartung, Nachpumpen)',
231
+ name: { de: 'Grund für aktuellen Pumpenstatus', en: 'Reason for current pump status' },
232
+ desc: {
233
+ de: 'Wird intern verwendet, um den Grund des aktuellen Pumpenstatus zu speichern (z. B. Rückspülen, Wartung, Nachpumpen)',
234
+ en: 'Used internally to store the reason for the current pump status (e.g. backwash, maintenance, additional pumping)',
235
+ },
227
236
  type: 'string',
228
237
  role: 'text',
229
238
  read: true,
@@ -33,7 +33,7 @@ async function createPumpStates2(adapter) {
33
33
  await adapter.setObjectNotExistsAsync('pump.live', {
34
34
  type: 'channel',
35
35
  common: {
36
- name: 'Pumpen-Livewerte (aktuelle Betriebsdaten)',
36
+ name: { de: 'Pumpen-Livewerte (aktuelle Betriebsdaten)', en: 'Pump live values (current operating data)' },
37
37
  },
38
38
  native: {},
39
39
  });
@@ -44,8 +44,11 @@ async function createPumpStates2(adapter) {
44
44
  await adapter.setObjectNotExistsAsync('pump.live.current_power_w', {
45
45
  type: 'state',
46
46
  common: {
47
- name: 'Aktuelle elektrische Leistung',
48
- desc: 'Momentane Leistungsaufnahme der Pumpe (Watt)',
47
+ name: { de: 'Aktuelle elektrische Leistung', en: 'Current electrical power' },
48
+ desc: {
49
+ de: 'Momentane Leistungsaufnahme der Pumpe (Watt)',
50
+ en: 'Current power consumption of the pump (watts)',
51
+ },
49
52
  type: 'number',
50
53
  role: 'value.power',
51
54
  unit: 'W',
@@ -63,8 +66,11 @@ async function createPumpStates2(adapter) {
63
66
  await adapter.setObjectNotExistsAsync('pump.live.flow_current_lh', {
64
67
  type: 'state',
65
68
  common: {
66
- name: 'Aktueller reeller Durchfluss',
67
- desc: 'Berechnete Umwälzleistung basierend auf aktueller Leistung',
69
+ name: { de: 'Aktueller reeller Durchfluss', en: 'Current actual flow' },
70
+ desc: {
71
+ de: 'Berechnete Umwälzleistung basierend auf aktueller Leistung',
72
+ en: 'Calculated circulation rate based on current power',
73
+ },
68
74
  type: 'number',
69
75
  role: 'value.flow',
70
76
  unit: 'l/h',
@@ -82,8 +88,11 @@ async function createPumpStates2(adapter) {
82
88
  await adapter.setObjectNotExistsAsync('pump.live.flow_percent', {
83
89
  type: 'state',
84
90
  common: {
85
- name: 'Aktuelle Pumpenauslastung (%)',
86
- desc: 'Aktuelle Pumpenleistung in Prozent der maximalen Leistung',
91
+ name: { de: 'Aktuelle Pumpenauslastung (%)', en: 'Current pump load (%)' },
92
+ desc: {
93
+ de: 'Aktuelle Pumpenleistung in Prozent der maximalen Leistung',
94
+ en: 'Current pump power as a percentage of the maximum power',
95
+ },
87
96
  type: 'number',
88
97
  role: 'value.percent',
89
98
  unit: '%',
@@ -101,8 +110,11 @@ async function createPumpStates2(adapter) {
101
110
  await adapter.setObjectNotExistsAsync('pump.live.last_flow_lh', {
102
111
  type: 'state',
103
112
  common: {
104
- name: 'Letzter bekannter Durchfluss',
105
- desc: 'Speichert den letzten berechneten Durchflusswert vor Pumpenstopp',
113
+ name: { de: 'Letzter bekannter Durchfluss', en: 'Last known flow' },
114
+ desc: {
115
+ de: 'Speichert den letzten berechneten Durchflusswert vor Pumpenstopp',
116
+ en: 'Stores the last calculated flow value before the pump stops',
117
+ },
106
118
  type: 'number',
107
119
  role: 'value.flow',
108
120
  unit: 'l/h',
@@ -117,7 +129,7 @@ async function createPumpStates2(adapter) {
117
129
  // ------------------------------------------------------
118
130
  // Abschluss-Logeintrag
119
131
  // ------------------------------------------------------
120
- adapter.log.debug('[pumpStates2] Live-State-Definitionen erstellt oder geprüft.');
132
+ adapter.log.debug('[pumpStates2] Live state definitions created or verified.');
121
133
  }
122
134
 
123
135
  module.exports = {
@@ -27,7 +27,10 @@ async function createPumpStates3(adapter) {
27
27
  await adapter.setObjectNotExistsAsync('pump.learning', {
28
28
  type: 'channel',
29
29
  common: {
30
- name: 'Pumpen-Lernwerte (Analyse & Normalbereich)',
30
+ name: {
31
+ de: 'Pumpen-Lernwerte (Analyse & Normalbereich)',
32
+ en: 'Pump learning values (analysis & normal range)',
33
+ },
31
34
  },
32
35
  native: {},
33
36
  });
@@ -38,8 +41,11 @@ async function createPumpStates3(adapter) {
38
41
  await adapter.setObjectNotExistsAsync('pump.learning.learned_avg_power_w', {
39
42
  type: 'state',
40
43
  common: {
41
- name: 'Erlernter Durchschnitt der Leistungsaufnahme',
42
- desc: 'Durchschnittliche Leistungsaufnahme der Pumpe über alle Lernzyklen (W)',
44
+ name: { de: 'Erlernter Durchschnitt der Leistungsaufnahme', en: 'Learned average power consumption' },
45
+ desc: {
46
+ de: 'Durchschnittliche Leistungsaufnahme der Pumpe über alle Lernzyklen (W)',
47
+ en: 'Average pump power consumption across all learning cycles (W)',
48
+ },
43
49
  type: 'number',
44
50
  role: 'value.power',
45
51
  unit: 'W',
@@ -60,8 +66,11 @@ async function createPumpStates3(adapter) {
60
66
  await adapter.setObjectNotExistsAsync('pump.learning.learned_avg_flow_lh', {
61
67
  type: 'state',
62
68
  common: {
63
- name: 'Erlernter Durchschnitt des Durchflusses',
64
- desc: 'Durchschnittlicher reeller Durchfluss über alle Lernzyklen (L/h)',
69
+ name: { de: 'Erlernter Durchschnitt des Durchflusses', en: 'Learned average flow' },
70
+ desc: {
71
+ de: 'Durchschnittlicher reeller Durchfluss über alle Lernzyklen (L/h)',
72
+ en: 'Average actual flow across all learning cycles (L/h)',
73
+ },
65
74
  type: 'number',
66
75
  role: 'value.flow',
67
76
  unit: 'l/h',
@@ -82,8 +91,11 @@ async function createPumpStates3(adapter) {
82
91
  await adapter.setObjectNotExistsAsync('pump.learning.normal_range_power_low', {
83
92
  type: 'state',
84
93
  common: {
85
- name: 'Leistungs-Normalbereich (untere Grenze)',
86
- desc: 'Untergrenze des normalen Leistungsbereichs (W)',
94
+ name: { de: 'Leistungs-Normalbereich (untere Grenze)', en: 'Power normal range (lower limit)' },
95
+ desc: {
96
+ de: 'Untergrenze des normalen Leistungsbereichs (W)',
97
+ en: 'Lower limit of the normal power range (W)',
98
+ },
87
99
  type: 'number',
88
100
  role: 'value.min',
89
101
  unit: 'W',
@@ -101,8 +113,11 @@ async function createPumpStates3(adapter) {
101
113
  await adapter.setObjectNotExistsAsync('pump.learning.normal_range_power_high', {
102
114
  type: 'state',
103
115
  common: {
104
- name: 'Leistungs-Normalbereich (obere Grenze)',
105
- desc: 'Obergrenze des normalen Leistungsbereichs (W)',
116
+ name: { de: 'Leistungs-Normalbereich (obere Grenze)', en: 'Power normal range (upper limit)' },
117
+ desc: {
118
+ de: 'Obergrenze des normalen Leistungsbereichs (W)',
119
+ en: 'Upper limit of the normal power range (W)',
120
+ },
106
121
  type: 'number',
107
122
  role: 'value.max',
108
123
  unit: 'W',
@@ -123,8 +138,11 @@ async function createPumpStates3(adapter) {
123
138
  await adapter.setObjectNotExistsAsync('pump.learning.normal_range_flow_low', {
124
139
  type: 'state',
125
140
  common: {
126
- name: 'Durchfluss-Normalbereich (untere Grenze)',
127
- desc: 'Untergrenze des normalen Durchflussbereichs (L/h)',
141
+ name: { de: 'Durchfluss-Normalbereich (untere Grenze)', en: 'Flow normal range (lower limit)' },
142
+ desc: {
143
+ de: 'Untergrenze des normalen Durchflussbereichs (L/h)',
144
+ en: 'Lower limit of the normal flow range (L/h)',
145
+ },
128
146
  type: 'number',
129
147
  role: 'value.min',
130
148
  unit: 'l/h',
@@ -142,8 +160,11 @@ async function createPumpStates3(adapter) {
142
160
  await adapter.setObjectNotExistsAsync('pump.learning.normal_range_flow_high', {
143
161
  type: 'state',
144
162
  common: {
145
- name: 'Durchfluss-Normalbereich (obere Grenze)',
146
- desc: 'Obergrenze des normalen Durchflussbereichs (L/h)',
163
+ name: { de: 'Durchfluss-Normalbereich (obere Grenze)', en: 'Flow normal range (upper limit)' },
164
+ desc: {
165
+ de: 'Obergrenze des normalen Durchflussbereichs (L/h)',
166
+ en: 'Upper limit of the normal flow range (L/h)',
167
+ },
147
168
  type: 'number',
148
169
  role: 'value.max',
149
170
  unit: 'l/h',
@@ -164,8 +185,11 @@ async function createPumpStates3(adapter) {
164
185
  await adapter.setObjectNotExistsAsync('pump.learning.deviation_power_percent', {
165
186
  type: 'state',
166
187
  common: {
167
- name: 'Leistungsabweichung (%)',
168
- desc: 'Aktuelle Abweichung der Leistungsaufnahme vom Durchschnittswert',
188
+ name: { de: 'Leistungsabweichung (%)', en: 'Power deviation (%)' },
189
+ desc: {
190
+ de: 'Aktuelle Abweichung der Leistungsaufnahme vom Durchschnittswert',
191
+ en: 'Current deviation of power consumption from the average value',
192
+ },
169
193
  type: 'number',
170
194
  role: 'value.percent',
171
195
  unit: '%',
@@ -183,8 +207,11 @@ async function createPumpStates3(adapter) {
183
207
  await adapter.setObjectNotExistsAsync('pump.learning.deviation_flow_percent', {
184
208
  type: 'state',
185
209
  common: {
186
- name: 'Durchflussabweichung (%)',
187
- desc: 'Aktuelle Abweichung des Durchflusses vom Durchschnittswert',
210
+ name: { de: 'Durchflussabweichung (%)', en: 'Flow deviation (%)' },
211
+ desc: {
212
+ de: 'Aktuelle Abweichung des Durchflusses vom Durchschnittswert',
213
+ en: 'Current deviation of flow from the average value',
214
+ },
188
215
  type: 'number',
189
216
  role: 'value.percent',
190
217
  unit: '%',
@@ -205,8 +232,14 @@ async function createPumpStates3(adapter) {
205
232
  await adapter.setObjectNotExistsAsync('pump.learning.tolerance_percent', {
206
233
  type: 'state',
207
234
  common: {
208
- name: 'Toleranzbereich für Normalbereichserkennung (%)',
209
- desc: 'Abweichung, die noch als normal gilt, bevor eine Warnung ausgelöst wird',
235
+ name: {
236
+ de: 'Toleranzbereich für Normalbereichserkennung (%)',
237
+ en: 'Tolerance for normal range detection (%)',
238
+ },
239
+ desc: {
240
+ de: 'Abweichung, die noch als normal gilt, bevor eine Warnung ausgelöst wird',
241
+ en: 'Deviation still considered normal before a warning is triggered',
242
+ },
210
243
  type: 'number',
211
244
  role: 'value.percent',
212
245
  unit: '%',
@@ -227,8 +260,11 @@ async function createPumpStates3(adapter) {
227
260
  await adapter.setObjectNotExistsAsync('pump.learning.status_text', {
228
261
  type: 'state',
229
262
  common: {
230
- name: 'Statusbewertung',
231
- desc: 'Textbasierte Bewertung des aktuellen Pumpenverhaltens (z. B. "im Normalbereich", "auffällig niedrig")',
263
+ name: { de: 'Statusbewertung', en: 'Status assessment' },
264
+ desc: {
265
+ de: 'Textbasierte Bewertung des aktuellen Pumpenverhaltens (z. B. "im Normalbereich", "auffällig niedrig")',
266
+ en: 'Text-based assessment of the current pump behavior (e.g. "within normal range", "noticeably low")',
267
+ },
232
268
  type: 'string',
233
269
  role: 'text',
234
270
  read: true,
@@ -248,8 +284,11 @@ async function createPumpStates3(adapter) {
248
284
  await adapter.setObjectNotExistsAsync('pump.learning.learning_cycles_total', {
249
285
  type: 'state',
250
286
  common: {
251
- name: 'Gesamtzahl der Lernzyklen',
252
- desc: 'Anzahl der Pumpenläufe, die in die Lernberechnung eingeflossen sind',
287
+ name: { de: 'Gesamtzahl der Lernzyklen', en: 'Total number of learning cycles' },
288
+ desc: {
289
+ de: 'Anzahl der Pumpenläufe, die in die Lernberechnung eingeflossen sind',
290
+ en: 'Number of pump runs included in the learning calculation',
291
+ },
253
292
  type: 'number',
254
293
  role: 'value',
255
294
  read: true,
@@ -266,7 +305,7 @@ async function createPumpStates3(adapter) {
266
305
  // ------------------------------------------------------
267
306
  // Log-Eintrag
268
307
  // ------------------------------------------------------
269
- adapter.log.debug('[pumpStates3] Lern-States erstellt oder geprüft.');
308
+ adapter.log.debug('[pumpStates3] Learning states created or verified.');
270
309
  }
271
310
 
272
311
  module.exports = {