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)
}