iobroker.poolcontrol 1.3.10 → 1.3.12
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 +69 -14
- package/io-package.json +27 -27
- package/lib/helpers/chemistryPhHelper.js +703 -0
- package/lib/helpers/chemistryTdsHelper.js +830 -0
- package/lib/helpers/photovoltaicInsightsHelper.js +97 -7
- package/lib/helpers/solarExtendedHelper.js +14 -6
- package/lib/helpers/solarInsightsHelper.js +21 -5
- package/lib/i18n/de.json +63 -1
- package/lib/i18n/en.json +63 -2
- package/lib/i18n/es.json +63 -1
- package/lib/i18n/fr.json +63 -1
- package/lib/i18n/it.json +63 -1
- package/lib/i18n/nl.json +63 -1
- package/lib/i18n/pl.json +63 -1
- package/lib/i18n/pt.json +63 -1
- package/lib/i18n/ru.json +63 -1
- package/lib/i18n/uk.json +63 -1
- package/lib/i18n/zh-cn.json +63 -1
- package/lib/stateDefinitions/chemistryPhStates.js +701 -0
- package/lib/stateDefinitions/chemistryTdsStates.js +889 -0
- package/main.js +28 -0
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ const { I18n } = require('@iobroker/adapter-core');
|
|
|
5
5
|
const photovoltaicInsightsHelper = {
|
|
6
6
|
adapter: null,
|
|
7
7
|
checkTimer: null,
|
|
8
|
+
resetTimer: null,
|
|
8
9
|
lastResultTimestamp: null,
|
|
9
10
|
lastPvRuntimeActive: false,
|
|
10
11
|
|
|
@@ -12,6 +13,7 @@ const photovoltaicInsightsHelper = {
|
|
|
12
13
|
this.adapter = adapter;
|
|
13
14
|
|
|
14
15
|
void this._subscribeStates();
|
|
16
|
+
this._scheduleDailyReset();
|
|
15
17
|
this._scheduleCheck(0);
|
|
16
18
|
|
|
17
19
|
this.adapter.log.debug(
|
|
@@ -31,6 +33,79 @@ const photovoltaicInsightsHelper = {
|
|
|
31
33
|
this._scheduleCheck(200);
|
|
32
34
|
},
|
|
33
35
|
|
|
36
|
+
_scheduleDailyReset() {
|
|
37
|
+
if (this.resetTimer) {
|
|
38
|
+
this.adapter.clearTimeout(this.resetTimer);
|
|
39
|
+
this.resetTimer = null;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
const now = new Date();
|
|
43
|
+
const next = new Date(now);
|
|
44
|
+
next.setDate(now.getDate() + 1);
|
|
45
|
+
next.setHours(0, 0, 5, 0);
|
|
46
|
+
|
|
47
|
+
const delay = Math.max(1000, next.getTime() - now.getTime());
|
|
48
|
+
|
|
49
|
+
this.resetTimer = this.adapter.setTimeout(async () => {
|
|
50
|
+
try {
|
|
51
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.results.active_today', {
|
|
52
|
+
val: false,
|
|
53
|
+
ack: true,
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.results.runtime_today_min', {
|
|
57
|
+
val: 0,
|
|
58
|
+
ack: true,
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
await this.adapter.setStateChangedAsync(
|
|
62
|
+
'analytics.insights.photovoltaic.results.energy_used_today_kwh',
|
|
63
|
+
{
|
|
64
|
+
val: 0,
|
|
65
|
+
ack: true,
|
|
66
|
+
},
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.results.savings_today_eur', {
|
|
70
|
+
val: 0,
|
|
71
|
+
ack: true,
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.results.starts_today', {
|
|
75
|
+
val: 0,
|
|
76
|
+
ack: true,
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
this.lastResultTimestamp = null;
|
|
80
|
+
this.lastPvRuntimeActive = false;
|
|
81
|
+
|
|
82
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.debug.last_update', {
|
|
83
|
+
val: new Date().toISOString(),
|
|
84
|
+
ack: true,
|
|
85
|
+
});
|
|
86
|
+
|
|
87
|
+
await this.adapter.setStateChangedAsync(
|
|
88
|
+
'analytics.insights.photovoltaic.debug.last_recalculation_reason',
|
|
89
|
+
{
|
|
90
|
+
val: I18n.translate('photovoltaic_insights_debug_reason_daily_reset'),
|
|
91
|
+
ack: true,
|
|
92
|
+
},
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
await this.adapter.setStateChangedAsync('analytics.insights.photovoltaic.debug.debug_text', {
|
|
96
|
+
val: I18n.translate('photovoltaic_insights_debug_text_daily_reset'),
|
|
97
|
+
ack: true,
|
|
98
|
+
});
|
|
99
|
+
|
|
100
|
+
this.adapter.log.debug('[photovoltaicInsightsHelper] Daily reset executed');
|
|
101
|
+
} catch (err) {
|
|
102
|
+
this.adapter.log.warn(`[photovoltaicInsightsHelper] Daily reset failed: ${err.message}`);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
this._scheduleDailyReset();
|
|
106
|
+
}, delay);
|
|
107
|
+
},
|
|
108
|
+
|
|
34
109
|
_scheduleCheck(delayMs = 0) {
|
|
35
110
|
if (this.checkTimer) {
|
|
36
111
|
this.adapter.clearTimeout(this.checkTimer);
|
|
@@ -142,26 +217,36 @@ const photovoltaicInsightsHelper = {
|
|
|
142
217
|
|
|
143
218
|
if (pvRuntimeActive && !this.lastPvRuntimeActive) {
|
|
144
219
|
startsToday += 1;
|
|
145
|
-
this.lastResultTimestamp = now;
|
|
146
220
|
}
|
|
147
221
|
|
|
148
|
-
if (pvRuntimeActive && this.lastResultTimestamp
|
|
222
|
+
if (pvRuntimeActive && this.lastResultTimestamp) {
|
|
149
223
|
const deltaHours = (now - this.lastResultTimestamp) / 3600000;
|
|
150
224
|
|
|
151
225
|
if (deltaHours > 0 && deltaHours <= 0.5) {
|
|
152
|
-
const energyDeltaKwh = (pumpPowerW * deltaHours) / 1000;
|
|
153
|
-
|
|
154
226
|
runtimeTodayMin = Number((runtimeTodayMin + deltaHours * 60).toFixed(2));
|
|
155
|
-
energyUsedTodayKwh = Number((energyUsedTodayKwh + energyDeltaKwh).toFixed(4));
|
|
156
227
|
|
|
157
|
-
if (Number.isFinite(
|
|
158
|
-
|
|
228
|
+
if (Number.isFinite(pumpPowerW) && pumpPowerW > 0) {
|
|
229
|
+
const energyDeltaKwh = (pumpPowerW * deltaHours) / 1000;
|
|
230
|
+
|
|
231
|
+
energyUsedTodayKwh = Number((energyUsedTodayKwh + energyDeltaKwh).toFixed(4));
|
|
232
|
+
|
|
233
|
+
if (Number.isFinite(electricityPriceEurKwh) && electricityPriceEurKwh > 0) {
|
|
234
|
+
savingsTodayEur = Number(
|
|
235
|
+
(savingsTodayEur + energyDeltaKwh * electricityPriceEurKwh).toFixed(4),
|
|
236
|
+
);
|
|
237
|
+
}
|
|
159
238
|
}
|
|
160
239
|
}
|
|
161
240
|
}
|
|
162
241
|
|
|
163
242
|
if (pvRuntimeActive) {
|
|
164
243
|
this.lastResultTimestamp = now;
|
|
244
|
+
|
|
245
|
+
// FIX:
|
|
246
|
+
// Während echter PV-Überschusslaufzeit regelmäßig weiterrechnen,
|
|
247
|
+
// auch wenn keine neuen State-Events eintreffen.
|
|
248
|
+
// Nachlauf ohne PV-Überschuss wird dadurch bewusst nicht gezählt.
|
|
249
|
+
this._scheduleCheck(60 * 1000);
|
|
165
250
|
} else {
|
|
166
251
|
this.lastResultTimestamp = null;
|
|
167
252
|
}
|
|
@@ -300,6 +385,11 @@ const photovoltaicInsightsHelper = {
|
|
|
300
385
|
this.adapter.clearTimeout(this.checkTimer);
|
|
301
386
|
this.checkTimer = null;
|
|
302
387
|
}
|
|
388
|
+
|
|
389
|
+
if (this.resetTimer) {
|
|
390
|
+
this.adapter.clearTimeout(this.resetTimer);
|
|
391
|
+
this.resetTimer = null;
|
|
392
|
+
}
|
|
303
393
|
},
|
|
304
394
|
};
|
|
305
395
|
|
|
@@ -222,12 +222,20 @@ const solarExtendedHelper = {
|
|
|
222
222
|
}
|
|
223
223
|
|
|
224
224
|
const speechSolarActive = requestActive && !blocked;
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
225
|
+
|
|
226
|
+
// FIX:
|
|
227
|
+
// speech.solar_active darf vom solarExtendedHelper nur im Extended-Modus beschrieben werden.
|
|
228
|
+
// Im Standard-Modus ist der normale solarHelper zuständig, sonst überschreibt Extended
|
|
229
|
+
// dessen Solar-Sprachstatus minütlich wieder auf false.
|
|
230
|
+
if (isExtendedMode) {
|
|
231
|
+
const oldSpeechSolarActive = (await this.adapter.getStateAsync('speech.solar_active'))?.val;
|
|
232
|
+
|
|
233
|
+
if (oldSpeechSolarActive !== speechSolarActive) {
|
|
234
|
+
await this.adapter.setStateChangedAsync('speech.solar_active', {
|
|
235
|
+
val: speechSolarActive,
|
|
236
|
+
ack: true,
|
|
237
|
+
});
|
|
238
|
+
}
|
|
231
239
|
}
|
|
232
240
|
|
|
233
241
|
// FIX:
|
|
@@ -229,6 +229,8 @@ const solarInsightsHelper = {
|
|
|
229
229
|
const collectorTemp = await this._readNumber('temperature.collector.current');
|
|
230
230
|
const surfaceTemp = await this._readNumber('temperature.surface.current');
|
|
231
231
|
const groundTemp = await this._readNumber('temperature.ground.current');
|
|
232
|
+
const flowTemp = await this._readNumber('temperature.flow.current'); // FIX: Vorlauf für echte Wärmeberechnung
|
|
233
|
+
const returnTemp = await this._readNumber('temperature.return.current'); // FIX: Rücklauf für echte Wärmeberechnung
|
|
232
234
|
const outsideTemp = await this._readNumber('temperature.outside.current');
|
|
233
235
|
const currentFlowLh = await this._readNumber('pump.live.flow_current_lh');
|
|
234
236
|
const pumpCurrentPowerW = await this._readNumber('pump.live.current_power_w');
|
|
@@ -261,7 +263,10 @@ const solarInsightsHelper = {
|
|
|
261
263
|
availableSensors.push('ground');
|
|
262
264
|
}
|
|
263
265
|
if (flowAvailable) {
|
|
264
|
-
availableSensors.push('
|
|
266
|
+
availableSensors.push('flow');
|
|
267
|
+
}
|
|
268
|
+
if (flowTempAvailable && returnAvailable) {
|
|
269
|
+
availableSensors.push('water_delta');
|
|
265
270
|
}
|
|
266
271
|
if (returnAvailable) {
|
|
267
272
|
availableSensors.push('return');
|
|
@@ -283,7 +288,10 @@ const solarInsightsHelper = {
|
|
|
283
288
|
usedSensors.push('ground');
|
|
284
289
|
}
|
|
285
290
|
if (flowUsed) {
|
|
286
|
-
usedSensors.push('
|
|
291
|
+
usedSensors.push('flow');
|
|
292
|
+
}
|
|
293
|
+
if (flowTempAvailable && returnAvailable) {
|
|
294
|
+
usedSensors.push('water_delta');
|
|
287
295
|
}
|
|
288
296
|
if (returnUsed) {
|
|
289
297
|
usedSensors.push('return');
|
|
@@ -317,15 +325,20 @@ const solarInsightsHelper = {
|
|
|
317
325
|
}
|
|
318
326
|
|
|
319
327
|
let deltaTUsed = null;
|
|
320
|
-
|
|
321
|
-
|
|
328
|
+
|
|
329
|
+
// FIX:
|
|
330
|
+
// Für thermische Leistung und Tagesertrag darf nicht Kollektor - Pool verwendet werden.
|
|
331
|
+
// Das überschätzt massiv, weil die Kollektortemperatur keine echte Wasser-Ausgangstemperatur ist.
|
|
332
|
+
// Für Energie/COP wird nur die echte Wasserdifferenz Rücklauf - Vorlauf verwendet.
|
|
333
|
+
if (Number.isFinite(returnTemp) && Number.isFinite(flowTemp)) {
|
|
334
|
+
deltaTUsed = Number((returnTemp - flowTemp).toFixed(2));
|
|
322
335
|
}
|
|
323
336
|
|
|
324
337
|
// --- Block 3: Thermische Leistung berechnen ---
|
|
325
338
|
let thermalPowerW = null;
|
|
326
339
|
let thermalPowerKW = null;
|
|
327
340
|
|
|
328
|
-
if (Number.isFinite(deltaTUsed) && Number.isFinite(currentFlowLh) && currentFlowLh > 0) {
|
|
341
|
+
if (Number.isFinite(deltaTUsed) && deltaTUsed > 0 && Number.isFinite(currentFlowLh) && currentFlowLh > 0) {
|
|
329
342
|
thermalPowerW = Number((currentFlowLh * deltaTUsed * 1.16).toFixed(2));
|
|
330
343
|
thermalPowerKW = Number((thermalPowerW / 1000).toFixed(3));
|
|
331
344
|
}
|
|
@@ -425,6 +438,7 @@ const solarInsightsHelper = {
|
|
|
425
438
|
solar_effective_now: solarEffectiveNow,
|
|
426
439
|
pool_reference_source: poolReferenceSource,
|
|
427
440
|
flow_source: flowSource,
|
|
441
|
+
thermal_delta_source: 'return_flow_delta',
|
|
428
442
|
weather_correction_active: weatherCorrectionActive,
|
|
429
443
|
confidence_percent: confidencePercent,
|
|
430
444
|
used_sensors: usedSensors,
|
|
@@ -456,6 +470,7 @@ const solarInsightsHelper = {
|
|
|
456
470
|
`<b>${I18n.translate('solar_insights_label_solar_effective_now')}:</b> ${solarEffectiveNow}<br>`,
|
|
457
471
|
`<b>${I18n.translate('solar_insights_label_pool_reference_source')}:</b> ${poolReferenceSource}<br>`,
|
|
458
472
|
`<b>${I18n.translate('solar_insights_label_flow_source')}:</b> ${flowSource}<br>`,
|
|
473
|
+
`<b>${I18n.translate('solar_insights_label_thermal_delta_source')}:</b> return_flow_delta<br>`,
|
|
459
474
|
`<b>${I18n.translate('solar_insights_label_weather_correction_active')}:</b> ${weatherCorrectionActive}<br>`,
|
|
460
475
|
`<b>${I18n.translate('solar_insights_label_confidence')}:</b> ${confidencePercent} %<br>`,
|
|
461
476
|
`<b>${I18n.translate('solar_insights_label_used_sensors')}:</b> ${usedSensors.join(', ') || I18n.translate('solar_insights_value_none')}<br>`,
|
|
@@ -545,6 +560,7 @@ const solarInsightsHelper = {
|
|
|
545
560
|
available: availableSensors,
|
|
546
561
|
used: usedSensors,
|
|
547
562
|
mode: 'estimated_daily_gain',
|
|
563
|
+
thermal_delta_source: 'return_flow_delta',
|
|
548
564
|
block: 7,
|
|
549
565
|
}),
|
|
550
566
|
ack: true,
|
package/lib/i18n/de.json
CHANGED
|
@@ -109,6 +109,7 @@
|
|
|
109
109
|
"solar_insights_label_solar_effective_now": "Solar aktuell wirksam",
|
|
110
110
|
"solar_insights_label_pool_reference_source": "Pool-Referenzquelle",
|
|
111
111
|
"solar_insights_label_flow_source": "Durchflussquelle",
|
|
112
|
+
"solar_insights_label_thermal_delta_source": "Quelle Wärme-Delta",
|
|
112
113
|
"solar_insights_label_weather_correction_active": "Wetterkorrektur aktiv",
|
|
113
114
|
"solar_insights_label_confidence": "Vertrauen",
|
|
114
115
|
"solar_insights_label_used_sensors": "Verwendete Sensoren",
|
|
@@ -184,5 +185,66 @@
|
|
|
184
185
|
"photovoltaic_insights_debug_reason_pv_runtime_active": "PV-Überschussbetrieb aktiv",
|
|
185
186
|
"photovoltaic_insights_debug_reason_no_pv_runtime": "Kein aktiver PV-Überschussbetrieb",
|
|
186
187
|
"photovoltaic_insights_debug_text_pv_runtime_active": "PV-Überschuss ist aktiv und der Photovoltaik-Helper besitzt aktuell die Pumpe.",
|
|
187
|
-
"photovoltaic_insights_debug_text_no_pv_runtime": "Aktuell wird keine PV-Laufzeit gezählt, weil entweder kein PV-Überschuss aktiv ist oder der Photovoltaik-Helper die Pumpe nicht besitzt."
|
|
188
|
+
"photovoltaic_insights_debug_text_no_pv_runtime": "Aktuell wird keine PV-Laufzeit gezählt, weil entweder kein PV-Überschuss aktiv ist oder der Photovoltaik-Helper die Pumpe nicht besitzt.",
|
|
189
|
+
"photovoltaic_insights_debug_reason_daily_reset": "Täglicher Reset",
|
|
190
|
+
"photovoltaic_insights_debug_text_daily_reset": "Die täglichen Photovoltaik-Insights-Werte wurden zurückgesetzt.",
|
|
191
|
+
|
|
192
|
+
"pH source state configured.": "pH-Quell-Datenpunkt konfiguriert.",
|
|
193
|
+
"pH source state could not be subscribed.": "pH-Quell-Datenpunkt konnte nicht abonniert werden.",
|
|
194
|
+
"No pH source state configured.": "Kein pH-Quell-Datenpunkt konfiguriert.",
|
|
195
|
+
"pH evaluation is disabled.": "pH-Auswertung ist deaktiviert.",
|
|
196
|
+
"pH input is disabled.": "pH-Eingang ist deaktiviert.",
|
|
197
|
+
"No pH input source is active.": "Keine pH-Eingangsquelle ist aktiv.",
|
|
198
|
+
"No valid pH source is configured.": "Keine gültige pH-Quelle ist konfiguriert.",
|
|
199
|
+
"pH source state could not be read.": "pH-Quell-Datenpunkt konnte nicht gelesen werden.",
|
|
200
|
+
"The configured pH source could not be read.": "Die konfigurierte pH-Quelle konnte nicht gelesen werden.",
|
|
201
|
+
"pH source state does not exist.": "pH-Quell-Datenpunkt existiert nicht.",
|
|
202
|
+
"The configured pH source state does not exist.": "Der konfigurierte pH-Quell-Datenpunkt existiert nicht.",
|
|
203
|
+
"Unknown pH source mode.": "Unbekannter pH-Quellenmodus.",
|
|
204
|
+
"Manual pH value is used.": "Manueller pH-Wert wird verwendet.",
|
|
205
|
+
"External pH source is valid.": "Externe pH-Quelle ist gültig.",
|
|
206
|
+
"The pH value is invalid. Please check the measurement or sensor.": "Der pH-Wert ist ungültig. Bitte Messung oder Sensor prüfen.",
|
|
207
|
+
"pH evaluation is waiting for the pool pump because the sensor is in a measurement section.": "pH-Auswertung wartet auf die Poolpumpe, weil der Sensor in einer Messstrecke sitzt.",
|
|
208
|
+
"pH evaluation is waiting until the measurement section has stabilized after pump start.": "pH-Auswertung wartet, bis die Messstrecke nach Pumpenstart stabilisiert ist.",
|
|
209
|
+
"pH value is too low. Check whether pH plus should be added according to the product instructions. Then circulate and measure again.": "pH-Wert ist zu niedrig. Bitte prüfen, ob pH-Plus nach Herstellerangabe zugegeben werden sollte. Danach umwälzen und erneut messen.",
|
|
210
|
+
"pH value is too high. Check whether pH minus should be added according to the product instructions. Then circulate and measure again.": "pH-Wert ist zu hoch. Bitte prüfen, ob pH-Minus nach Herstellerangabe zugegeben werden sollte. Danach umwälzen und erneut messen.",
|
|
211
|
+
"pH value is within the target range. No action is required.": "pH-Wert liegt im Zielbereich. Keine Aktion erforderlich.",
|
|
212
|
+
"Mixing run was not started because pH evaluation is disabled.": "Mischlauf wurde nicht gestartet, weil die pH-Auswertung deaktiviert ist.",
|
|
213
|
+
"Mixing run was not started because the pool season is inactive.": "Mischlauf wurde nicht gestartet, weil die Poolsaison inaktiv ist.",
|
|
214
|
+
"Mixing run was not started because no runtime is configured.": "Mischlauf wurde nicht gestartet, weil keine Laufzeit eingestellt ist.",
|
|
215
|
+
"Mixing run was not started because another helper currently controls the pump.": "Mischlauf wurde nicht gestartet, weil aktuell ein anderer Helper die Pumpe steuert.",
|
|
216
|
+
"pH mixing run started. No chemicals are dosed automatically.": "pH-Mischlauf gestartet. Es wird keine Chemie automatisch dosiert.",
|
|
217
|
+
"pH mixing run finished. Pump was switched off by the pH helper.": "pH-Mischlauf beendet. Die Pumpe wurde vom pH-Helper ausgeschaltet.",
|
|
218
|
+
"pH mixing run finished. Pump was not switched off because another helper is active.": "pH-Mischlauf beendet. Die Pumpe wurde nicht ausgeschaltet, weil ein anderer Helper aktiv ist.",
|
|
219
|
+
"pH mixing run finished. Pump was already running and was not switched off by the pH helper.": "pH-Mischlauf beendet. Die Pumpe lief bereits und wurde vom pH-Helper nicht ausgeschaltet.",
|
|
220
|
+
|
|
221
|
+
"No TDS source state configured.": "Kein TDS-Quell-Datenpunkt konfiguriert.",
|
|
222
|
+
"TDS source state configured.": "TDS-Quell-Datenpunkt konfiguriert.",
|
|
223
|
+
"TDS source state could not be subscribed.": "TDS-Quell-Datenpunkt konnte nicht abonniert werden.",
|
|
224
|
+
"TDS input is disabled.": "TDS-Eingang ist deaktiviert.",
|
|
225
|
+
"TDS evaluation is disabled.": "TDS-Auswertung ist deaktiviert.",
|
|
226
|
+
"No valid TDS source is configured.": "Keine gültige TDS-Quelle ist konfiguriert.",
|
|
227
|
+
"The configured TDS source state does not exist.": "Der konfigurierte TDS-Quell-Datenpunkt existiert nicht.",
|
|
228
|
+
"The configured TDS source could not be read.": "Die konfigurierte TDS-Quelle konnte nicht gelesen werden.",
|
|
229
|
+
"Unknown TDS source mode.": "Unbekannter TDS-Quellenmodus.",
|
|
230
|
+
"Manual TDS value is used.": "Manueller TDS-Wert wird verwendet.",
|
|
231
|
+
"External TDS source is valid.": "Externe TDS-Quelle ist gültig.",
|
|
232
|
+
"The TDS value is invalid. Please check the measurement or sensor.": "Der TDS-Wert ist ungültig. Bitte Messung oder Sensor prüfen.",
|
|
233
|
+
"TDS evaluation is waiting for the pool pump because the sensor is in a measurement section.": "TDS-Auswertung wartet auf die Poolpumpe, weil der Sensor in einer Messstrecke sitzt.",
|
|
234
|
+
"TDS evaluation is waiting until the measurement section has stabilized after pump start.": "TDS-Auswertung wartet, bis die Messstrecke nach Pumpenstart stabilisiert ist.",
|
|
235
|
+
"TDS value and trend are currently unremarkable.": "TDS-Wert und Trend sind aktuell unauffällig.",
|
|
236
|
+
"TDS is very high. Check water care and seriously consider a partial water change.": "TDS ist sehr hoch. Bitte Wasserpflege prüfen und einen Teilwasserwechsel ernsthaft in Betracht ziehen.",
|
|
237
|
+
"TDS is high or rising quickly. Check water load, chemical usage and consider fresh water or a partial water change.": "TDS ist hoch oder steigt schnell. Bitte Wasserbelastung, Chemikalieneinsatz und Frischwasser bzw. Teilwasserwechsel prüfen.",
|
|
238
|
+
"TDS is elevated or rising noticeably. Observe the trend and check water load and chemical additions.": "TDS ist erhöht oder steigt auffällig. Trend beobachten und Wasserbelastung sowie Chemikalienzugaben prüfen.",
|
|
239
|
+
"Not enough TDS history is available yet. Collect more valid measurements.": "Es sind noch nicht genügend TDS-Verlaufsdaten vorhanden. Weitere gültige Messwerte sammeln.",
|
|
240
|
+
"TDS is falling. This can be plausible after fresh water or a partial water change.": "TDS sinkt. Das kann nach Frischwasser oder einem Teilwasserwechsel plausibel sein.",
|
|
241
|
+
"Current TDS value": "Aktueller TDS-Wert",
|
|
242
|
+
"not enough data": "nicht genug Daten",
|
|
243
|
+
"Initial reference": "Initialer Referenzwert",
|
|
244
|
+
"not set": "nicht gesetzt",
|
|
245
|
+
"Delta since reference": "Differenz seit Referenzwert",
|
|
246
|
+
"not available": "nicht verfügbar",
|
|
247
|
+
"Trend status": "Trendstatus",
|
|
248
|
+
"Overall status": "Gesamtstatus",
|
|
249
|
+
"Recommendation": "Empfehlung"
|
|
188
250
|
}
|
package/lib/i18n/en.json
CHANGED
|
@@ -181,6 +181,7 @@
|
|
|
181
181
|
"solar_insights_label_solar_effective_now": "Solar effective now",
|
|
182
182
|
"solar_insights_label_pool_reference_source": "Pool reference source",
|
|
183
183
|
"solar_insights_label_flow_source": "Flow source",
|
|
184
|
+
"solar_insights_label_thermal_delta_source": "Thermal delta source",
|
|
184
185
|
"solar_insights_label_weather_correction_active": "Weather correction active",
|
|
185
186
|
"solar_insights_label_confidence": "Confidence",
|
|
186
187
|
"solar_insights_label_used_sensors": "Used sensors",
|
|
@@ -256,5 +257,65 @@
|
|
|
256
257
|
"photovoltaic_insights_debug_reason_pv_runtime_active": "PV surplus operation active",
|
|
257
258
|
"photovoltaic_insights_debug_reason_no_pv_runtime": "No active PV surplus operation",
|
|
258
259
|
"photovoltaic_insights_debug_text_pv_runtime_active": "PV surplus is active and the photovoltaic helper currently owns the pump.",
|
|
259
|
-
"photovoltaic_insights_debug_text_no_pv_runtime": "No PV runtime is currently counted because either no PV surplus is active or the photovoltaic helper does not own the pump."
|
|
260
|
-
|
|
260
|
+
"photovoltaic_insights_debug_text_no_pv_runtime": "No PV runtime is currently counted because either no PV surplus is active or the photovoltaic helper does not own the pump.",
|
|
261
|
+
"photovoltaic_insights_debug_reason_daily_reset": "Daily reset",
|
|
262
|
+
"photovoltaic_insights_debug_text_daily_reset": "Photovoltaic insights daily values have been reset.",
|
|
263
|
+
"pH source state configured.": "pH source state configured.",
|
|
264
|
+
"pH source state could not be subscribed.": "pH source state could not be subscribed.",
|
|
265
|
+
"No pH source state configured.": "No pH source state configured.",
|
|
266
|
+
"pH evaluation is disabled.": "pH evaluation is disabled.",
|
|
267
|
+
"pH input is disabled.": "pH input is disabled.",
|
|
268
|
+
"No pH input source is active.": "No pH input source is active.",
|
|
269
|
+
"No valid pH source is configured.": "No valid pH source is configured.",
|
|
270
|
+
"pH source state could not be read.": "pH source state could not be read.",
|
|
271
|
+
"The configured pH source could not be read.": "The configured pH source could not be read.",
|
|
272
|
+
"pH source state does not exist.": "pH source state does not exist.",
|
|
273
|
+
"The configured pH source state does not exist.": "The configured pH source state does not exist.",
|
|
274
|
+
"Unknown pH source mode.": "Unknown pH source mode.",
|
|
275
|
+
"Manual pH value is used.": "Manual pH value is used.",
|
|
276
|
+
"External pH source is valid.": "External pH source is valid.",
|
|
277
|
+
"The pH value is invalid. Please check the measurement or sensor.": "The pH value is invalid. Please check the measurement or sensor.",
|
|
278
|
+
"pH evaluation is waiting for the pool pump because the sensor is in a measurement section.": "pH evaluation is waiting for the pool pump because the sensor is in a measurement section.",
|
|
279
|
+
"pH evaluation is waiting until the measurement section has stabilized after pump start.": "pH evaluation is waiting until the measurement section has stabilized after pump start.",
|
|
280
|
+
"pH value is too low. Check whether pH plus should be added according to the product instructions. Then circulate and measure again.": "pH value is too low. Check whether pH plus should be added according to the product instructions. Then circulate and measure again.",
|
|
281
|
+
"pH value is too high. Check whether pH minus should be added according to the product instructions. Then circulate and measure again.": "pH value is too high. Check whether pH minus should be added according to the product instructions. Then circulate and measure again.",
|
|
282
|
+
"pH value is within the target range. No action is required.": "pH value is within the target range. No action is required.",
|
|
283
|
+
"Mixing run was not started because pH evaluation is disabled.": "Mixing run was not started because pH evaluation is disabled.",
|
|
284
|
+
"Mixing run was not started because the pool season is inactive.": "Mixing run was not started because the pool season is inactive.",
|
|
285
|
+
"Mixing run was not started because no runtime is configured.": "Mixing run was not started because no runtime is configured.",
|
|
286
|
+
"Mixing run was not started because another helper currently controls the pump.": "Mixing run was not started because another helper currently controls the pump.",
|
|
287
|
+
"pH mixing run started. No chemicals are dosed automatically.": "pH mixing run started. No chemicals are dosed automatically.",
|
|
288
|
+
"pH mixing run finished. Pump was switched off by the pH helper.": "pH mixing run finished. Pump was switched off by the pH helper.",
|
|
289
|
+
"pH mixing run finished. Pump was not switched off because another helper is active.": "pH mixing run finished. Pump was not switched off because another helper is active.",
|
|
290
|
+
"pH mixing run finished. Pump was already running and was not switched off by the pH helper.": "pH mixing run finished. Pump was already running and was not switched off by the pH helper.",
|
|
291
|
+
|
|
292
|
+
"No TDS source state configured.": "No TDS source state configured.",
|
|
293
|
+
"TDS source state configured.": "TDS source state configured.",
|
|
294
|
+
"TDS source state could not be subscribed.": "TDS source state could not be subscribed.",
|
|
295
|
+
"TDS input is disabled.": "TDS input is disabled.",
|
|
296
|
+
"TDS evaluation is disabled.": "TDS evaluation is disabled.",
|
|
297
|
+
"No valid TDS source is configured.": "No valid TDS source is configured.",
|
|
298
|
+
"The configured TDS source state does not exist.": "The configured TDS source state does not exist.",
|
|
299
|
+
"The configured TDS source could not be read.": "The configured TDS source could not be read.",
|
|
300
|
+
"Unknown TDS source mode.": "Unknown TDS source mode.",
|
|
301
|
+
"Manual TDS value is used.": "Manual TDS value is used.",
|
|
302
|
+
"External TDS source is valid.": "External TDS source is valid.",
|
|
303
|
+
"The TDS value is invalid. Please check the measurement or sensor.": "The TDS value is invalid. Please check the measurement or sensor.",
|
|
304
|
+
"TDS evaluation is waiting for the pool pump because the sensor is in a measurement section.": "TDS evaluation is waiting for the pool pump because the sensor is in a measurement section.",
|
|
305
|
+
"TDS evaluation is waiting until the measurement section has stabilized after pump start.": "TDS evaluation is waiting until the measurement section has stabilized after pump start.",
|
|
306
|
+
"TDS value and trend are currently unremarkable.": "TDS value and trend are currently unremarkable.",
|
|
307
|
+
"TDS is very high. Check water care and seriously consider a partial water change.": "TDS is very high. Check water care and seriously consider a partial water change.",
|
|
308
|
+
"TDS is high or rising quickly. Check water load, chemical usage and consider fresh water or a partial water change.": "TDS is high or rising quickly. Check water load, chemical usage and consider fresh water or a partial water change.",
|
|
309
|
+
"TDS is elevated or rising noticeably. Observe the trend and check water load and chemical additions.": "TDS is elevated or rising noticeably. Observe the trend and check water load and chemical additions.",
|
|
310
|
+
"Not enough TDS history is available yet. Collect more valid measurements.": "Not enough TDS history is available yet. Collect more valid measurements.",
|
|
311
|
+
"TDS is falling. This can be plausible after fresh water or a partial water change.": "TDS is falling. This can be plausible after fresh water or a partial water change.",
|
|
312
|
+
"Current TDS value": "Current TDS value",
|
|
313
|
+
"not enough data": "not enough data",
|
|
314
|
+
"Initial reference": "Initial reference",
|
|
315
|
+
"not set": "not set",
|
|
316
|
+
"Delta since reference": "Delta since reference",
|
|
317
|
+
"not available": "not available",
|
|
318
|
+
"Trend status": "Trend status",
|
|
319
|
+
"Overall status": "Overall status",
|
|
320
|
+
"Recommendation": "Recommendation"
|
|
321
|
+
}
|
package/lib/i18n/es.json
CHANGED
|
@@ -181,6 +181,7 @@
|
|
|
181
181
|
"solar_insights_label_solar_effective_now": "Solar activo actualmente",
|
|
182
182
|
"solar_insights_label_pool_reference_source": "Fuente de referencia del pool",
|
|
183
183
|
"solar_insights_label_flow_source": "Fuente de caudal",
|
|
184
|
+
"solar_insights_label_thermal_delta_source": "Fuente delta térmica",
|
|
184
185
|
"solar_insights_label_weather_correction_active": "Corrección meteorológica activa",
|
|
185
186
|
"solar_insights_label_confidence": "Confianza",
|
|
186
187
|
"solar_insights_label_used_sensors": "Sensores utilizados",
|
|
@@ -255,5 +256,66 @@
|
|
|
255
256
|
"photovoltaic_insights_debug_reason_pv_runtime_active": "Operación con excedente FV activa",
|
|
256
257
|
"photovoltaic_insights_debug_reason_no_pv_runtime": "Sin operación activa con excedente FV",
|
|
257
258
|
"photovoltaic_insights_debug_text_pv_runtime_active": "El excedente FV está activo y el helper fotovoltaico posee actualmente la bomba.",
|
|
258
|
-
"photovoltaic_insights_debug_text_no_pv_runtime": "Actualmente no se cuenta ningún tiempo de funcionamiento FV porque no hay excedente FV activo o el helper fotovoltaico no posee la bomba."
|
|
259
|
+
"photovoltaic_insights_debug_text_no_pv_runtime": "Actualmente no se cuenta ningún tiempo de funcionamiento FV porque no hay excedente FV activo o el helper fotovoltaico no posee la bomba.",
|
|
260
|
+
"photovoltaic_insights_debug_reason_daily_reset": "Reinicio diario",
|
|
261
|
+
"photovoltaic_insights_debug_text_daily_reset": "Los valores diarios de los insights fotovoltaicos han sido restablecidos.",
|
|
262
|
+
|
|
263
|
+
"pH source state configured.": "Estado de origen de pH configurado.",
|
|
264
|
+
"pH source state could not be subscribed.": "No se pudo suscribir el estado de origen de pH.",
|
|
265
|
+
"No pH source state configured.": "No hay ningún estado de origen de pH configurado.",
|
|
266
|
+
"pH evaluation is disabled.": "La evaluación de pH está desactivada.",
|
|
267
|
+
"pH input is disabled.": "La entrada de pH está desactivada.",
|
|
268
|
+
"No pH input source is active.": "No hay ninguna fuente de entrada de pH activa.",
|
|
269
|
+
"No valid pH source is configured.": "No hay ninguna fuente de pH válida configurada.",
|
|
270
|
+
"pH source state could not be read.": "No se pudo leer el estado de origen de pH.",
|
|
271
|
+
"The configured pH source could not be read.": "No se pudo leer la fuente de pH configurada.",
|
|
272
|
+
"pH source state does not exist.": "El estado de origen de pH no existe.",
|
|
273
|
+
"The configured pH source state does not exist.": "El estado de origen de pH configurado no existe.",
|
|
274
|
+
"Unknown pH source mode.": "Modo de fuente de pH desconocido.",
|
|
275
|
+
"Manual pH value is used.": "Se utiliza el valor de pH manual.",
|
|
276
|
+
"External pH source is valid.": "La fuente externa de pH es válida.",
|
|
277
|
+
"The pH value is invalid. Please check the measurement or sensor.": "El valor de pH no es válido. Compruebe la medición o el sensor.",
|
|
278
|
+
"pH evaluation is waiting for the pool pump because the sensor is in a measurement section.": "La evaluación de pH está esperando a la bomba de la piscina porque el sensor está en una sección de medición.",
|
|
279
|
+
"pH evaluation is waiting until the measurement section has stabilized after pump start.": "La evaluación de pH está esperando a que la sección de medición se estabilice tras el arranque de la bomba.",
|
|
280
|
+
"pH value is too low. Check whether pH plus should be added according to the product instructions. Then circulate and measure again.": "El valor de pH es demasiado bajo. Compruebe si debe añadirse pH plus según las instrucciones del producto. Luego recircule y mida de nuevo.",
|
|
281
|
+
"pH value is too high. Check whether pH minus should be added according to the product instructions. Then circulate and measure again.": "El valor de pH es demasiado alto. Compruebe si debe añadirse pH minus según las instrucciones del producto. Luego recircule y mida de nuevo.",
|
|
282
|
+
"pH value is within the target range. No action is required.": "El valor de pH está dentro del rango objetivo. No se requiere ninguna acción.",
|
|
283
|
+
"Mixing run was not started because pH evaluation is disabled.": "La mezcla no se inició porque la evaluación de pH está desactivada.",
|
|
284
|
+
"Mixing run was not started because the pool season is inactive.": "La mezcla no se inició porque la temporada de piscina está inactiva.",
|
|
285
|
+
"Mixing run was not started because no runtime is configured.": "La mezcla no se inició porque no hay ningún tiempo de funcionamiento configurado.",
|
|
286
|
+
"Mixing run was not started because another helper currently controls the pump.": "La mezcla no se inició porque otro helper controla actualmente la bomba.",
|
|
287
|
+
"pH mixing run started. No chemicals are dosed automatically.": "Mezcla de pH iniciada. No se dosifica ningún producto químico automáticamente.",
|
|
288
|
+
"pH mixing run finished. Pump was switched off by the pH helper.": "Mezcla de pH finalizada. La bomba fue apagada por el helper de pH.",
|
|
289
|
+
"pH mixing run finished. Pump was not switched off because another helper is active.": "Mezcla de pH finalizada. La bomba no se apagó porque otro helper está activo.",
|
|
290
|
+
"pH mixing run finished. Pump was already running and was not switched off by the pH helper.": "Mezcla de pH finalizada. La bomba ya estaba en marcha y el helper de pH no la apagó.",
|
|
291
|
+
|
|
292
|
+
"No TDS source state configured.": "No hay ningún estado de origen de TDS configurado.",
|
|
293
|
+
"TDS source state configured.": "Estado de origen de TDS configurado.",
|
|
294
|
+
"TDS source state could not be subscribed.": "No se pudo suscribir el estado de origen de TDS.",
|
|
295
|
+
"TDS input is disabled.": "La entrada de TDS está desactivada.",
|
|
296
|
+
"TDS evaluation is disabled.": "La evaluación de TDS está desactivada.",
|
|
297
|
+
"No valid TDS source is configured.": "No hay ninguna fuente de TDS válida configurada.",
|
|
298
|
+
"The configured TDS source state does not exist.": "El estado de origen de TDS configurado no existe.",
|
|
299
|
+
"The configured TDS source could not be read.": "No se pudo leer la fuente de TDS configurada.",
|
|
300
|
+
"Unknown TDS source mode.": "Modo de fuente de TDS desconocido.",
|
|
301
|
+
"Manual TDS value is used.": "Se utiliza el valor de TDS manual.",
|
|
302
|
+
"External TDS source is valid.": "La fuente externa de TDS es válida.",
|
|
303
|
+
"The TDS value is invalid. Please check the measurement or sensor.": "El valor de TDS no es válido. Compruebe la medición o el sensor.",
|
|
304
|
+
"TDS evaluation is waiting for the pool pump because the sensor is in a measurement section.": "La evaluación de TDS está esperando a la bomba de la piscina porque el sensor está en una sección de medición.",
|
|
305
|
+
"TDS evaluation is waiting until the measurement section has stabilized after pump start.": "La evaluación de TDS está esperando a que la sección de medición se estabilice tras el arranque de la bomba.",
|
|
306
|
+
"TDS value and trend are currently unremarkable.": "El valor y la tendencia de TDS son actualmente normales.",
|
|
307
|
+
"TDS is very high. Check water care and seriously consider a partial water change.": "El TDS es muy alto. Compruebe el cuidado del agua y considere seriamente un cambio parcial de agua.",
|
|
308
|
+
"TDS is high or rising quickly. Check water load, chemical usage and consider fresh water or a partial water change.": "El TDS es alto o aumenta rápidamente. Compruebe la carga del agua, el uso de productos químicos y considere añadir agua fresca o realizar un cambio parcial de agua.",
|
|
309
|
+
"TDS is elevated or rising noticeably. Observe the trend and check water load and chemical additions.": "El TDS está elevado o aumenta de forma notable. Observe la tendencia y compruebe la carga del agua y las adiciones químicas.",
|
|
310
|
+
"Not enough TDS history is available yet. Collect more valid measurements.": "Aún no hay suficiente historial de TDS. Recopile más mediciones válidas.",
|
|
311
|
+
"TDS is falling. This can be plausible after fresh water or a partial water change.": "El TDS está bajando. Esto puede ser plausible después de añadir agua fresca o realizar un cambio parcial de agua.",
|
|
312
|
+
"Current TDS value": "Valor TDS actual",
|
|
313
|
+
"not enough data": "datos insuficientes",
|
|
314
|
+
"Initial reference": "Referencia inicial",
|
|
315
|
+
"not set": "no establecido",
|
|
316
|
+
"Delta since reference": "Delta desde la referencia",
|
|
317
|
+
"not available": "no disponible",
|
|
318
|
+
"Trend status": "Estado de tendencia",
|
|
319
|
+
"Overall status": "Estado general",
|
|
320
|
+
"Recommendation": "Recomendación"
|
|
259
321
|
}
|
package/lib/i18n/fr.json
CHANGED
|
@@ -181,6 +181,7 @@
|
|
|
181
181
|
"solar_insights_label_solar_effective_now": "Solaire actif actuellement",
|
|
182
182
|
"solar_insights_label_pool_reference_source": "Source de référence du pool",
|
|
183
183
|
"solar_insights_label_flow_source": "Source de débit",
|
|
184
|
+
"solar_insights_label_thermal_delta_source": "Source du delta thermique",
|
|
184
185
|
"solar_insights_label_weather_correction_active": "Correction météo active",
|
|
185
186
|
"solar_insights_label_confidence": "Confiance",
|
|
186
187
|
"solar_insights_label_used_sensors": "Capteurs utilisés",
|
|
@@ -255,5 +256,66 @@
|
|
|
255
256
|
"photovoltaic_insights_debug_reason_pv_runtime_active": "Fonctionnement sur surplus PV actif",
|
|
256
257
|
"photovoltaic_insights_debug_reason_no_pv_runtime": "Aucun fonctionnement actif sur surplus PV",
|
|
257
258
|
"photovoltaic_insights_debug_text_pv_runtime_active": "Le surplus PV est actif et le helper photovoltaïque possède actuellement la pompe.",
|
|
258
|
-
"photovoltaic_insights_debug_text_no_pv_runtime": "Aucun temps de fonctionnement PV n’est actuellement comptabilisé, car aucun surplus PV n’est actif ou le helper photovoltaïque ne possède pas la pompe."
|
|
259
|
+
"photovoltaic_insights_debug_text_no_pv_runtime": "Aucun temps de fonctionnement PV n’est actuellement comptabilisé, car aucun surplus PV n’est actif ou le helper photovoltaïque ne possède pas la pompe.",
|
|
260
|
+
"photovoltaic_insights_debug_reason_daily_reset": "Réinitialisation quotidienne",
|
|
261
|
+
"photovoltaic_insights_debug_text_daily_reset": "Les valeurs quotidiennes des insights photovoltaïques ont été réinitialisées.",
|
|
262
|
+
|
|
263
|
+
"pH source state configured.": "État source pH configuré.",
|
|
264
|
+
"pH source state could not be subscribed.": "Impossible de s'abonner à l'état source pH.",
|
|
265
|
+
"No pH source state configured.": "Aucun état source pH configuré.",
|
|
266
|
+
"pH evaluation is disabled.": "L'évaluation du pH est désactivée.",
|
|
267
|
+
"pH input is disabled.": "L'entrée pH est désactivée.",
|
|
268
|
+
"No pH input source is active.": "Aucune source d'entrée pH n'est active.",
|
|
269
|
+
"No valid pH source is configured.": "Aucune source pH valide n'est configurée.",
|
|
270
|
+
"pH source state could not be read.": "L'état source pH n'a pas pu être lu.",
|
|
271
|
+
"The configured pH source could not be read.": "La source pH configurée n'a pas pu être lue.",
|
|
272
|
+
"pH source state does not exist.": "L'état source pH n'existe pas.",
|
|
273
|
+
"The configured pH source state does not exist.": "L'état source pH configuré n'existe pas.",
|
|
274
|
+
"Unknown pH source mode.": "Mode de source pH inconnu.",
|
|
275
|
+
"Manual pH value is used.": "La valeur pH manuelle est utilisée.",
|
|
276
|
+
"External pH source is valid.": "La source pH externe est valide.",
|
|
277
|
+
"The pH value is invalid. Please check the measurement or sensor.": "La valeur pH n'est pas valide. Veuillez vérifier la mesure ou le capteur.",
|
|
278
|
+
"pH evaluation is waiting for the pool pump because the sensor is in a measurement section.": "L'évaluation du pH attend la pompe de piscine, car le capteur se trouve dans une section de mesure.",
|
|
279
|
+
"pH evaluation is waiting until the measurement section has stabilized after pump start.": "L'évaluation du pH attend que la section de mesure se stabilise après le démarrage de la pompe.",
|
|
280
|
+
"pH value is too low. Check whether pH plus should be added according to the product instructions. Then circulate and measure again.": "La valeur pH est trop basse. Vérifiez si du pH plus doit être ajouté conformément aux instructions du produit. Faites ensuite circuler l'eau et mesurez à nouveau.",
|
|
281
|
+
"pH value is too high. Check whether pH minus should be added according to the product instructions. Then circulate and measure again.": "La valeur pH est trop élevée. Vérifiez si du pH minus doit être ajouté conformément aux instructions du produit. Faites ensuite circuler l'eau et mesurez à nouveau.",
|
|
282
|
+
"pH value is within the target range. No action is required.": "La valeur pH est dans la plage cible. Aucune action n'est nécessaire.",
|
|
283
|
+
"Mixing run was not started because pH evaluation is disabled.": "Le brassage n'a pas été démarré car l'évaluation du pH est désactivée.",
|
|
284
|
+
"Mixing run was not started because the pool season is inactive.": "Le brassage n'a pas été démarré car la saison de piscine est inactive.",
|
|
285
|
+
"Mixing run was not started because no runtime is configured.": "Le brassage n'a pas été démarré car aucune durée de fonctionnement n'est configurée.",
|
|
286
|
+
"Mixing run was not started because another helper currently controls the pump.": "Le brassage n'a pas été démarré car un autre assistant contrôle actuellement la pompe.",
|
|
287
|
+
"pH mixing run started. No chemicals are dosed automatically.": "Brassage pH démarré. Aucun produit chimique n'est dosé automatiquement.",
|
|
288
|
+
"pH mixing run finished. Pump was switched off by the pH helper.": "Brassage pH terminé. La pompe a été arrêtée par l'assistant pH.",
|
|
289
|
+
"pH mixing run finished. Pump was not switched off because another helper is active.": "Brassage pH terminé. La pompe n'a pas été arrêtée car un autre assistant est actif.",
|
|
290
|
+
"pH mixing run finished. Pump was already running and was not switched off by the pH helper.": "Brassage pH terminé. La pompe était déjà en marche et n'a pas été arrêtée par l'assistant pH.",
|
|
291
|
+
|
|
292
|
+
"No TDS source state configured.": "Aucun état source TDS configuré.",
|
|
293
|
+
"TDS source state configured.": "État source TDS configuré.",
|
|
294
|
+
"TDS source state could not be subscribed.": "Impossible de s'abonner à l'état source TDS.",
|
|
295
|
+
"TDS input is disabled.": "L'entrée TDS est désactivée.",
|
|
296
|
+
"TDS evaluation is disabled.": "L'évaluation du TDS est désactivée.",
|
|
297
|
+
"No valid TDS source is configured.": "Aucune source TDS valide n'est configurée.",
|
|
298
|
+
"The configured TDS source state does not exist.": "L'état source TDS configuré n'existe pas.",
|
|
299
|
+
"The configured TDS source could not be read.": "La source TDS configurée n'a pas pu être lue.",
|
|
300
|
+
"Unknown TDS source mode.": "Mode de source TDS inconnu.",
|
|
301
|
+
"Manual TDS value is used.": "La valeur TDS manuelle est utilisée.",
|
|
302
|
+
"External TDS source is valid.": "La source TDS externe est valide.",
|
|
303
|
+
"The TDS value is invalid. Please check the measurement or sensor.": "La valeur TDS n'est pas valide. Veuillez vérifier la mesure ou le capteur.",
|
|
304
|
+
"TDS evaluation is waiting for the pool pump because the sensor is in a measurement section.": "L'évaluation du TDS attend la pompe de piscine, car le capteur se trouve dans une section de mesure.",
|
|
305
|
+
"TDS evaluation is waiting until the measurement section has stabilized after pump start.": "L'évaluation du TDS attend que la section de mesure se stabilise après le démarrage de la pompe.",
|
|
306
|
+
"TDS value and trend are currently unremarkable.": "La valeur TDS et la tendance sont actuellement normales.",
|
|
307
|
+
"TDS is very high. Check water care and seriously consider a partial water change.": "Le TDS est très élevé. Vérifiez l'entretien de l'eau et envisagez sérieusement un renouvellement partiel de l'eau.",
|
|
308
|
+
"TDS is high or rising quickly. Check water load, chemical usage and consider fresh water or a partial water change.": "Le TDS est élevé ou augmente rapidement. Vérifiez la charge de l'eau, l'utilisation de produits chimiques et envisagez un apport d'eau fraîche ou un renouvellement partiel de l'eau.",
|
|
309
|
+
"TDS is elevated or rising noticeably. Observe the trend and check water load and chemical additions.": "Le TDS est élevé ou augmente nettement. Observez la tendance et vérifiez la charge de l'eau ainsi que les ajouts chimiques.",
|
|
310
|
+
"Not enough TDS history is available yet. Collect more valid measurements.": "L'historique TDS disponible est encore insuffisant. Collectez davantage de mesures valides.",
|
|
311
|
+
"TDS is falling. This can be plausible after fresh water or a partial water change.": "Le TDS diminue. Cela peut être plausible après un apport d'eau fraîche ou un renouvellement partiel de l'eau.",
|
|
312
|
+
"Current TDS value": "Valeur TDS actuelle",
|
|
313
|
+
"not enough data": "données insuffisantes",
|
|
314
|
+
"Initial reference": "Référence initiale",
|
|
315
|
+
"not set": "non défini",
|
|
316
|
+
"Delta since reference": "Écart depuis la référence",
|
|
317
|
+
"not available": "non disponible",
|
|
318
|
+
"Trend status": "État de la tendance",
|
|
319
|
+
"Overall status": "État général",
|
|
320
|
+
"Recommendation": "Recommandation"
|
|
259
321
|
}
|