evcc-io/cmd/demo.yaml

113 lines
2 KiB
YAML

log: info
javascript:
- vm: shared
script: |
state = {
residualpower: 200,
pvpower: -3000,
batterypower: 200,
gridpower: -2000,
chargepower: 0,
maxcurrent: 0,
battery: 63, // car
};
function get() {
console.log("state:", JSON.stringify(state));
}
function set() {
console.log(param+":", val);
console.log("state:", JSON.stringify(state));
}
meters:
- name: grid
type: default
power:
type: js
vm: shared
script: state.gridpower = state.pvpower + state.chargepower + state.residualpower + state.batterypower;
- name: pv
type: default
power:
type: js
vm: shared
script: state.pvpower += 100*Math.random();
- name: battery
type: default
power:
type: js
vm: shared
script: state.batterypower;
soc:
type: js
vm: shared
script: "30"
- name: charge
type: default
power:
type: js
vm: shared
script: state.chargepower;
soc:
type: js
vm: shared
script: "30"
chargers:
- name: demo
type: default
enable:
type: js
vm: shared
script: |
set();
state.enabled = val;
if (state.enabled) state.chargepower = state.maxcurrent * 230; else state.chargepower = 0;
enabled:
type: js
vm: shared
script: |
state.enabled;
status:
type: js
vm: shared
script: |
if (state.enabled) "C"; else "B";
maxcurrent:
type: js
vm: shared
script: |
set();
state.maxcurrent = val;
if (state.enabled) state.chargepower = state.maxcurrent * 230;
vehicles:
- name: demo
title: e-Golf
type: default
charge:
type: 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;
cache: 1s
site:
title: Demo
meters:
grid: grid
pv: pv
battery: battery
loadpoints:
- title: Carport
charger: demo
meters:
charge: charge
vehicle: demo