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.
- package/README.md +285 -292
- package/admin/i18n/de/translations.json +158 -4
- package/admin/i18n/en/translations.json +161 -3
- package/admin/i18n/es/translations.json +158 -4
- package/admin/i18n/fr/translations.json +158 -4
- package/admin/i18n/it/translations.json +158 -4
- package/admin/i18n/nl/translations.json +158 -4
- package/admin/i18n/pl/translations.json +158 -4
- package/admin/i18n/pt/translations.json +158 -4
- package/admin/i18n/ru/translations.json +158 -4
- package/admin/i18n/uk/translations.json +158 -4
- package/admin/i18n/zh-cn/translations.json +158 -4
- package/admin/jsonConfig.json +180 -602
- package/io-package.json +107 -100
- package/lib/helpers/actuatorsHelper.js +6 -8
- package/lib/helpers/aiChemistryHelpHelper.js +7 -7
- package/lib/helpers/aiForecastHelper.js +21 -21
- package/lib/helpers/aiHelper.js +53 -63
- package/lib/helpers/consumptionHelper.js +23 -25
- package/lib/helpers/controlHelper.js +24 -24
- package/lib/helpers/controlHelper2.js +17 -17
- package/lib/helpers/debugLogHelper.js +12 -14
- package/lib/helpers/frostHelper.js +6 -6
- package/lib/helpers/heatHelper.js +14 -14
- package/lib/helpers/infoHelper.js +2 -2
- package/lib/helpers/migrationHelper.js +16 -16
- package/lib/helpers/photovoltaicHelper.js +28 -28
- package/lib/helpers/pumpHelper.js +16 -18
- package/lib/helpers/pumpHelper2.js +8 -10
- package/lib/helpers/pumpHelper3.js +9 -9
- package/lib/helpers/pumpHelper4.js +9 -9
- package/lib/helpers/pumpSpeedHelper.js +6 -6
- package/lib/helpers/runtimeHelper.js +14 -14
- package/lib/helpers/solarHelper.js +9 -9
- package/lib/helpers/speechHelper.js +13 -15
- package/lib/helpers/speechTextHelper.js +13 -13
- package/lib/helpers/statisticsHelper.js +9 -9
- package/lib/helpers/statisticsHelperMonth.js +15 -15
- package/lib/helpers/statisticsHelperWeek.js +11 -11
- package/lib/helpers/statusHelper.js +9 -9
- package/lib/helpers/temperatureHelper.js +9 -11
- package/lib/helpers/timeHelper.js +7 -9
- package/lib/stateDefinitions/actuatorsStates.js +19 -19
- package/lib/stateDefinitions/aiChemistryHelpStates.js +59 -28
- package/lib/stateDefinitions/aiStates.js +119 -31
- package/lib/stateDefinitions/consumptionStates.js +20 -14
- package/lib/stateDefinitions/controlStates.js +90 -37
- package/lib/stateDefinitions/debugLogStates.js +28 -13
- package/lib/stateDefinitions/generalStates.js +4 -4
- package/lib/stateDefinitions/heatStates.js +21 -21
- package/lib/stateDefinitions/infoStates.js +11 -5
- package/lib/stateDefinitions/photovoltaicStates.js +52 -24
- package/lib/stateDefinitions/pumpSpeedStates.js +11 -11
- package/lib/stateDefinitions/pumpStates.js +24 -15
- package/lib/stateDefinitions/pumpStates2.js +22 -10
- package/lib/stateDefinitions/pumpStates3.js +63 -24
- package/lib/stateDefinitions/pumpStates4.js +62 -32
- package/lib/stateDefinitions/runtimeStates.js +10 -10
- package/lib/stateDefinitions/solarStates.js +9 -9
- package/lib/stateDefinitions/speechStates.js +24 -21
- package/lib/stateDefinitions/statisticsStates.js +107 -29
- package/lib/stateDefinitions/statusStates.js +14 -12
- package/lib/stateDefinitions/temperatureStates.js +18 -12
- package/lib/stateDefinitions/timeStates.js +5 -5
- package/main.js +38 -0
- 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]
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
86
|
-
|
|
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:
|
|
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:
|
|
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:
|
|
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}'
|
|
182
|
+
adapter.log.debug(`[createPhotovoltaicStates] State '${id}' already exists - keeping existing value.`);
|
|
155
183
|
}
|
|
156
184
|
}
|
|
157
185
|
|
|
158
|
-
adapter.log.info('[createPhotovoltaicStates]
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
209
|
-
|
|
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:
|
|
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:
|
|
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]
|
|
308
|
+
adapter.log.debug('[pumpStates3] Learning states created or verified.');
|
|
270
309
|
}
|
|
271
310
|
|
|
272
311
|
module.exports = {
|