iobroker.poolcontrol 1.3.28 → 1.3.30

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 (40) hide show
  1. package/README.md +22 -12
  2. package/admin/i18n/de/translations.json +4 -1
  3. package/admin/i18n/en/translations.json +8 -2
  4. package/admin/i18n/es/translations.json +4 -1
  5. package/admin/i18n/fr/translations.json +4 -1
  6. package/admin/i18n/it/translations.json +4 -1
  7. package/admin/i18n/nl/translations.json +4 -1
  8. package/admin/i18n/pl/translations.json +4 -1
  9. package/admin/i18n/pt/translations.json +4 -1
  10. package/admin/i18n/ru/translations.json +4 -1
  11. package/admin/i18n/uk/translations.json +4 -1
  12. package/admin/i18n/zh-cn/translations.json +4 -1
  13. package/admin/jsonConfig.json +31 -1
  14. package/io-package.json +27 -27
  15. package/lib/helpers/aiForecastHelper.js +6 -4
  16. package/lib/helpers/aiHelper.js +11 -9
  17. package/lib/helpers/consumptionHelper.js +47 -5
  18. package/lib/helpers/heatHelper.js +12 -9
  19. package/lib/helpers/infoHelper.js +11 -11
  20. package/lib/helpers/poolInsightsHelper.js +727 -0
  21. package/lib/helpers/pumpHelper.js +1 -4
  22. package/lib/helpers/statisticsHelper.js +7 -3
  23. package/lib/helpers/statisticsHelperMonth.js +19 -15
  24. package/lib/helpers/statisticsHelperWeek.js +11 -5
  25. package/lib/i18n/de.json +31 -1
  26. package/lib/i18n/en.json +34 -4
  27. package/lib/i18n/es.json +31 -1
  28. package/lib/i18n/fr.json +31 -1
  29. package/lib/i18n/it.json +31 -1
  30. package/lib/i18n/nl.json +31 -1
  31. package/lib/i18n/pl.json +31 -1
  32. package/lib/i18n/pt.json +31 -1
  33. package/lib/i18n/ru.json +31 -1
  34. package/lib/i18n/uk.json +31 -1
  35. package/lib/i18n/zh-cn.json +31 -1
  36. package/lib/stateDefinitions/poolInsightsStates.js +308 -0
  37. package/lib/stateDefinitions/solarStates.js +12 -3
  38. package/lib/stateDefinitions/statusStates.js +1 -1
  39. package/main.js +20 -0
  40. package/package.json +2 -2
@@ -336,10 +336,7 @@ const pumpHelper = {
336
336
  },
337
337
 
338
338
  cleanup() {
339
- if (this.checkTimer) {
340
- clearInterval(this.checkTimer);
341
- this.checkTimer = null;
342
- }
339
+ // No active timers to clean up.
343
340
  },
344
341
  };
345
342
 
@@ -416,7 +416,8 @@ const statisticsHelper = {
416
416
  async _scheduleMidnightReset() {
417
417
  const adapter = this.adapter;
418
418
  if (this.midnightTimer) {
419
- clearTimeout(this.midnightTimer);
419
+ this.adapter.clearTimeout(this.midnightTimer);
420
+ this.midnightTimer = null;
420
421
  }
421
422
 
422
423
  const now = new Date();
@@ -424,7 +425,9 @@ const statisticsHelper = {
424
425
  nextMidnight.setHours(24, 0, 5, 0);
425
426
  const msUntilMidnight = nextMidnight.getTime() - now.getTime();
426
427
 
427
- this.midnightTimer = setTimeout(async () => {
428
+ this.midnightTimer = this.adapter.setTimeout(async () => {
429
+ this.midnightTimer = null;
430
+
428
431
  await this._resetDailyTemperatureStats();
429
432
  await this._scheduleMidnightReset();
430
433
  }, msUntilMidnight);
@@ -523,7 +526,8 @@ const statisticsHelper = {
523
526
 
524
527
  cleanup() {
525
528
  if (this.midnightTimer) {
526
- clearTimeout(this.midnightTimer);
529
+ this.adapter.clearTimeout(this.midnightTimer);
530
+ this.midnightTimer = null;
527
531
  }
528
532
  },
529
533
  };
@@ -346,41 +346,44 @@ const statisticsHelperMonth = {
346
346
  * Monats-Reset planen (1. Tag des Monats 00:05 Uhr)
347
347
  */
348
348
  async _scheduleMonthReset() {
349
- const adapter = this.adapter;
350
349
  if (this.monthResetTimer) {
351
- clearTimeout(this.monthResetTimer);
350
+ this.adapter.clearTimeout(this.monthResetTimer);
351
+ this.monthResetTimer = null;
352
352
  }
353
353
 
354
354
  const now = new Date();
355
355
  const nextReset = new Date(now.getFullYear(), now.getMonth() + 1, 1, 0, 5, 0, 0);
356
356
  let msUntilReset = nextReset.getTime() - now.getTime();
357
357
 
358
- // Wenn heute bereits der 1. ist → keinen sofortigen Reset starten!
359
- if (now.getDate() === 1) {
360
- adapter.log.debug('statisticsHelperMonth: Today is already the 1st – reset skipped.');
361
- // Plan auf nächsten Monat verschieben
362
- nextReset.setMonth(nextReset.getMonth() + 1);
363
- msUntilReset = nextReset.getTime() - now.getTime();
364
- }
358
+ // // Wenn heute bereits der 1. ist → keinen sofortigen Reset starten!
359
+ // if (now.getDate() === 1) {
360
+ // this.adapter.log.debug('statisticsHelperMonth: Today is already the 1st – reset skipped.');
361
+ // // Plan auf nächsten Monat verschieben
362
+ // nextReset.setMonth(nextReset.getMonth() + 1);
363
+ // msUntilReset = nextReset.getTime() - now.getTime();
364
+ // }
365
365
 
366
366
  // Wenn Berechnung negativ oder zu klein ist → Sicherheit
367
367
  if (msUntilReset <= 0 || msUntilReset < 10 * 60 * 1000) {
368
- adapter.log.debug('statisticsHelperMonth: msUntilReset was too small – adjusting timer.');
368
+ this.adapter.log.debug('statisticsHelperMonth: msUntilReset was too small – adjusting timer.');
369
369
  msUntilReset = 10 * 60 * 1000; // mindestens 10 Minuten warten
370
370
  }
371
371
 
372
372
  // Timer setzen
373
- this.monthResetTimer = setTimeout(async () => {
373
+ this.monthResetTimer = this.adapter.setTimeout(async () => {
374
+ this.monthResetTimer = null;
375
+
374
376
  if (this.isResetting) {
375
- adapter.log.debug('statisticsHelperMonth: Reset already running – timer skipped.');
377
+ this.adapter.log.debug('statisticsHelperMonth: Reset already running – timer skipped.');
378
+ await this._scheduleMonthReset();
376
379
  return;
377
380
  }
378
381
 
379
382
  await this._resetMonthlyTemperatureStats();
380
- // await this._scheduleMonthReset();
383
+ await this._scheduleMonthReset();
381
384
  }, msUntilReset);
382
385
 
383
- adapter.log.debug(
386
+ this.adapter.log.debug(
384
387
  `statisticsHelperMonth: Monthly reset scheduled in ${Math.round(msUntilReset / 60000)} minutes.`,
385
388
  );
386
389
  },
@@ -514,7 +517,8 @@ const statisticsHelperMonth = {
514
517
 
515
518
  cleanup() {
516
519
  if (this.monthResetTimer) {
517
- clearTimeout(this.monthResetTimer);
520
+ this.adapter.clearTimeout(this.monthResetTimer);
521
+ this.monthResetTimer = null;
518
522
  }
519
523
  },
520
524
  };
@@ -358,7 +358,8 @@ const statisticsHelperWeek = {
358
358
  async _scheduleWeekReset() {
359
359
  const adapter = this.adapter;
360
360
  if (this.weekResetTimer) {
361
- clearTimeout(this.weekResetTimer);
361
+ this.adapter.clearTimeout(this.weekResetTimer);
362
+ this.weekResetTimer = null;
362
363
  }
363
364
 
364
365
  const now = new Date();
@@ -378,16 +379,20 @@ const statisticsHelperWeek = {
378
379
  corrected.setDate(now.getDate() + 7);
379
380
  corrected.setHours(0, 5, 0, 0);
380
381
  const diff = corrected.getTime() - now.getTime();
381
- this.weekResetTimer = setTimeout(async () => {
382
+ this.weekResetTimer = this.adapter.setTimeout(async () => {
383
+ this.weekResetTimer = null;
384
+
382
385
  await this._resetWeeklyTemperatureStats();
383
386
  await this._scheduleWeekReset();
384
387
  }, diff);
385
388
  return;
386
389
  }
387
390
 
388
- this.weekResetTimer = setTimeout(async () => {
391
+ this.weekResetTimer = this.adapter.setTimeout(async () => {
392
+ this.weekResetTimer = null;
393
+
389
394
  await this._resetWeeklyTemperatureStats();
390
- // await this._scheduleWeekReset();
395
+ await this._scheduleWeekReset();
391
396
  }, msUntilReset);
392
397
 
393
398
  adapter.log.debug(
@@ -525,7 +530,8 @@ const statisticsHelperWeek = {
525
530
 
526
531
  cleanup() {
527
532
  if (this.weekResetTimer) {
528
- clearTimeout(this.weekResetTimer);
533
+ this.adapter.clearTimeout(this.weekResetTimer);
534
+ this.weekResetTimer = null;
529
535
  }
530
536
  },
531
537
  };
package/lib/i18n/de.json CHANGED
@@ -342,5 +342,35 @@
342
342
  "Target salt concentration must be higher than the current salt concentration.": "Die Ziel-Salzkonzentration muss höher als die aktuelle Salzkonzentration sein.",
343
343
  "Reference value for raising the salt concentration in pool water.": "Referenzwert für die Erhöhung der Salzkonzentration im Poolwasser.",
344
344
  "Follow the salt system manufacturer instructions and add salt gradually.": "Bitte die Anweisungen des Salzsystem-Herstellers befolgen und das Salz allmählich hinzufügen.",
345
- "salt": "Salz"
345
+ "salt": "Salz",
346
+
347
+ "pool_insights_summary_ok": "Die Pool-Gesamtanalyse enthält keine Auffälligkeiten.",
348
+ "pool_insights_summary_info": "Die Pool-Gesamtanalyse enthält einige Hinweise zur Beobachtung.",
349
+ "pool_insights_summary_warning": "Die Pool-Gesamtanalyse hat mehrere Auffälligkeiten erkannt.",
350
+ "pool_insights_summary_completed": "Die Pool-Gesamtanalyse wurde erstellt.",
351
+ "pool_insights_label_recommendations": "Empfehlungen",
352
+ "pool_insights_observation_temperature_delta": "Hinweis: Die Pooltemperatur hat sich heute um etwa {delta} °C verändert.",
353
+ "pool_insights_observation_pump_runtime": "Hinweis: Die Pumpe lief heute {runtime}.",
354
+ "pool_insights_observation_pump_starts": "Hinweis: Heute wurden {count} Pumpenstarts erkannt.",
355
+ "pool_insights_observation_pump_error": "Hinweis: Der Pumpenfehlerstatus ist aktiv.",
356
+ "pool_insights_observation_not_enough_data": "Hinweis: Für die Pool-Gesamtanalyse sind derzeit nur begrenzte Daten verfügbar.",
357
+ "pool_insights_observation_consumption_today": "Hinweis: Der heutige Stromverbrauch beträgt etwa {kwh} kWh.",
358
+ "pool_insights_observation_costs_today": "Hinweis: Die heutigen Kosten betragen etwa {eur} EUR.",
359
+ "pool_insights_recommendation_temperature_low_change": "Hinweis: Die Temperatur hat sich heute nur gering verändert. Beobachte bei Bedarf Solar, Heizung und Laufzeit.",
360
+ "pool_insights_recommendation_many_pump_starts": "Hinweis: Es wurden viele Pumpenstarts erkannt. Bitte Taktung, Zeitfenster oder externe Anforderungen beobachten.",
361
+ "pool_insights_recommendation_pump_error": "Bitte Pumpenstatus, Stromverbrauch und angeschlossene Hardware prüfen.",
362
+ "pool_insights_recommendation_many_pv_starts": "Hinweis: Es wurden viele PV-Starts erkannt. Bitte beobachten, ob der Photovoltaik-Überschussbetrieb häufig taktet.",
363
+ "pool_insights_error_analysis_failed": "Hinweis: Die Pool-Gesamtanalyse konnte nicht abgeschlossen werden.",
364
+ "pool_insights_error_check_log": "Bitte das Log prüfen und die Analyse später erneut ausführen.",
365
+
366
+ "pool_insights_observation_solar_ran_today": "Der Solarbetrieb war heute aktiv.",
367
+ "pool_insights_observation_solar_not_ran_today": "Der Solarbetrieb war heute nicht aktiv.",
368
+ "pool_insights_observation_solar_gain_today": "Solarertrag ist heute mit etwa {kwh} kWh verfügbar.",
369
+ "pool_insights_observation_solar_evaluation_available": "Eine Solarbewertung ist verfügbar.",
370
+ "pool_insights_observation_pv_used_today": "PV-Unterstützung wurde heute genutzt.",
371
+ "pool_insights_observation_pv_evaluation_available": "Eine PV-Bewertung ist verfügbar.",
372
+ "pool_insights_observation_pv_runtime_today": "PV-Unterstützung lief heute {minutes} Minuten.",
373
+ "pool_insights_observation_ph_evaluation_available": "Eine pH-Bewertung ist verfügbar.",
374
+ "pool_insights_observation_tds_evaluation_available": "Eine TDS-Bewertung ist verfügbar.",
375
+ "pool_insights_observation_orp_evaluation_available": "Eine ORP-Bewertung ist verfügbar."
346
376
  }
package/lib/i18n/en.json CHANGED
@@ -346,13 +346,13 @@
346
346
  "ORP value is high. Check whether the measurement is plausible and evaluate the water values together.": "ORP value is high. Check whether the measurement is plausible and evaluate the water values together.",
347
347
  "ORP value is within the configured reference range.": "ORP value is within the configured reference range.",
348
348
  "unknown": "unknown",
349
- "not enough data": "not enough data",
349
+
350
350
  "Current ORP value": "Current ORP value",
351
351
  "pH reference": "pH reference",
352
352
  "Status": "Status",
353
- "Recommendation": "Recommendation",
353
+
354
354
  "ORP evaluation is disabled.": "ORP evaluation is disabled.",
355
-
355
+
356
356
  "Calculated amount": "Calculated amount",
357
357
  "Reference value based on common manufacturer dosage.": "Reference value based on common manufacturer dosage.",
358
358
  "Follow the manufacturer instructions and re-measure afterwards.": "Follow the manufacturer instructions and re-measure afterwards.",
@@ -369,5 +369,35 @@
369
369
  "Target salt concentration must be higher than the current salt concentration.": "Target salt concentration must be higher than the current salt concentration.",
370
370
  "Reference value for raising the salt concentration in pool water.": "Reference value for raising the salt concentration in pool water.",
371
371
  "Follow the salt system manufacturer instructions and add salt gradually.": "Follow the salt system manufacturer instructions and add salt gradually.",
372
- "salt": "salt"
372
+ "salt": "salt",
373
+
374
+ "pool_insights_summary_ok": "The pool overall analysis contains no anomalies.",
375
+ "pool_insights_summary_info": "The pool overall analysis contains some notes to observe.",
376
+ "pool_insights_summary_warning": "The pool overall analysis detected several anomalies.",
377
+ "pool_insights_summary_completed": "The pool overall analysis has been created.",
378
+ "pool_insights_label_recommendations": "Recommendations",
379
+ "pool_insights_observation_temperature_delta": "Note: The pool temperature changed by about {delta} °C today.",
380
+ "pool_insights_observation_pump_runtime": "Note: The pump ran for {runtime} today.",
381
+ "pool_insights_observation_pump_starts": "Note: {count} pump starts were detected today.",
382
+ "pool_insights_observation_pump_error": "Note: The pump error status is active.",
383
+ "pool_insights_observation_not_enough_data": "Note: Only limited data is currently available for the pool overall analysis.",
384
+ "pool_insights_observation_consumption_today": "Note: Today’s power consumption is about {kwh} kWh.",
385
+ "pool_insights_observation_costs_today": "Note: Today’s costs are about {eur} EUR.",
386
+ "pool_insights_recommendation_temperature_low_change": "Note: The temperature changed only slightly today. Observe solar, heating and runtime if needed.",
387
+ "pool_insights_recommendation_many_pump_starts": "Note: Many pump starts were detected. Please observe cycling, time windows or external requests.",
388
+ "pool_insights_recommendation_pump_error": "Please check the pump status, power consumption and connected hardware.",
389
+ "pool_insights_recommendation_many_pv_starts": "Note: Many PV starts were detected. Please observe whether photovoltaic surplus operation cycles frequently.",
390
+ "pool_insights_error_analysis_failed": "Note: The pool overall analysis could not be completed.",
391
+ "pool_insights_error_check_log": "Please check the log and run the analysis again later.",
392
+
393
+ "pool_insights_observation_solar_ran_today": "Solar operation was active today.",
394
+ "pool_insights_observation_solar_not_ran_today": "Solar operation was not active today.",
395
+ "pool_insights_observation_solar_gain_today": "Solar yield is available today at about {kwh} kWh.",
396
+ "pool_insights_observation_solar_evaluation_available": "A solar evaluation is available.",
397
+ "pool_insights_observation_pv_used_today": "PV support was used today.",
398
+ "pool_insights_observation_pv_evaluation_available": "A PV evaluation is available.",
399
+ "pool_insights_observation_pv_runtime_today": "PV support ran for {minutes} minutes today.",
400
+ "pool_insights_observation_ph_evaluation_available": "A pH evaluation is available.",
401
+ "pool_insights_observation_tds_evaluation_available": "A TDS evaluation is available.",
402
+ "pool_insights_observation_orp_evaluation_available": "An ORP evaluation is available."
373
403
  }
package/lib/i18n/es.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "La concentración objetivo de sal debe ser superior a la concentración actual de sal.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Valor de referencia para aumentar la concentración de sal en el agua de la piscina.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Siga las instrucciones del fabricante del sistema de sal y añada sal gradualmente.",
368
- "salt": "sal"
368
+ "salt": "sal",
369
+
370
+ "pool_insights_summary_ok": "El análisis general de la piscina no contiene anomalías.",
371
+ "pool_insights_summary_info": "El análisis general de la piscina contiene algunas notas que conviene observar.",
372
+ "pool_insights_summary_warning": "El análisis general de la piscina detectó varias anomalías.",
373
+ "pool_insights_summary_completed": "Se ha creado el análisis general de la piscina.",
374
+ "pool_insights_label_recommendations": "Recomendaciones",
375
+ "pool_insights_observation_temperature_delta": "Nota: La temperatura de la piscina cambió hoy aproximadamente {delta} °C.",
376
+ "pool_insights_observation_pump_runtime": "Nota: La bomba funcionó hoy durante {runtime}.",
377
+ "pool_insights_observation_pump_starts": "Nota: Hoy se detectaron {count} arranques de la bomba.",
378
+ "pool_insights_observation_pump_error": "Nota: El estado de error de la bomba está activo.",
379
+ "pool_insights_observation_not_enough_data": "Nota: Actualmente solo hay datos limitados disponibles para el análisis general de la piscina.",
380
+ "pool_insights_observation_consumption_today": "Nota: El consumo eléctrico de hoy es de aproximadamente {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Nota: Los costes de hoy son de aproximadamente {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Nota: La temperatura cambió solo ligeramente hoy. Observe la energía solar, la calefacción y el tiempo de funcionamiento si es necesario.",
383
+ "pool_insights_recommendation_many_pump_starts": "Nota: Se detectaron muchos arranques de la bomba. Observe los ciclos, las ventanas horarias o las solicitudes externas.",
384
+ "pool_insights_recommendation_pump_error": "Compruebe el estado de la bomba, el consumo eléctrico y el hardware conectado.",
385
+ "pool_insights_recommendation_many_pv_starts": "Nota: Se detectaron muchos arranques FV. Observe si el funcionamiento con excedente fotovoltaico cicla con frecuencia.",
386
+ "pool_insights_error_analysis_failed": "Nota: No se pudo completar el análisis general de la piscina.",
387
+ "pool_insights_error_check_log": "Compruebe el registro y vuelva a ejecutar el análisis más tarde.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "El funcionamiento solar estuvo activo hoy.",
390
+ "pool_insights_observation_solar_not_ran_today": "El funcionamiento solar no estuvo activo hoy.",
391
+ "pool_insights_observation_solar_gain_today": "Hoy hay rendimiento solar disponible de aproximadamente {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "Hay una evaluación solar disponible.",
393
+ "pool_insights_observation_pv_used_today": "La asistencia PV se utilizó hoy.",
394
+ "pool_insights_observation_pv_evaluation_available": "Hay una evaluación PV disponible.",
395
+ "pool_insights_observation_pv_runtime_today": "La asistencia PV funcionó hoy durante {minutes} minutos.",
396
+ "pool_insights_observation_ph_evaluation_available": "Hay una evaluación de pH disponible.",
397
+ "pool_insights_observation_tds_evaluation_available": "Hay una evaluación de TDS disponible.",
398
+ "pool_insights_observation_orp_evaluation_available": "Hay una evaluación de ORP disponible."
369
399
  }
package/lib/i18n/fr.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "La concentration cible en sel doit être supérieure à la concentration actuelle en sel.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Valeur de référence pour augmenter la concentration en sel dans l’eau de la piscine.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Respectez les instructions du fabricant du système au sel et ajoutez le sel progressivement.",
368
- "salt": "sel"
368
+ "salt": "sel",
369
+
370
+ "pool_insights_summary_ok": "L’analyse globale de la piscine ne contient aucune anomalie.",
371
+ "pool_insights_summary_info": "L’analyse globale de la piscine contient quelques remarques à surveiller.",
372
+ "pool_insights_summary_warning": "L’analyse globale de la piscine a détecté plusieurs anomalies.",
373
+ "pool_insights_summary_completed": "L’analyse globale de la piscine a été créée.",
374
+ "pool_insights_label_recommendations": "Recommandations",
375
+ "pool_insights_observation_temperature_delta": "Remarque : la température de la piscine a changé d’environ {delta} °C aujourd’hui.",
376
+ "pool_insights_observation_pump_runtime": "Remarque : la pompe a fonctionné pendant {runtime} aujourd’hui.",
377
+ "pool_insights_observation_pump_starts": "Remarque : {count} démarrages de pompe ont été détectés aujourd’hui.",
378
+ "pool_insights_observation_pump_error": "Remarque : l’état d’erreur de la pompe est actif.",
379
+ "pool_insights_observation_not_enough_data": "Remarque : seules des données limitées sont actuellement disponibles pour l’analyse globale de la piscine.",
380
+ "pool_insights_observation_consumption_today": "Remarque : la consommation électrique d’aujourd’hui est d’environ {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Remarque : les coûts d’aujourd’hui sont d’environ {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Remarque : la température n’a que légèrement changé aujourd’hui. Surveillez le solaire, le chauffage et la durée de fonctionnement si nécessaire.",
383
+ "pool_insights_recommendation_many_pump_starts": "Remarque : de nombreux démarrages de pompe ont été détectés. Veuillez surveiller les cycles, les plages horaires ou les demandes externes.",
384
+ "pool_insights_recommendation_pump_error": "Veuillez vérifier l’état de la pompe, la consommation électrique et le matériel connecté.",
385
+ "pool_insights_recommendation_many_pv_starts": "Remarque : de nombreux démarrages PV ont été détectés. Veuillez surveiller si le fonctionnement sur surplus photovoltaïque cycle fréquemment.",
386
+ "pool_insights_error_analysis_failed": "Remarque : l’analyse globale de la piscine n’a pas pu être terminée.",
387
+ "pool_insights_error_check_log": "Veuillez vérifier le journal et relancer l’analyse plus tard.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Le fonctionnement solaire était actif aujourd’hui.",
390
+ "pool_insights_observation_solar_not_ran_today": "Le fonctionnement solaire n’était pas actif aujourd’hui.",
391
+ "pool_insights_observation_solar_gain_today": "Un rendement solaire est disponible aujourd’hui avec environ {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "Une évaluation solaire est disponible.",
393
+ "pool_insights_observation_pv_used_today": "L’assistance PV a été utilisée aujourd’hui.",
394
+ "pool_insights_observation_pv_evaluation_available": "Une évaluation PV est disponible.",
395
+ "pool_insights_observation_pv_runtime_today": "L’assistance PV a fonctionné pendant {minutes} minutes aujourd’hui.",
396
+ "pool_insights_observation_ph_evaluation_available": "Une évaluation du pH est disponible.",
397
+ "pool_insights_observation_tds_evaluation_available": "Une évaluation TDS est disponible.",
398
+ "pool_insights_observation_orp_evaluation_available": "Une évaluation ORP est disponible."
369
399
  }
package/lib/i18n/it.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "La concentrazione target di sale deve essere superiore alla concentrazione attuale di sale.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Valore di riferimento per aumentare la concentrazione di sale nell’acqua della piscina.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Seguire le istruzioni del produttore del sistema a sale e aggiungere il sale gradualmente.",
368
- "salt": "sale"
368
+ "salt": "sale",
369
+
370
+ "pool_insights_summary_ok": "L’analisi complessiva della piscina non contiene anomalie.",
371
+ "pool_insights_summary_info": "L’analisi complessiva della piscina contiene alcune note da osservare.",
372
+ "pool_insights_summary_warning": "L’analisi complessiva della piscina ha rilevato diverse anomalie.",
373
+ "pool_insights_summary_completed": "L’analisi complessiva della piscina è stata creata.",
374
+ "pool_insights_label_recommendations": "Raccomandazioni",
375
+ "pool_insights_observation_temperature_delta": "Nota: oggi la temperatura della piscina è cambiata di circa {delta} °C.",
376
+ "pool_insights_observation_pump_runtime": "Nota: oggi la pompa ha funzionato per {runtime}.",
377
+ "pool_insights_observation_pump_starts": "Nota: oggi sono stati rilevati {count} avvii della pompa.",
378
+ "pool_insights_observation_pump_error": "Nota: lo stato di errore della pompa è attivo.",
379
+ "pool_insights_observation_not_enough_data": "Nota: al momento sono disponibili solo dati limitati per l’analisi complessiva della piscina.",
380
+ "pool_insights_observation_consumption_today": "Nota: il consumo elettrico di oggi è di circa {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Nota: i costi di oggi sono di circa {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Nota: oggi la temperatura è cambiata solo leggermente. Osservare solare, riscaldamento e runtime se necessario.",
383
+ "pool_insights_recommendation_many_pump_starts": "Nota: sono stati rilevati molti avvii della pompa. Controllare cicli, fasce orarie o richieste esterne.",
384
+ "pool_insights_recommendation_pump_error": "Controllare lo stato della pompa, il consumo elettrico e l’hardware collegato.",
385
+ "pool_insights_recommendation_many_pv_starts": "Nota: sono stati rilevati molti avvii FV. Controllare se il funzionamento con surplus fotovoltaico cicla frequentemente.",
386
+ "pool_insights_error_analysis_failed": "Nota: non è stato possibile completare l’analisi complessiva della piscina.",
387
+ "pool_insights_error_check_log": "Controllare il log ed eseguire di nuovo l’analisi più tardi.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Il funzionamento solare è stato attivo oggi.",
390
+ "pool_insights_observation_solar_not_ran_today": "Il funzionamento solare non è stato attivo oggi.",
391
+ "pool_insights_observation_solar_gain_today": "Oggi è disponibile un rendimento solare di circa {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "È disponibile una valutazione solare.",
393
+ "pool_insights_observation_pv_used_today": "Il supporto PV è stato utilizzato oggi.",
394
+ "pool_insights_observation_pv_evaluation_available": "È disponibile una valutazione PV.",
395
+ "pool_insights_observation_pv_runtime_today": "Il supporto PV ha funzionato oggi per {minutes} minuti.",
396
+ "pool_insights_observation_ph_evaluation_available": "È disponibile una valutazione pH.",
397
+ "pool_insights_observation_tds_evaluation_available": "È disponibile una valutazione TDS.",
398
+ "pool_insights_observation_orp_evaluation_available": "È disponibile una valutazione ORP."
369
399
  }
package/lib/i18n/nl.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "De doel-zoutconcentratie moet hoger zijn dan de huidige zoutconcentratie.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Referentiewaarde voor het verhogen van de zoutconcentratie in het zwembadwater.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Volg de instructies van de fabrikant van het zoutsysteem en voeg zout geleidelijk toe.",
368
- "salt": "zout"
368
+ "salt": "zout",
369
+
370
+ "pool_insights_summary_ok": "De algemene zwembad analyse bevat geen afwijkingen.",
371
+ "pool_insights_summary_info": "De algemene zwembad analyse bevat enkele aandachtspunten.",
372
+ "pool_insights_summary_warning": "De algemene zwembad analyse heeft meerdere afwijkingen gedetecteerd.",
373
+ "pool_insights_summary_completed": "De algemene zwembad analyse is aangemaakt.",
374
+ "pool_insights_label_recommendations": "Aanbevelingen",
375
+ "pool_insights_observation_temperature_delta": "Opmerking: de zwembadtemperatuur is vandaag met ongeveer {delta} °C veranderd.",
376
+ "pool_insights_observation_pump_runtime": "Opmerking: de pomp heeft vandaag {runtime} gedraaid.",
377
+ "pool_insights_observation_pump_starts": "Opmerking: vandaag zijn {count} pompstarts gedetecteerd.",
378
+ "pool_insights_observation_pump_error": "Opmerking: de foutstatus van de pomp is actief.",
379
+ "pool_insights_observation_not_enough_data": "Opmerking: er zijn momenteel slechts beperkte gegevens beschikbaar voor de algemene zwembad analyse.",
380
+ "pool_insights_observation_consumption_today": "Opmerking: het stroomverbruik van vandaag is ongeveer {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Opmerking: de kosten van vandaag zijn ongeveer {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Opmerking: de temperatuur is vandaag slechts licht veranderd. Observeer indien nodig solar, verwarming en runtime.",
383
+ "pool_insights_recommendation_many_pump_starts": "Opmerking: er zijn veel pompstarts gedetecteerd. Let op schakelfrequentie, tijdvensters of externe aanvragen.",
384
+ "pool_insights_recommendation_pump_error": "Controleer de pompstatus, het stroomverbruik en de aangesloten hardware.",
385
+ "pool_insights_recommendation_many_pv_starts": "Opmerking: er zijn veel PV-starts gedetecteerd. Controleer of het bedrijf op fotovoltaïsch overschot vaak schakelt.",
386
+ "pool_insights_error_analysis_failed": "Opmerking: de algemene zwembad analyse kon niet worden voltooid.",
387
+ "pool_insights_error_check_log": "Controleer het logboek en voer de analyse later opnieuw uit.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Solarbedrijf was vandaag actief.",
390
+ "pool_insights_observation_solar_not_ran_today": "Solarbedrijf was vandaag niet actief.",
391
+ "pool_insights_observation_solar_gain_today": "Er is vandaag solaropbrengst beschikbaar van ongeveer {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "Er is een solarbeoordeling beschikbaar.",
393
+ "pool_insights_observation_pv_used_today": "PV-ondersteuning is vandaag gebruikt.",
394
+ "pool_insights_observation_pv_evaluation_available": "Er is een PV-beoordeling beschikbaar.",
395
+ "pool_insights_observation_pv_runtime_today": "PV-ondersteuning liep vandaag {minutes} minuten.",
396
+ "pool_insights_observation_ph_evaluation_available": "Er is een pH-beoordeling beschikbaar.",
397
+ "pool_insights_observation_tds_evaluation_available": "Er is een TDS-beoordeling beschikbaar.",
398
+ "pool_insights_observation_orp_evaluation_available": "Er is een ORP-beoordeling beschikbaar."
369
399
  }
package/lib/i18n/pl.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "Docelowe stężenie soli musi być wyższe niż aktualne stężenie soli.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Wartość referencyjna do podnoszenia stężenia soli w wodzie basenowej.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Przestrzegaj instrukcji producenta systemu solnego i dodawaj sól stopniowo.",
368
- "salt": "sól"
368
+ "salt": "sól",
369
+
370
+ "pool_insights_summary_ok": "Ogólna analiza basenu nie zawiera nieprawidłowości.",
371
+ "pool_insights_summary_info": "Ogólna analiza basenu zawiera kilka uwag do obserwacji.",
372
+ "pool_insights_summary_warning": "Ogólna analiza basenu wykryła kilka nieprawidłowości.",
373
+ "pool_insights_summary_completed": "Ogólna analiza basenu została utworzona.",
374
+ "pool_insights_label_recommendations": "Zalecenia",
375
+ "pool_insights_observation_temperature_delta": "Uwaga: temperatura basenu zmieniła się dziś o około {delta} °C.",
376
+ "pool_insights_observation_pump_runtime": "Uwaga: pompa pracowała dziś przez {runtime}.",
377
+ "pool_insights_observation_pump_starts": "Uwaga: dziś wykryto {count} uruchomień pompy.",
378
+ "pool_insights_observation_pump_error": "Uwaga: status błędu pompy jest aktywny.",
379
+ "pool_insights_observation_not_enough_data": "Uwaga: obecnie dostępne są tylko ograniczone dane do ogólnej analizy basenu.",
380
+ "pool_insights_observation_consumption_today": "Uwaga: dzisiejsze zużycie energii wynosi około {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Uwaga: dzisiejsze koszty wynoszą około {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Uwaga: temperatura zmieniła się dziś tylko nieznacznie. W razie potrzeby obserwuj solar, ogrzewanie i runtime.",
383
+ "pool_insights_recommendation_many_pump_starts": "Uwaga: wykryto wiele uruchomień pompy. Obserwuj taktowanie, okna czasowe lub żądania zewnętrzne.",
384
+ "pool_insights_recommendation_pump_error": "Sprawdź status pompy, zużycie energii i podłączony sprzęt.",
385
+ "pool_insights_recommendation_many_pv_starts": "Uwaga: wykryto wiele uruchomień PV. Obserwuj, czy praca z nadwyżką fotowoltaiczną często się przełącza.",
386
+ "pool_insights_error_analysis_failed": "Uwaga: nie udało się zakończyć ogólnej analizy basenu.",
387
+ "pool_insights_error_check_log": "Sprawdź log i uruchom analizę ponownie później.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Praca solarna była dziś aktywna.",
390
+ "pool_insights_observation_solar_not_ran_today": "Praca solarna nie była dziś aktywna.",
391
+ "pool_insights_observation_solar_gain_today": "Dostępny jest dziś uzysk solarny około {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "Dostępna jest ocena solarna.",
393
+ "pool_insights_observation_pv_used_today": "Wsparcie PV zostało dziś użyte.",
394
+ "pool_insights_observation_pv_evaluation_available": "Dostępna jest ocena PV.",
395
+ "pool_insights_observation_pv_runtime_today": "Wsparcie PV działało dziś przez {minutes} minut.",
396
+ "pool_insights_observation_ph_evaluation_available": "Dostępna jest ocena pH.",
397
+ "pool_insights_observation_tds_evaluation_available": "Dostępna jest ocena TDS.",
398
+ "pool_insights_observation_orp_evaluation_available": "Dostępna jest ocena ORP."
369
399
  }
package/lib/i18n/pt.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "A concentração alvo de sal deve ser superior à concentração atual de sal.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Valor de referência para aumentar a concentração de sal na água da piscina.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Siga as instruções do fabricante do sistema de sal e adicione sal gradualmente.",
368
- "salt": "sal"
368
+ "salt": "sal",
369
+
370
+ "pool_insights_summary_ok": "A análise geral da piscina não contém anomalias.",
371
+ "pool_insights_summary_info": "A análise geral da piscina contém algumas notas a observar.",
372
+ "pool_insights_summary_warning": "A análise geral da piscina detetou várias anomalias.",
373
+ "pool_insights_summary_completed": "A análise geral da piscina foi criada.",
374
+ "pool_insights_label_recommendations": "Recomendações",
375
+ "pool_insights_observation_temperature_delta": "Nota: A temperatura da piscina mudou cerca de {delta} °C hoje.",
376
+ "pool_insights_observation_pump_runtime": "Nota: A bomba funcionou durante {runtime} hoje.",
377
+ "pool_insights_observation_pump_starts": "Nota: Foram detetados {count} arranques da bomba hoje.",
378
+ "pool_insights_observation_pump_error": "Nota: O estado de erro da bomba está ativo.",
379
+ "pool_insights_observation_not_enough_data": "Nota: Atualmente só há dados limitados disponíveis para a análise geral da piscina.",
380
+ "pool_insights_observation_consumption_today": "Nota: O consumo de energia de hoje é de cerca de {kwh} kWh.",
381
+ "pool_insights_observation_costs_today": "Nota: Os custos de hoje são de cerca de {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Nota: A temperatura mudou apenas ligeiramente hoje. Observe o solar, o aquecimento e o runtime, se necessário.",
383
+ "pool_insights_recommendation_many_pump_starts": "Nota: Foram detetados muitos arranques da bomba. Observe os ciclos, janelas horárias ou pedidos externos.",
384
+ "pool_insights_recommendation_pump_error": "Verifique o estado da bomba, o consumo de energia e o hardware ligado.",
385
+ "pool_insights_recommendation_many_pv_starts": "Nota: Foram detetados muitos arranques FV. Observe se a operação com excedente fotovoltaico alterna frequentemente.",
386
+ "pool_insights_error_analysis_failed": "Nota: Não foi possível concluir a análise geral da piscina.",
387
+ "pool_insights_error_check_log": "Verifique o registo e execute a análise novamente mais tarde.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "A operação solar esteve ativa hoje.",
390
+ "pool_insights_observation_solar_not_ran_today": "A operação solar não esteve ativa hoje.",
391
+ "pool_insights_observation_solar_gain_today": "Está disponível rendimento solar hoje de cerca de {kwh} kWh.",
392
+ "pool_insights_observation_solar_evaluation_available": "Está disponível uma avaliação solar.",
393
+ "pool_insights_observation_pv_used_today": "O apoio PV foi utilizado hoje.",
394
+ "pool_insights_observation_pv_evaluation_available": "Está disponível uma avaliação PV.",
395
+ "pool_insights_observation_pv_runtime_today": "O apoio PV funcionou hoje durante {minutes} minutos.",
396
+ "pool_insights_observation_ph_evaluation_available": "Está disponível uma avaliação de pH.",
397
+ "pool_insights_observation_tds_evaluation_available": "Está disponível uma avaliação TDS.",
398
+ "pool_insights_observation_orp_evaluation_available": "Está disponível uma avaliação ORP."
369
399
  }
package/lib/i18n/ru.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "Целевая концентрация соли должна быть выше текущей концентрации соли.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Ориентировочное значение для повышения концентрации соли в воде бассейна.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Следуйте инструкциям производителя солевой системы и добавляйте соль постепенно.",
368
- "salt": "соль"
368
+ "salt": "соль",
369
+
370
+ "pool_insights_summary_ok": "Общий анализ бассейна не содержит отклонений.",
371
+ "pool_insights_summary_info": "Общий анализ бассейна содержит несколько замечаний для наблюдения.",
372
+ "pool_insights_summary_warning": "Общий анализ бассейна выявил несколько отклонений.",
373
+ "pool_insights_summary_completed": "Общий анализ бассейна создан.",
374
+ "pool_insights_label_recommendations": "Рекомендации",
375
+ "pool_insights_observation_temperature_delta": "Примечание: сегодня температура бассейна изменилась примерно на {delta} °C.",
376
+ "pool_insights_observation_pump_runtime": "Примечание: сегодня насос работал {runtime}.",
377
+ "pool_insights_observation_pump_starts": "Примечание: сегодня обнаружено {count} запусков насоса.",
378
+ "pool_insights_observation_pump_error": "Примечание: состояние ошибки насоса активно.",
379
+ "pool_insights_observation_not_enough_data": "Примечание: сейчас для общего анализа бассейна доступен только ограниченный объем данных.",
380
+ "pool_insights_observation_consumption_today": "Примечание: сегодняшнее потребление электроэнергии составляет около {kwh} кВт·ч.",
381
+ "pool_insights_observation_costs_today": "Примечание: сегодняшние затраты составляют около {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Примечание: сегодня температура изменилась лишь незначительно. При необходимости наблюдайте за solar, нагревом и runtime.",
383
+ "pool_insights_recommendation_many_pump_starts": "Примечание: обнаружено много запусков насоса. Проверьте циклы, временные окна или внешние запросы.",
384
+ "pool_insights_recommendation_pump_error": "Проверьте состояние насоса, потребление электроэнергии и подключенное оборудование.",
385
+ "pool_insights_recommendation_many_pv_starts": "Примечание: обнаружено много запусков PV. Проверьте, часто ли циклирует работа от избытка фотоэлектрической энергии.",
386
+ "pool_insights_error_analysis_failed": "Примечание: общий анализ бассейна не удалось завершить.",
387
+ "pool_insights_error_check_log": "Проверьте журнал и запустите анализ позже снова.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Солнечный режим сегодня был активен.",
390
+ "pool_insights_observation_solar_not_ran_today": "Солнечный режим сегодня не был активен.",
391
+ "pool_insights_observation_solar_gain_today": "Сегодня доступна солнечная выработка около {kwh} кВт·ч.",
392
+ "pool_insights_observation_solar_evaluation_available": "Доступна оценка solar.",
393
+ "pool_insights_observation_pv_used_today": "Поддержка PV сегодня использовалась.",
394
+ "pool_insights_observation_pv_evaluation_available": "Доступна оценка PV.",
395
+ "pool_insights_observation_pv_runtime_today": "Поддержка PV сегодня работала {minutes} минут.",
396
+ "pool_insights_observation_ph_evaluation_available": "Доступна оценка pH.",
397
+ "pool_insights_observation_tds_evaluation_available": "Доступна оценка TDS.",
398
+ "pool_insights_observation_orp_evaluation_available": "Доступна оценка ORP."
369
399
  }
package/lib/i18n/uk.json CHANGED
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "Цільова концентрація солі має бути вищою за поточну концентрацію солі.",
366
366
  "Reference value for raising the salt concentration in pool water.": "Орієнтовне значення для підвищення концентрації солі у воді басейну.",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "Дотримуйтесь інструкцій виробника сольової системи та додавайте сіль поступово.",
368
- "salt": "сіль"
368
+ "salt": "сіль",
369
+
370
+ "pool_insights_summary_ok": "Загальний аналіз басейну не містить відхилень.",
371
+ "pool_insights_summary_info": "Загальний аналіз басейну містить кілька зауважень для спостереження.",
372
+ "pool_insights_summary_warning": "Загальний аналіз басейну виявив кілька відхилень.",
373
+ "pool_insights_summary_completed": "Загальний аналіз басейну створено.",
374
+ "pool_insights_label_recommendations": "Рекомендації",
375
+ "pool_insights_observation_temperature_delta": "Примітка: сьогодні температура басейну змінилася приблизно на {delta} °C.",
376
+ "pool_insights_observation_pump_runtime": "Примітка: сьогодні насос працював {runtime}.",
377
+ "pool_insights_observation_pump_starts": "Примітка: сьогодні виявлено {count} запусків насоса.",
378
+ "pool_insights_observation_pump_error": "Примітка: стан помилки насоса активний.",
379
+ "pool_insights_observation_not_enough_data": "Примітка: наразі для загального аналізу басейну доступні лише обмежені дані.",
380
+ "pool_insights_observation_consumption_today": "Примітка: сьогоднішнє споживання електроенергії становить приблизно {kwh} кВт·год.",
381
+ "pool_insights_observation_costs_today": "Примітка: сьогоднішні витрати становлять приблизно {eur} EUR.",
382
+ "pool_insights_recommendation_temperature_low_change": "Примітка: сьогодні температура змінилася лише незначно. За потреби спостерігайте за solar, нагріванням і runtime.",
383
+ "pool_insights_recommendation_many_pump_starts": "Примітка: виявлено багато запусків насоса. Перевірте цикли, часові вікна або зовнішні запити.",
384
+ "pool_insights_recommendation_pump_error": "Перевірте стан насоса, споживання електроенергії та підключене обладнання.",
385
+ "pool_insights_recommendation_many_pv_starts": "Примітка: виявлено багато запусків PV. Перевірте, чи часто циклює робота від надлишку фотоелектричної енергії.",
386
+ "pool_insights_error_analysis_failed": "Примітка: загальний аналіз басейну не вдалося завершити.",
387
+ "pool_insights_error_check_log": "Перевірте журнал і запустіть аналіз повторно пізніше.",
388
+
389
+ "pool_insights_observation_solar_ran_today": "Сонячний режим сьогодні був активний.",
390
+ "pool_insights_observation_solar_not_ran_today": "Сонячний режим сьогодні не був активний.",
391
+ "pool_insights_observation_solar_gain_today": "Сьогодні доступний сонячний виробіток близько {kwh} кВт·год.",
392
+ "pool_insights_observation_solar_evaluation_available": "Доступна оцінка solar.",
393
+ "pool_insights_observation_pv_used_today": "Підтримку PV сьогодні використано.",
394
+ "pool_insights_observation_pv_evaluation_available": "Доступна оцінка PV.",
395
+ "pool_insights_observation_pv_runtime_today": "Підтримка PV сьогодні працювала {minutes} хвилин.",
396
+ "pool_insights_observation_ph_evaluation_available": "Доступна оцінка pH.",
397
+ "pool_insights_observation_tds_evaluation_available": "Доступна оцінка TDS.",
398
+ "pool_insights_observation_orp_evaluation_available": "Доступна оцінка ORP."
369
399
  }
@@ -365,5 +365,35 @@
365
365
  "Target salt concentration must be higher than the current salt concentration.": "目标盐浓度必须高于当前盐浓度。",
366
366
  "Reference value for raising the salt concentration in pool water.": "用于提高泳池水中盐浓度的参考值。",
367
367
  "Follow the salt system manufacturer instructions and add salt gradually.": "请遵循盐系统制造商说明,并逐步加盐。",
368
- "salt": "盐"
368
+ "salt": "盐",
369
+
370
+ "pool_insights_summary_ok": "泳池整体分析未发现异常。",
371
+ "pool_insights_summary_info": "泳池整体分析包含一些需要观察的提示。",
372
+ "pool_insights_summary_warning": "泳池整体分析检测到多项异常。",
373
+ "pool_insights_summary_completed": "泳池整体分析已创建。",
374
+ "pool_insights_label_recommendations": "建议",
375
+ "pool_insights_observation_temperature_delta": "提示:今天泳池温度变化约 {delta} °C。",
376
+ "pool_insights_observation_pump_runtime": "提示:今天水泵运行了 {runtime}。",
377
+ "pool_insights_observation_pump_starts": "提示:今天检测到 {count} 次水泵启动。",
378
+ "pool_insights_observation_pump_error": "提示:水泵错误状态处于激活状态。",
379
+ "pool_insights_observation_not_enough_data": "提示:当前用于泳池整体分析的数据有限。",
380
+ "pool_insights_observation_consumption_today": "提示:今天的耗电量约为 {kwh} kWh。",
381
+ "pool_insights_observation_costs_today": "提示:今天的费用约为 {eur} EUR。",
382
+ "pool_insights_recommendation_temperature_low_change": "提示:今天温度变化很小。如有需要,请观察 solar、加热和 runtime。",
383
+ "pool_insights_recommendation_many_pump_starts": "提示:检测到多次水泵启动。请观察循环、时间窗口或外部请求。",
384
+ "pool_insights_recommendation_pump_error": "请检查水泵状态、耗电量和已连接的硬件。",
385
+ "pool_insights_recommendation_many_pv_starts": "提示:检测到多次 PV 启动。请观察光伏余电运行是否频繁循环。",
386
+ "pool_insights_error_analysis_failed": "提示:无法完成泳池整体分析。",
387
+ "pool_insights_error_check_log": "请检查日志,稍后再次运行分析。",
388
+
389
+ "pool_insights_observation_solar_ran_today": "今天太阳能运行处于活动状态。",
390
+ "pool_insights_observation_solar_not_ran_today": "今天太阳能运行未处于活动状态。",
391
+ "pool_insights_observation_solar_gain_today": "今天有太阳能收益,约 {kwh} kWh。",
392
+ "pool_insights_observation_solar_evaluation_available": "已有太阳能评估。",
393
+ "pool_insights_observation_pv_used_today": "今天使用了 PV 支持。",
394
+ "pool_insights_observation_pv_evaluation_available": "已有 PV 评估。",
395
+ "pool_insights_observation_pv_runtime_today": "今天 PV 支持运行了 {minutes} 分钟。",
396
+ "pool_insights_observation_ph_evaluation_available": "已有 pH 评估。",
397
+ "pool_insights_observation_tds_evaluation_available": "已有 TDS 评估。",
398
+ "pool_insights_observation_orp_evaluation_available": "已有 ORP 评估。"
369
399
  }