From 46b65be406fb7c233a45b43445923cb210f4d8e2 Mon Sep 17 00:00:00 2001 From: Aaska Black Wolf Date: Sun, 31 May 2026 14:38:00 +0200 Subject: [PATCH] latest data of product details arranged in table --- public/i18n/de.json | 2 +- public/i18n/en.json | 2 +- public/main.css | 6 ++++- public/main.js | 54 ++++++++++++++++++++++++++++----------------- 4 files changed, 41 insertions(+), 23 deletions(-) diff --git a/public/i18n/de.json b/public/i18n/de.json index 14bc6fd..0498664 100644 --- a/public/i18n/de.json +++ b/public/i18n/de.json @@ -3,7 +3,7 @@ "datafield_ERR": "Fehler", "datafield_FW": "Firmwareversion", "datafield_FWE": "Firmwareversion", - "datafield_H19": "Gesamtertrag seit letztem Reset", + "datafield_H19": "Gesamtertrag", "datafield_H20": "Ertrag aktuellster Tag", "datafield_H21": "max. Leistung aktuellster Tag", "datafield_H22": "Ertrag Vortag", diff --git a/public/i18n/en.json b/public/i18n/en.json index 4df9909..178783b 100644 --- a/public/i18n/en.json +++ b/public/i18n/en.json @@ -3,7 +3,7 @@ "datafield_ERR": "error", "datafield_FW": "firmware version", "datafield_FWE": "firmware version", - "datafield_H19": "total yield since last reset", + "datafield_H19": "total yield", "datafield_H20": "yield latest day", "datafield_H21": "max. power latest day", "datafield_H22": "yield yesterday", diff --git a/public/main.css b/public/main.css index 84c344b..ca53717 100644 --- a/public/main.css +++ b/public/main.css @@ -28,9 +28,13 @@ img { float: left; padding: 0px; margin: 0px; margin-right: 5px; } .mainView { min-width: 600px; background-color: #660; margin: 5px; flex-grow: 1; } .productImageSmall { height: 50px; } -.productList { width: 300px; overflow: auto; background-color: #00a; margin: 5px; } +.productList { min-width: 300px; overflow: auto; background-color: #00a; margin: 5px; } +.productListItem { min-height: 50px; } .padding { padding: 5px; } +.right { text-align: right; } + table { border-collapse: collapse; border-width: 0px; } +td { padding-left: 0px; padding-right: 10px; } [id^="li"] { cursor: pointer; } diff --git a/public/main.js b/public/main.js index c64bf6c..e44a093 100644 --- a/public/main.js +++ b/public/main.js @@ -151,6 +151,7 @@ function renderDeviceList() { let classStyle = (i % 2) ? 'bright' : 'dark' let block = document.createElement('div') + block.classList.add('productListItem') block.classList.add('padding') block.classList.add(classStyle) block.id = 'li' + devices[i] @@ -218,26 +219,39 @@ function showDeviceData() { //parse latest datapoint regarding system power, system voltage, solar power, solar voltage let latestDataSet = deviceDataSet[latestYear][latestMonth][latestDay][latestTimestamp] let latestPowerData = document.createElement('table') - if(latestDataSet['PPV']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_PPV'] + ': ' + latestDataSet['PPV'] + 'W' + '' - if(latestDataSet['VPV']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_VPV'] + ': ' + parseInt(latestDataSet['VPV']) / 1000 + 'V' + '' - if(latestDataSet['V']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_V'] + ': ' + parseInt(latestDataSet['V']) / 1000 + 'V' + '' - if(latestDataSet['I']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_I'] + ': ' + parseInt(latestDataSet['I']) / 1000 + 'A' + '' - if(latestDataSet['P']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_P'] + ': ' + latestDataSet['P'] + 'W' + '' - if(latestDataSet['H20']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_H20'] + ': ' + parseInt(latestDataSet['H20']) * 0.01 + 'kWh' + '' - if(latestDataSet['H22']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_H22'] + ': ' + parseInt(latestDataSet['H22']) / 100 + 'kWh' + '' - if(latestDataSet['H19']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_H19'] + ': ' + parseInt(latestDataSet['H19']) / 100 + 'kWh' + '' - if(latestDataSet['H21']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_H21'] + ': ' + parseInt(latestDataSet['H21']) + 'W' + '' - if(latestDataSet['H23']) - latestPowerData.innerHTML += '' + i18n[lang]['datafield_H23'] + ': ' + parseInt(latestDataSet['H23']) + 'W' + '' + + //solar panel data + latestPowerData.innerHTML += '' + + i18n[lang]['datafield_VPV'] + ':' + ( (latestDataSet['VPV']) ? parseInt(latestDataSet['VPV']) / 1000 : '---' ) + 'V' + + '' + + i18n[lang]['datafield_PPV'] + ':' + ( (latestDataSet['PPV']) ? latestDataSet['PPV'] : '---' ) + 'W' + + '' + + //battery / channel 1 data + latestPowerData.innerHTML += '' + + i18n[lang]['datafield_I'] + ':' + ( (latestDataSet['I']) ? parseInt(latestDataSet['I']) / 1000 : '---' ) + 'A' + + '' + + i18n[lang]['datafield_V'] + ':' + ( (latestDataSet['V']) ? parseInt(latestDataSet['V']) / 1000 : '---' ) + 'V' + + '' + + i18n[lang]['datafield_P'] + ':' + ( (latestDataSet['P']) ? latestDataSet['P'] : ( ( latestDataSet['I'] && latestDataSet['V'] ) ? parseInt(latestDataSet['I']) * parseInt(latestDataSet['V']) /1000000 : '---' ) ) + 'W' + + '' + + //yield data + latestPowerData.innerHTML += '' + + i18n[lang]['datafield_H20'] + ':' + ( (latestDataSet['H20']) ? parseInt(latestDataSet['H20']) * 0.01 : '---' ) + 'kWh' + + '' + + i18n[lang]['datafield_H22'] + ':' + ( (latestDataSet['H22']) ? parseInt(latestDataSet['H22']) / 100 : '---' ) + 'kWh' + + '' + + i18n[lang]['datafield_H19'] + ':' + ( ( latestDataSet['H19'] ) ? parseInt(latestDataSet['H19']) / 100 : '---' ) + 'kWh' + + '' + + //power data + latestPowerData.innerHTML += '' + + i18n[lang]['datafield_H21'] + ':' + parseInt(latestDataSet['H21']) + 'W' + + '' + + i18n[lang]['datafield_H23'] + ': ' + parseInt(latestDataSet['H23']) + 'W' + + '' + document.getElementById('deviceDetails').appendChild(latestPowerData) }