Export homePower (#1718)

This commit is contained in:
andig 2021-10-10 13:04:13 +02:00 • committed by GitHub
parent b809356d4f
commit 5ea3c6ef39
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 54 additions and 42 deletions

View file

@ -5,8 +5,9 @@ export default {
title: "Main/Energyflow",
component: Energyflow,
argTypes: {
gridPower: { control: { type: "range", min: -5000, max: 20000, step: 100 } },
pvPower: { control: { type: "range", min: 0, max: 10000, step: 100 } },
gridPower: { control: { type: "range", min: -5000, max: 20000, step: 100 } },
homePower: { control: { type: "range", min: 0, max: 30000, step: 100 } },
loadpointsPower: { control: { type: "range", min: 0, max: 20000, step: 100 } },
activeLoadpointsCount: { control: { type: "range", min: 0, max: 5, step: 1 } },
batteryPower: { control: { type: "range", min: -4000, max: 4000, step: 100 } },
@ -25,8 +26,9 @@ export const GridAndPV = Template.bind({});
GridAndPV.args = {
gridConfigured: true,
pvConfigured: true,
pvPower: 7300,
gridPower: -2300,
pvPower: 7320,
homePower: 800,
loadpointsPower: 4200,
activeLoadpointsCount: 3,
batteryConfigured: false,
@ -38,8 +40,9 @@ BatteryAndGrid.args = {
gridConfigured: true,
pvConfigured: true,
batteryConfigured: true,
gridPower: 1200,
pvPower: 0,
gridPower: 1200,
homePower: 2000,
batteryPower: 800,
batterySoC: 77,
siteTitle: "Home",
@ -50,8 +53,9 @@ BatteryCharging.args = {
gridConfigured: true,
pvConfigured: true,
batteryConfigured: true,
gridPower: -1300,
pvPower: 5000,
gridPower: -1300,
homePower: 800,
loadpointsPower: 1400,
activeLoadpointsCount: 1,
batteryPower: -1500,
@ -59,13 +63,14 @@ BatteryCharging.args = {
siteTitle: "Home",
};
export const GridPvAndBattery = Template.bind({});
GridPvAndBattery.args = {
export const GridPVAndBattery = Template.bind({});
GridPVAndBattery.args = {
gridConfigured: true,
pvConfigured: true,
batteryConfigured: true,
gridPower: 700,
pvPower: 1000,
gridPower: 700,
homePower: 3300,
batteryPower: 1500,
batterySoC: 30,
siteTitle: "Home",
@ -77,24 +82,25 @@ BatteryThresholds.args = {
pvConfigured: true,
batteryConfigured: true,
activeLoadpointsCount: 1,
loadpointsPower: 7523,
gridPower: -510,
pvPower: 8740,
batteryPower: -100,
pvPower: 8700,
gridPower: -500,
loadpointsPower: 7500,
batteryPower: -700,
batterySoC: 95,
siteTitle: "Home",
};
export const PvThresholds = Template.bind({});
PvThresholds.args = {
export const PVThresholds = Template.bind({});
PVThresholds.args = {
gridConfigured: true,
pvConfigured: true,
batteryConfigured: true,
activeLoadpointsCount: 2,
loadpointsPower: 5621,
batteryPower: 800,
gridPower: 5555,
pvPower: 300,
gridPower: 5500,
homePower: 1000,
loadpointsPower: 5600,
batteryPower: 800,
batterySoC: 76,
siteTitle: "Home",
};
@ -104,10 +110,11 @@ GridOnly.args = {
gridConfigured: true,
pvConfigured: false,
batteryConfigured: false,
gridPower: -6230,
activeLoadpointsCount: 1,
loadpointsPower: 4200,
pvPower: 0,
gridPower: -6200,
homePower: 1000,
loadpointsPower: 4200,
batteryPower: 0,
batterySoC: 0,
siteTitle: "Home",
@ -118,9 +125,10 @@ LowEnergy.args = {
gridConfigured: true,
pvConfigured: true,
batteryConfigured: true,
gridPower: -352,
pvPower: 710,
batteryPower: 86,
pvPower: 700,
gridPower: -300,
homePower: 300,
batteryPower: -100,
batterySoC: 55,
siteTitle: "Home",
};

View file

@ -25,7 +25,7 @@
:batteryCharge="batteryCharge"
:batteryDischarge="batteryDischarge"
:pvProduction="pvProduction"
:houseConsumption="houseConsumption"
:homePower="homePower"
:batterySoC="batterySoC"
:valuesInKw="valuesInKw"
/>
@ -43,9 +43,9 @@
<div class="d-flex justify-content-between" data-test-house-consumption>
<span class="details-icon text-muted"><fa-icon icon="home"></fa-icon></span>
<span class="text-nowrap flex-grow-1">{{
$t("main.energyflow.houseConsumption")
$t("main.energyflow.homePower")
}}</span>
<span class="text-end text-nowrap ps-1">{{ kw(houseConsumption) }}</span>
<span class="text-end text-nowrap ps-1">{{ kw(homePower) }}</span>
</div>
<div class="d-flex justify-content-between" data-test-loadpoints>
<span class="details-icon text-muted"><fa-icon icon="car"></fa-icon></span>
@ -139,6 +139,7 @@ export default {
props: {
gridConfigured: Boolean,
gridPower: { type: Number, default: 0 },
homePower: { type: Number, default: 0 },
pvConfigured: Boolean,
pvPower: { type: Number, default: 0 },
loadpointsPower: { type: Number, default: 0 },
@ -174,12 +175,6 @@ export default {
batteryCharge: function () {
return Math.min(0, this.batteryPowerAdjusted) * -1;
},
houseConsumption: function () {
return Math.max(
0,
this.gridImport + this.pvConsumption + this.batteryDischarge - this.loadpointsPower
);
},
selfConsumption: function () {
return Math.max(0, this.batteryDischarge + this.pvConsumption + this.batteryCharge);
},

View file

@ -53,7 +53,7 @@
</div>
<div class="label-scale">
<div class="d-flex justify-content-start">
<LabelBar v-bind="labelBarProps('bottom', 'houseConsumption')">
<LabelBar v-bind="labelBarProps('bottom', 'homePower')">
<fa-icon icon="home"></fa-icon>
</LabelBar>
<LabelBar v-bind="labelBarProps('bottom', 'loadpoints')">
@ -89,7 +89,7 @@ export default {
batteryCharge: { type: Number, default: 0 },
batteryDischarge: { type: Number, default: 0 },
pvProduction: { type: Number, default: 0 },
houseConsumption: { type: Number, default: 0 },
homePower: { type: Number, default: 0 },
batterySoC: { type: Number, default: 0 },
valuesInKw: { type: Boolean, default: false },
},
@ -180,7 +180,7 @@ export default {
isLabel(position, name, last) {
const labels = {
top: ["pvProduction", "batteryDischarge", "gridImport"],
bottom: ["houseConsumption", "loadpoints", "batteryCharge", "gridExport"],
bottom: ["homePower", "loadpoints", "batteryCharge", "gridExport"],
};
const entries = [...labels[position]];
if (last) {

View file

@ -33,6 +33,7 @@ export default {
// details
gridConfigured: Boolean,
gridPower: Number,
homePower: Number,
pvConfigured: Boolean,
pvPower: Number,
batteryConfigured: Boolean,

View file

@ -31,7 +31,7 @@ export default {
main: {
energyflow: {
noEnergy: "Kein Energiefluss",
houseConsumption: "Verbrauch",
homePower: "Verbrauch",
pvProduction: "Erzeugung",
loadpoints: "Ladepunkt | Ladepunkt | {count} Ladepunkte",
battery: "Batterie",

View file

@ -31,7 +31,7 @@ export default {
main: {
energyflow: {
noEnergy: "No Energyflow",
houseConsumption: "Consumption",
homePower: "Consumption",
loadpoints: "Loadpoint | Loadpoint | {count} Loadpoints",
pvProduction: "Production",
battery: "Battery",

View file

@ -31,7 +31,7 @@ export default {
main: {
energyflow: {
noEnergy: "No Energyflow",
houseConsumption: "Consumption",
homePower: "Consumption",
pvProduction: "Produzione",
battery: "Batteria",
batteryCharge: "Battery charge",

View file

@ -389,6 +389,14 @@ func (site *Site) update(lp Updater) {
if sitePower, err := site.sitePower(); err == nil {
lp.Update(sitePower, cheap, site.batteryBuffered)
homePower := site.gridPower + site.pvPower + site.batteryPower
for _, lp := range site.loadpoints {
homePower -= lp.GetChargePower()
}
homePower = math.Max(homePower, 0)
site.publish("homePower", homePower)
site.Health.Update()
}
}

File diff suppressed because one or more lines are too long

4
dist/index.html vendored
View file

@ -1,4 +1,4 @@
<!DOCTYPE html><html lang="de"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="EV Charge Controller"><meta name="author" content="andig"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><link rel="apple-touch-icon" sizes="180x180" href="ico/apple-touch-icon.png?[[.Version]]"><link rel="icon" type="image/png" sizes="32x32" href="ico/favicon-32x32.png?[[.Version]]"><link rel="icon" type="image/png" sizes="16x16" href="ico/favicon-16x16.png?[[.Version]]"><link rel="manifest" href="ico/site.webmanifest"><link rel="mask-icon" href="ico/safari-pinned-tab.svg?[[.Version]]" color="#18191a"><link rel="shortcut icon" href="ico/favicon.ico?[[.Version]]"><meta name="apple-mobile-web-app-title" content="evcc"><meta name="application-name" content="evcc"><meta name="msapplication-TileColor" content="#18191a"><meta name="msapplication-config" content="ico/browserconfig.xml"><meta name="theme-color" content="#18191a"><title>evcc</title><link href="css/chunk-vendors.63c5e34a.css" rel="preload" as="style"><link href="css/index.401ef0ac.css" rel="preload" as="style"><link href="js/chunk-vendors.0dc6e0ff.js" rel="preload" as="script"><link href="js/index.5ba815f1.js" rel="preload" as="script"><link href="css/chunk-vendors.63c5e34a.css" rel="stylesheet"><link href="css/index.401ef0ac.css" rel="stylesheet"></head><body><script>window.evcc = {
<!DOCTYPE html><html lang="de"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><meta name="description" content="EV Charge Controller"><meta name="author" content="andig"><meta name="apple-mobile-web-app-capable" content="yes"><meta name="apple-mobile-web-app-status-bar-style" content="black"><link rel="apple-touch-icon" sizes="180x180" href="ico/apple-touch-icon.png?[[.Version]]"><link rel="icon" type="image/png" sizes="32x32" href="ico/favicon-32x32.png?[[.Version]]"><link rel="icon" type="image/png" sizes="16x16" href="ico/favicon-16x16.png?[[.Version]]"><link rel="manifest" href="ico/site.webmanifest"><link rel="mask-icon" href="ico/safari-pinned-tab.svg?[[.Version]]" color="#18191a"><link rel="shortcut icon" href="ico/favicon.ico?[[.Version]]"><meta name="apple-mobile-web-app-title" content="evcc"><meta name="application-name" content="evcc"><meta name="msapplication-TileColor" content="#18191a"><meta name="msapplication-config" content="ico/browserconfig.xml"><meta name="theme-color" content="#18191a"><title>evcc</title><link href="css/chunk-vendors.63c5e34a.css" rel="preload" as="style"><link href="css/index.5a58646e.css" rel="preload" as="style"><link href="js/chunk-vendors.0dc6e0ff.js" rel="preload" as="script"><link href="js/index.84ff3d12.js" rel="preload" as="script"><link href="css/chunk-vendors.63c5e34a.css" rel="stylesheet"><link href="css/index.5a58646e.css" rel="stylesheet"></head><body><script>window.evcc = {
version: "[[.Version]]",
configured: "[[.Configured]]",
};</script><div id="app"></div><script src="js/chunk-vendors.0dc6e0ff.js"></script><script src="js/index.5ba815f1.js"></script></body></html>
};</script><div id="app"></div><script src="js/chunk-vendors.0dc6e0ff.js"></script><script src="js/index.84ff3d12.js"></script></body></html>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

2
dist/js/index.84ff3d12.js vendored Normal file

File diff suppressed because one or more lines are too long

1
dist/js/index.84ff3d12.js.map vendored Normal file

File diff suppressed because one or more lines are too long