evcc-io/cmd/demo.yaml
2022-03-29 15:54:02 +02:00

119 lines
2.4 KiB
YAML

log: info
interval: 3s
javascript:
- vm: shared
script: |
state = {
residualpower: 300,
batterypower: 0,
pvpower: 6200,
gridpower: 0,
chargepower: 0,
maxcurrent: 0,
battery: 63, // car
};
function log() { console.log("state:", JSON.stringify(state)); }
function set() { console.log("set:", param+"="+val); }
meters:
- name: grid
type: custom
power:
source: js
vm: shared
script: |
state.pvpower += 200*(Math.random()-0.5);
state.chargepower = 0;
if (state.enabled) {
state.chargepower = state.maxcurrent * 3 * 230;
state.batterypower = 0;
}
state.gridpower = -state.pvpower + state.chargepower + state.residualpower + state.batterypower;
// if (state.gridpower < 0) {
// state.batterypower = -state.gridpower;
// if (state.batterypower > 1000) {
// state.batterypower = 1000;
// }
// state.gridpower += state.batterypower;
// } else {
// state.batterypower = 0;
// }
state.gridpower;
- name: pv
type: custom
power:
source: js
vm: shared
script: state.pvpower
- name: battery
type: custom
power:
source: js
vm: shared
script: state.batterypower;
soc:
source: js
vm: shared
script: "30"
- name: charge
type: custom
power:
source: js
vm: shared
script: state.chargepower;
soc:
source: js
vm: shared
script: "30"
chargers:
- name: demo
type: custom
enable:
source: js
vm: shared
script: state.enabled = val;
enabled:
source: js
vm: shared
script: |
state.enabled;
status:
source: js
vm: shared
script: |
if (state.enabled) "C"; else "B";
maxcurrent:
source: js
vm: shared
script: state.maxcurrent = val;
vehicles:
- name: demo
title: e-Golf
type: custom
soc:
source: js
vm: shared
script: |
if (state.chargepower > 0) state.battery++; else state.battery--;
if (state.battery < 15) state.battery = 15;
if (state.battery > 100) state.battery = 100;
state.battery;
site:
title: Demo
meters:
grid: grid
pv: pv
battery: battery
loadpoints:
- title: Carport
charger: demo
meter: charge
vehicle: demo