diff --git a/lang/el.lang.json b/lang/el.lang.json index 5c5ef7cc..8d66ea61 100644 --- a/lang/el.lang.json +++ b/lang/el.lang.json @@ -61,6 +61,10 @@ "Light": "Φωτεινό", "Auto": "Αυτόματο" }, + "dataagedisplay": { + "DataAge": "Τελευταία ενημέρωση πρίν από", + "SecondsSince": "0 δευτερόλεπτα | 1 δευτερόλεπτα | {n} δευτερόλεπτα" + }, "apiresponse": { "1001": "Οι ρυθμίσεις αποθηκεύτηκαν!", "1002": "Δεν βρέθηκαν τιμές!", @@ -134,8 +138,6 @@ "LiveData": "Τηλεμετρία", "SerialNumber": "Σειριακός Αριθμός: ", "CurrentLimit": "Τρέχον Όριο: ", - "DataAge": "Τελευταία ενημέρωση πρίν από: ", - "Seconds": "{val} δευτερόλεπτα", "ShowSetInverterLimit": "Εμφάνιση/Ρύθμιση ορίου μετατροπέα", "TurnOnOff": "Ενεργοποίηση/απενεργοποίηση του μετατροπέα", "ShowInverterInfo": "Εμφάνιση πληροφοριών του μετατροπέα", diff --git a/lang/es.lang.json b/lang/es.lang.json index 1918f680..f25408b5 100644 --- a/lang/es.lang.json +++ b/lang/es.lang.json @@ -61,6 +61,10 @@ "Light": "Claro", "Auto": "Automático" }, + "dataagedisplay": { + "DataAge": "Edad de los Datos", + "SecondsSince": "0 segundos | 1 segundos | {n} segundos" + }, "apiresponse": { "1001": "¡Opciones guardadas!", "1002": "No se encontraron valores", @@ -134,8 +138,6 @@ "LiveData": "Datos en Vivo", "SerialNumber": "Número de Serie: ", "CurrentLimit": "Límite de Corriente: ", - "DataAge": "Edad de los Datos: ", - "Seconds": "{val} segundos", "ShowSetInverterLimit": "Ver / Establecer Límite del Inversor", "TurnOnOff": "Encender/Apagar el Inversor", "ShowInverterInfo": "Ver Información del Inversor", diff --git a/lang/it.lang.json b/lang/it.lang.json index 1f537532..0c48c921 100644 --- a/lang/it.lang.json +++ b/lang/it.lang.json @@ -61,6 +61,10 @@ "Light": "Chiaro", "Auto": "Automatico" }, + "dataagedisplay": { + "DataAge": "Aggiornamento Dati", + "SecondsSince": "0 secondi | 1 secondi | {n} secondi" + }, "apiresponse": { "1001": "Settings saved!", "1002": "No values found!", @@ -134,8 +138,6 @@ "LiveData": "Dati in tempo reale", "SerialNumber": "Numero seriale: ", "CurrentLimit": "Limite attuale: ", - "DataAge": "Aggiornamento Dati: ", - "Seconds": "{val} secondi", "ShowSetInverterLimit": "Mostra / Imposta Limite di Potenza", "TurnOnOff": "Accendi/Spegni Inverter", "ShowInverterInfo": "Mostra info Inverter", diff --git a/lang/pl.lang.json b/lang/pl.lang.json index 454635b8..e56ed24f 100644 --- a/lang/pl.lang.json +++ b/lang/pl.lang.json @@ -61,6 +61,10 @@ "Light": "Jasny", "Auto": "Automatyczny" }, + "dataagedisplay": { + "DataAge": "Aktualizacja danych", + "SecondsSince": "0 sekund | 1 sekund | {n} sekund" + }, "apiresponse": { "1001": "Ustawienia zapisane!", "1002": "Nie znaleziono żadnych wartości!", @@ -134,8 +138,6 @@ "LiveData": "Dane na żywo", "SerialNumber": "Numer seryjny: ", "CurrentLimit": "Aktualny limit: ", - "DataAge": "Aktualizacja danych: ", - "Seconds": "{val} sekund", "ShowSetInverterLimit": "Pokaż / ustaw limit mocy", "TurnOnOff": "Włącz /wyłącz falownik", "ShowInverterInfo": "Pokaż informacje o falowniku", diff --git a/src/WebApi_ws_live.cpp b/src/WebApi_ws_live.cpp index 8b7518a5..d3e2a12d 100644 --- a/src/WebApi_ws_live.cpp +++ b/src/WebApi_ws_live.cpp @@ -146,6 +146,7 @@ void WebApiWsLiveClass::generateInverterCommonJsonResponse(JsonObject& root, std root["name"] = inv->name(); root["order"] = inv_cfg->Order; root["data_age"] = (millis() - inv->Statistics()->getLastUpdate()) / 1000; + root["data_age_ms"] = millis() - inv->Statistics()->getLastUpdate(); root["poll_enabled"] = inv->getEnablePolling(); root["reachable"] = inv->isReachable(); root["producing"] = inv->isProducing(); diff --git a/webapp/src/components/DataAgeDisplay.vue b/webapp/src/components/DataAgeDisplay.vue new file mode 100644 index 00000000..1b329644 --- /dev/null +++ b/webapp/src/components/DataAgeDisplay.vue @@ -0,0 +1,34 @@ + + + diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index a6ddae70..7dce1fd4 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -46,6 +46,10 @@ "Light": "Hell", "Auto": "Automatisch" }, + "dataagedisplay": { + "DataAge": "Letzte Aktualisierung", + "SecondsSince": "vor 0 Sekunden | vor 1 Sekunde | vor {n} Sekunden" + }, "apiresponse": { "1001": "Einstellungen gespeichert!", "1002": "Keine Werte gefunden!", @@ -119,8 +123,6 @@ "LiveData": "Live-Daten", "SerialNumber": "Seriennummer: ", "CurrentLimit": "Aktuelles Limit: ", - "DataAge": "Letzte Aktualisierung: ", - "Seconds": "vor {val} Sekunden", "ShowSetInverterLimit": "Zeige / Setze Wechselrichterlimit", "TurnOnOff": "Schalte Wechselrichter ein oder aus", "ShowInverterInfo": "Zeige Wechselrichter-Informationen", diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index ef318ee6..7213f7b9 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -46,6 +46,10 @@ "Light": "Light", "Auto": "Auto" }, + "dataagedisplay": { + "DataAge": "Data Age", + "SecondsSince": "0 seconds | 1 second | {n} seconds" + }, "apiresponse": { "1001": "Settings saved!", "1002": "No values found!", @@ -119,8 +123,6 @@ "LiveData": "Live Data", "SerialNumber": "Serial Number: ", "CurrentLimit": "Current Limit: ", - "DataAge": "Data Age: ", - "Seconds": "{val} seconds", "ShowSetInverterLimit": "Show / Set Inverter Limit", "TurnOnOff": "Turn Inverter on/off", "ShowInverterInfo": "Show Inverter Info", diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index 25eaf569..ae593eb9 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -46,6 +46,10 @@ "Light": "Clair", "Auto": "Auto" }, + "dataagedisplay": { + "DataAge": "Âge des données", + "SecondsSince": "0 secondes | 1 seconde | {n} secondes" + }, "apiresponse": { "1001": "Paramètres enregistrés !", "1002": "Aucune valeur trouvée !", @@ -119,8 +123,6 @@ "LiveData": "Données en direct", "SerialNumber": "Numéro de série : ", "CurrentLimit": "Limite de courant : ", - "DataAge": "Âge des données : ", - "Seconds": "{val} secondes", "ShowSetInverterLimit": "Afficher / Régler la limite de l'onduleur", "TurnOnOff": "Allumer / Eteindre l'onduleur", "ShowInverterInfo": "Afficher les informations sur l'onduleur", diff --git a/webapp/src/types/LiveDataStatus.ts b/webapp/src/types/LiveDataStatus.ts index c681f1d9..a2944bc1 100644 --- a/webapp/src/types/LiveDataStatus.ts +++ b/webapp/src/types/LiveDataStatus.ts @@ -36,6 +36,7 @@ export interface Inverter { name: string; order: number; data_age: number; + data_age_ms: number; poll_enabled: boolean; reachable: boolean; producing: boolean; diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 4b9f848d..20900e13 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -98,11 +98,7 @@ >{{ $n(inverter.limit_relative / 100, 'percentOneDigit') }}
- {{ $t('home.DataAge') }} - {{ $t('home.Seconds', { val: $n(inverter.data_age) }) }} - +
@@ -504,6 +500,7 @@