diff --git a/webapp/src/components/DevInfo.vue b/webapp/src/components/DevInfo.vue index 7e4f5fb..df049b7 100644 --- a/webapp/src/components/DevInfo.vue +++ b/webapp/src/components/DevInfo.vue @@ -6,6 +6,18 @@ + + + + + + + + + + + + @@ -61,6 +73,16 @@ export default defineComponent({ const version_patch = Math.floor((value - version_major * 10000 - version_minor * 100)); return version_major + "." + version_minor + "." + version_patch; }; + }, + productionYear() { + return() => { + return ((parseInt(this.devInfoList.serial.toString(), 16) >> (7 * 4)) & 0xF) + 2014; + } + }, + productionWeek() { + return() => { + return ((parseInt(this.devInfoList.serial.toString(), 16) >> (5 * 4)) & 0xFF).toString(16); + } } } }); diff --git a/webapp/src/locales/de.json b/webapp/src/locales/de.json index cbbd873..dbda418 100644 --- a/webapp/src/locales/de.json +++ b/webapp/src/locales/de.json @@ -129,6 +129,9 @@ "NoInfo": "Keine Informationen verfügbar", "NoInfoLong": "Bisher wurden noch keine gültigen Daten vom Wechselrichter empfangen. Versuche es weiter...", "UnknownModel": "Unbekanntes Modell! Bitte melden Sie die \"Hardware Teilenummer\" und das Modell (z.B. HM-350) hier als Problem.", + "Serial": "Seriennummer", + "ProdYear": "Produktionsjahr", + "ProdWeek": "Produktionswoche", "Model": "Modell", "DetectedMaxPower": "Ermittelte max. Leistung", "BootloaderVersion": "Bootloader-Version", diff --git a/webapp/src/locales/en.json b/webapp/src/locales/en.json index 0cecd1a..bc14ef3 100644 --- a/webapp/src/locales/en.json +++ b/webapp/src/locales/en.json @@ -129,6 +129,9 @@ "NoInfo": "No Information available", "NoInfoLong": "Did not receive any valid data from the inverter till now. Still trying...", "UnknownModel": "Unknown model! Please report the \"Hardware Part Number\" and model (e.g. HM-350) as an issue here.", + "Serial": "Serial", + "ProdYear": "Production Year", + "ProdWeek": "Production Week", "Model": "Model", "DetectedMaxPower": "Detected max. Power", "BootloaderVersion": "Bootloader Version", diff --git a/webapp/src/locales/fr.json b/webapp/src/locales/fr.json index 4837f3e..3d013dc 100644 --- a/webapp/src/locales/fr.json +++ b/webapp/src/locales/fr.json @@ -129,6 +129,9 @@ "NoInfo": "Aucune information disponible", "NoInfoLong": "N'a pas reçu de données valides de l'onduleur jusqu'à présent. J'essaie toujours...", "UnknownModel": "Modèle inconnu ! Veuillez signaler le \"Numéro d'article matériel\" et le modèle (par exemple, HM-350) comme un problème ici.", + "Serial": "Serial", + "ProdYear": "Production Year", + "ProdWeek": "Production Week", "Model": "Modèle", "DetectedMaxPower": "Puissance maximale détectée", "BootloaderVersion": "Version du bootloader", diff --git a/webapp/src/types/DevInfoStatus.ts b/webapp/src/types/DevInfoStatus.ts index a60d538..4c09e6b 100644 --- a/webapp/src/types/DevInfoStatus.ts +++ b/webapp/src/types/DevInfoStatus.ts @@ -1,4 +1,5 @@ export interface DevInfoStatus { + serial: number; valid_data: boolean; fw_bootloader_version: number; fw_build_version: number; diff --git a/webapp/src/views/HomeView.vue b/webapp/src/views/HomeView.vue index 720013d..c9a62bc 100644 --- a/webapp/src/views/HomeView.vue +++ b/webapp/src/views/HomeView.vue @@ -540,6 +540,7 @@ export default defineComponent({ .then((response) => handleResponse(response, this.$emitter, this.$router)) .then((data) => { this.devInfoList = data[serial][0]; + this.devInfoList.serial = serial; this.devInfoLoading = false; });
{{ $t('devinfo.Serial') }}{{ devInfoList.serial }}
{{ $t('devinfo.ProdYear') }}{{ productionYear() }}
{{ $t('devinfo.ProdWeek') }}{{ productionWeek() }}
{{ $t('devinfo.Model') }} {{ devInfoList.hw_model_name }}