229 lines
5.3 KiB
YAML
229 lines
5.3 KiB
YAML
network:
|
|
port: 7070
|
|
|
|
log: debug
|
|
levels:
|
|
mercedes: trace
|
|
|
|
interval: 3s
|
|
|
|
javascript:
|
|
- vm: shared
|
|
script: |
|
|
state = {
|
|
residualpower: 500,
|
|
pvpower: 5000,
|
|
batterypower: -750,
|
|
batterySoC: 55,
|
|
gridpower: -1000,
|
|
loadpoints: [
|
|
{ enabled: true, vehicleSoC: 62, maxcurrent: 6, phases: 1, chargepower: 0 },
|
|
{ enabled: false, vehicleSoC: 22, maxcurrent: 0, phases: 3, chargepower: 0 }
|
|
]
|
|
};
|
|
function get() {
|
|
console.log("state:", JSON.stringify(state));
|
|
}
|
|
function set() {
|
|
console.log(param+":", val);
|
|
console.log("state:", JSON.stringify(state));
|
|
}
|
|
|
|
meters:
|
|
- name: grid
|
|
type: custom
|
|
power:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
state.pvpower = 8000+500*Math.random();
|
|
state.batterypower = state.gridpower > 0 ? 1000 * Math.random() : 0;
|
|
state.gridpower = state.loadpoints[0].chargepower + state.loadpoints[1].chargepower + state.residualpower - state.batterypower - state.pvpower;
|
|
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: |
|
|
if (state.batterypower < 0) state.batterySoC++; else state.batterySoC--;
|
|
if (state.batterySoC < 10) state.batterySoC = 90;
|
|
if (state.batterySoC > 90) state.batterySoC = 10;
|
|
state.batterySoC;
|
|
|
|
- name: meter_charger_1
|
|
type: custom
|
|
power:
|
|
source: js
|
|
vm: shared
|
|
script: state.loadpoints[0].chargepower;
|
|
|
|
- name: meter_charger_2
|
|
type: custom
|
|
power:
|
|
source: js
|
|
vm: shared
|
|
script: state.loadpoints[1].chargepower;
|
|
|
|
chargers:
|
|
- name: charger_1
|
|
type: custom
|
|
enable:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
set();
|
|
var lp = state.loadpoints[0];
|
|
lp.enabled = val;
|
|
if (lp.enabled) lp.chargepower = lp.maxcurrent * 230 * lp.phases; else lp.chargepower = 0;
|
|
enabled:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
state.loadpoints[0].enabled;
|
|
status:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
if (state.loadpoints[0].enabled) "C"; else "B";
|
|
maxcurrent:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
set();
|
|
var lp = state.loadpoints[0];
|
|
lp.maxcurrent = val;
|
|
if (lp.enabled) lp.chargepower = lp.maxcurrent * 230 * lp.phases; else lp.chargepower = 0;
|
|
|
|
- name: charger_2
|
|
type: custom
|
|
enable:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
set();
|
|
var lp = state.loadpoints[1];
|
|
lp.enabled = val;
|
|
if (lp.enabled) lp.chargepower = lp.maxcurrent * 230 * lp.phases; else lp.chargepower = 0;
|
|
enabled:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
state.loadpoints[1].enabled;
|
|
status:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
if (state.loadpoints[1].enabled) "C"; else "B";
|
|
maxcurrent:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
set();
|
|
var lp = state.loadpoints[1];
|
|
lp.maxcurrent = val;
|
|
if (lp.enabled) lp.chargepower = lp.maxcurrent * 230 * lp.phases; else lp.chargepower = 0;
|
|
phases1p3p:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
set();
|
|
if (val === 1) lp.phases = 1; else lp.phases = 3;
|
|
lp.phases;
|
|
|
|
vehicles:
|
|
- name: vehicle_1
|
|
title: blauer e-Golf
|
|
type: custom
|
|
soc:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
var lp = state.loadpoints[0];
|
|
if (lp.chargepower > 0) lp.vehicleSoC++; else lp.vehicleSoC--;
|
|
if (lp.vehicleSoC < 15) lp.vehicleSoC = 80;
|
|
if (lp.vehicleSoC > 80) lp.vehicleSoC = 15;
|
|
lp.vehicleSoC;
|
|
range:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
var lp = state.loadpoints[0]
|
|
var range = (44 * lp.vehicleSoC) / 15;
|
|
range
|
|
capacity: 44
|
|
onidentify:
|
|
targetsoc: 90
|
|
|
|
- name: vehicle_2
|
|
title: weißes Model 3
|
|
type: custom
|
|
soc:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
var lp = state.loadpoints[1];
|
|
if (lp.chargepower > 0) lp.vehicleSoC++; else lp.vehicleSoC--;
|
|
if (lp.vehicleSoC < 15) lp.vehicleSoC = 75;
|
|
if (lp.vehicleSoC > 75) lp.vehicleSoC = 15;
|
|
lp.vehicleSoC;
|
|
range:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
var lp = state.loadpoints[1]
|
|
var range = (80 * lp.vehicleSoC) / 17;
|
|
range
|
|
status:
|
|
source: js
|
|
vm: shared
|
|
script: |
|
|
"B"
|
|
capacity: 80
|
|
onidentify:
|
|
targetsoc: 75
|
|
- name: vehicle_3
|
|
type: template
|
|
template: offline
|
|
title: grüner Honda e
|
|
capacity: 26
|
|
|
|
- name: mercedes1
|
|
type: mercedes
|
|
title: Mercedes
|
|
phases: 2
|
|
vin: W1K2052131G009532
|
|
clientId: 53c28422-25e4-47c2-9cf4-94a48065c5b3
|
|
clientSecret: ePhxFTNyMbvslPqgoAfERHscIvpHZIaOfKPLjmEvQZDhSaocKAOiceLEVubDPyxP
|
|
identifiers: Jochen
|
|
|
|
site:
|
|
title: Zuhause
|
|
meters:
|
|
grid: grid
|
|
pv: pv
|
|
battery: battery
|
|
|
|
loadpoints:
|
|
- title: Carport
|
|
charger: charger_1
|
|
mode: pv
|
|
phases: 1
|
|
meter: meter_charger_1
|
|
# vehicle: vehicle_1 # default
|
|
- title: Garage
|
|
charger: charger_2
|
|
mode: "off"
|
|
meter: meter_charger_2
|