mirror of
https://github.com/UtilitechAS/amsreader-firmware.git
synced 2026-01-15 08:22:10 +00:00
Adjustments for high scale wattage
This commit is contained in:
parent
23cbcf9a0a
commit
c06dabba51
12
lib/SvelteUi/app/dist/index.js
vendored
12
lib/SvelteUi/app/dist/index.js
vendored
File diff suppressed because one or more lines are too long
@ -1,5 +1,5 @@
|
||||
<script>
|
||||
import { fmtnum, capitalize } from "./Helpers";
|
||||
import { fmtnum, capitalize, formatUnit } from "./Helpers";
|
||||
import { translationsStore } from "./TranslationService";
|
||||
|
||||
export let sysinfo;
|
||||
@ -12,11 +12,22 @@
|
||||
translations = update;
|
||||
});
|
||||
|
||||
let rih,rid,rim,ril, reh,red,rem,rel;
|
||||
let hasCost = false;
|
||||
let cols = 3
|
||||
$: {
|
||||
hasCost = data && data.h && (Math.abs(data.h.c) > 0.01 || Math.abs(data.d.c) > 0.01 || Math.abs(data.m.c) > 0.01 || Math.abs(data.h.i) > 0.01 || Math.abs(data.d.i) > 0.01 || Math.abs(data.m.i) > 0.01);
|
||||
cols = hasCost ? 3 : 2;
|
||||
|
||||
rih = formatUnit(data?.h?.u*1000, "Wh");
|
||||
rid = formatUnit(data?.d?.u*1000, "Wh");
|
||||
rim = formatUnit(data?.m?.u*1000, "Wh");
|
||||
ril = formatUnit(sysinfo?.last_month?.c*1000, "Wh");
|
||||
|
||||
reh = formatUnit(data?.h?.p*1000, "Wh");
|
||||
red = formatUnit(data?.d?.p*1000, "Wh");
|
||||
rem = formatUnit(data?.m?.p*1000, "Wh");
|
||||
rel = formatUnit(sysinfo?.last_month?.p*1000, "Wh");
|
||||
}
|
||||
</script>
|
||||
|
||||
@ -29,44 +40,44 @@
|
||||
<strong>{translations.common?.import ?? "Import"}</strong>
|
||||
<div class="grid grid-cols-{cols} mb-3">
|
||||
<div>{capitalize(translations.common?.hour ?? "Hour")}</div>
|
||||
<div class="text-right">{fmtnum(data.h.u,2)} kWh</div>
|
||||
<div class="text-right">{rih[0]} {rih[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.h.c,2)} {currency}</div>{/if}
|
||||
<div>{capitalize(translations.common?.day ?? "Day")}</div>
|
||||
<div class="text-right">{fmtnum(data.d.u,1)} kWh</div>
|
||||
<div class="text-right">{rid[0]} {rid[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.d.c,1)} {currency}</div>{/if}
|
||||
<div>{capitalize(translations.common?.month ?? "Month")}</div>
|
||||
<div class="text-right">{fmtnum(data.m.u)} kWh</div>
|
||||
<div class="text-right">{rim[0]} {rim[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.m.c)} {currency}</div>{/if}
|
||||
<div>{translations.realtime?.last_mo ?? "Last mo."}</div>
|
||||
<div class="text-right">{fmtnum(sysinfo.last_month.u)} kWh</div>
|
||||
<div class="text-right">{ril[0]} {ril[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(sysinfo.last_month.c)} {currency}</div>{/if}
|
||||
</div>
|
||||
<strong>{translations.common?.export ?? "Export"}</strong>
|
||||
<div class="grid grid-cols-{cols}">
|
||||
<div>{capitalize(translations.common?.hour ?? "Hour")}</div>
|
||||
<div class="text-right">{fmtnum(data.h.p,2)} kWh</div>
|
||||
<div class="text-right">{reh[0]} {reh[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.h.i,2)} {currency}</div>{/if}
|
||||
<div>{capitalize(translations.common?.day ?? "Day")}</div>
|
||||
<div class="text-right">{fmtnum(data.d.p,1)} kWh</div>
|
||||
<div class="text-right">{red[0]} {red[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.d.i,1)} {currency}</div>{/if}
|
||||
<div>{capitalize(translations.common?.month ?? "Month")}</div>
|
||||
<div class="text-right">{fmtnum(data.m.p)} kWh</div>
|
||||
<div class="text-right">{rem[0]} {rem[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(data.m.i)} {currency}</div>{/if}
|
||||
<div>{translations.realtime?.last_mo ?? "Last mo."}</div>
|
||||
<div class="text-right">{fmtnum(sysinfo.last_month.p)} kWh</div>
|
||||
<div class="text-right">{rel[0]} {rel[1]}</div>
|
||||
{#if hasCost}<div class="text-right">{fmtnum(sysinfo.last_month.i)} {currency}</div>{/if}
|
||||
</div>
|
||||
{:else}
|
||||
<strong>{translations.realtime?.consumption ?? "Consumption"}</strong>
|
||||
<div class="grid grid-cols-2 mb-3">
|
||||
<div>{capitalize(translations.common?.hour ?? "Hour")}</div>
|
||||
<div class="text-right">{fmtnum(data.h.u,2)} kWh</div>
|
||||
<div class="text-right">{rih[0]} {rih[1]}</div>
|
||||
<div>{capitalize(translations.common?.day ?? "Day")}</div>
|
||||
<div class="text-right">{fmtnum(data.d.u,1)} kWh</div>
|
||||
<div class="text-right">{rid[0]} {rid[1]}</div>
|
||||
<div>{capitalize(translations.common?.month ?? "Month")}</div>
|
||||
<div class="text-right">{fmtnum(data.m.u)} kWh</div>
|
||||
<div class="text-right">{rim[0]} {rim[1]}</div>
|
||||
<div>{translations.realtime?.last_month ?? "Last month"}</div>
|
||||
<div class="text-right">{fmtnum(sysinfo.last_month.u)} kWh</div>
|
||||
<div class="text-right">{ril[0]} {ril[1]}</div>
|
||||
</div>
|
||||
{#if hasCost}
|
||||
<strong>{translations.realtime?.cost ?? "Cost"}</strong>
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<script>
|
||||
import { pricesStore, dayPlotStore, monthPlotStore, temperaturesStore } from './DataStores.js';
|
||||
import { ampcol, exportcol, metertype, uiVisibility } from './Helpers.js';
|
||||
import { ampcol, exportcol, metertype, uiVisibility, formatUnit } from './Helpers.js';
|
||||
import { translationsStore } from './TranslationService.js';
|
||||
import PowerGauge from './PowerGauge.svelte';
|
||||
import VoltPlot from './VoltPlot.svelte';
|
||||
@ -37,6 +37,12 @@
|
||||
translationsStore.subscribe(update => {
|
||||
translations = update;
|
||||
});
|
||||
|
||||
let it,et;
|
||||
$: {
|
||||
it = formatUnit(data?.ic * 1000, "Wh");
|
||||
et = formatUnit(data?.ec * 1000, "Wh");
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="grid 2xl:grid-cols-6 xl:grid-cols-5 lg:grid-cols-4 md:grid-cols-3 sm:grid-cols-2">
|
||||
@ -47,7 +53,7 @@
|
||||
<PowerGauge val={data.i ? data.i : 0} max={data.im ? data.im : 15000} unit="W" label={translations.common?.import ?? "Import"} sub={data.p} subunit={data.pc} colorFn={ampcol}/>
|
||||
</div>
|
||||
<div>{data.mt ? metertype(data.mt) : '-'}</div>
|
||||
<div class="text-right">{data.ic ? data.ic.toFixed(1) : '-'} kWh</div>
|
||||
<div class="text-right">{it[0]} {it[1]}</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
@ -58,7 +64,7 @@
|
||||
<PowerGauge val={data.e ? data.e : 0} max={data.om ? data.om * 1000 : 10000} unit="W" label={translations.common?.export ?? "Export"} colorFn={exportcol}/>
|
||||
</div>
|
||||
<div></div>
|
||||
<div class="text-right">{data.ec ? data.ec.toFixed(1) : '-'} kWh</div>
|
||||
<div class="text-right">{et[0]} {et[1]}</div>
|
||||
</div>
|
||||
</div>
|
||||
{/if}
|
||||
|
||||
@ -217,4 +217,22 @@ export function capitalize(s) {
|
||||
export function getBaseChip(chip) {
|
||||
if(chip.startsWith("esp32")) return "esp32";
|
||||
return chip;
|
||||
}
|
||||
|
||||
export function formatUnit(val, unit) {
|
||||
let ret = [val, unit];
|
||||
if(typeof val === 'undefined') {
|
||||
ret[0] = "-";
|
||||
ret[1] = unit;
|
||||
} else if(val >= 2000000) {
|
||||
ret[0] = (val / 1000000).toFixed(val > 100000000 ? 1 : 2);
|
||||
ret[1] = "M"+unit;
|
||||
} else if(val > 5000) {
|
||||
ret[0] = (val / 1000).toFixed(val > 100000 ? 1 : 2);
|
||||
ret[1] = "k"+unit;
|
||||
} else {
|
||||
ret[0] = val.toFixed(0);
|
||||
ret[1] = unit;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
@ -1,5 +1,6 @@
|
||||
<script>
|
||||
import PowerGaugeSvg from './PowerGaugeSvg.svelte';
|
||||
import { formatUnit } from './Helpers';
|
||||
|
||||
export let val;
|
||||
export let max;
|
||||
@ -9,8 +10,10 @@
|
||||
export let subunit = "";
|
||||
export let colorFn;
|
||||
|
||||
let arr;
|
||||
let pct = 0;
|
||||
$: {
|
||||
arr = formatUnit(val, unit);
|
||||
pct = (Math.min(val,max)/max) * 100
|
||||
}
|
||||
</script>
|
||||
@ -20,8 +23,8 @@
|
||||
<span class="pl-ov">
|
||||
<span class="pl-lab">{label}</span>
|
||||
<br/>
|
||||
<span class="pl-val">{val}</span>
|
||||
<span class="pl-unt">{unit}</span>
|
||||
<span class="pl-val">{arr[0]}</span>
|
||||
<span class="pl-unt">{arr[1]}</span>
|
||||
{#if sub}
|
||||
<br/>
|
||||
<span class="pl-sub">{sub}</span>
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
<script>
|
||||
import { translationsStore } from "./TranslationService";
|
||||
import { formatUnit } from "./Helpers";
|
||||
|
||||
export let importInstant;
|
||||
export let exportInstant;
|
||||
@ -10,6 +11,14 @@
|
||||
translationsStore.subscribe(update => {
|
||||
translations = update;
|
||||
});
|
||||
|
||||
let ii,ei,it,et;
|
||||
$: {
|
||||
ii = formatUnit(importInstant, "VAr");
|
||||
ei = formatUnit(exportInstant, "VAr");
|
||||
it = formatUnit(importTotal*1000, "VArh");
|
||||
et = formatUnit(exportTotal*1000, "VArh");
|
||||
}
|
||||
</script>
|
||||
|
||||
<div class="mx-2 text-sm">
|
||||
@ -17,15 +26,15 @@
|
||||
|
||||
<div class="grid grid-cols-2 mt-4">
|
||||
<div>{translations.reactive?.instant_in ?? "Instant in"}</div>
|
||||
<div class="text-right">{typeof importInstant !== 'undefined' ? importInstant.toFixed(0) : '-'} VAr</div>
|
||||
<div class="text-right">{ii[0]} {ii[1]}</div>
|
||||
<div>{translations.reactive?.instant_out ?? "Instant out"}</div>
|
||||
<div class="text-right">{typeof exportInstant !== 'undefined' ? exportInstant.toFixed(0) : '-'} VAr</div>
|
||||
<div class="text-right">{ei[0]} {ei[1]}</div>
|
||||
</div>
|
||||
|
||||
<div class="grid grid-cols-2 mt-4">
|
||||
<div>{translations.reactive?.total_in ?? "Total in"}</div>
|
||||
<div class="text-right">{typeof importTotal !== 'undefined' ? importTotal.toFixed(1) : '-'} kVArh</div>
|
||||
<div class="text-right">{it[0]} {it[1]}</div>
|
||||
<div>{translations.reactive?.total_out ?? "Total out"}</div>
|
||||
<div class="text-right">{typeof exportTotal !== 'undefined' ? exportTotal.toFixed(1) : '-'} kVArh</div>
|
||||
<div class="text-right">{et[0]} {et[1]}</div>
|
||||
</div>
|
||||
</div>
|
||||
Loading…
x
Reference in New Issue
Block a user