119 lines
2.4 KiB
YAML
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
|