forked from snaptec/openWB
-
Notifications
You must be signed in to change notification settings - Fork 0
/
minundpv.sh
83 lines (77 loc) · 2.25 KB
/
minundpv.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
#!/bin/bash
########################
#Min Ladung + PV Uberschussregelung lademodus 1
minundpvlademodus(){
maxll=($llalt $llalts1 $llalts2 $llaltlp4 $llaltlp5 $llaltlp6 $llaltlp7 $llaltlp8)
maxllvar=0
for v in "${maxll[@]}"; do
if (( v > maxllvar )); then maxllvar=$v; fi;
done
llalt=$maxllvar
if [[ $schieflastaktiv == "1" ]]; then
if [[ $u1p3paktiv == "1" ]]; then
u1p3pstat=$(<ramdisk/u1p3pstat)
if [[ $u1p3pstat == "1" ]]; then
maximalstromstaerke=$schieflastmaxa
fi
fi
fi
if (( speichersoc >= speichersochystminpv )); then
if (( ladestatus == 0 )); then
if (( speichersoc >= speichersocminpv )); then
runs/set-current.sh $minimalampv all
echo "$date alle Ladepunkte, Lademodus Min und PV. Starte Ladung mit $minimalampv Ampere" >> ramdisk/ladestatus.log
if [[ $debug == "1" ]]; then
echo "starte min + pv ladung mit $minimalampv"
fi
fi
else
if (( ladeleistung < 500 )); then
llneu=$minimalampv
#runs/set-current.sh $llneu all
else
if (( uberschuss < pvregelungm )); then
if (( llalt > minimalampv )); then
#llneu=$(( llalt + ( uberschuss / 230 / anzahlphasen)))
llneu=$(( llalt - 1 + ( (uberschuss - pvregelungm) / 230 / anzahlphasen)))
#runs/set-current.sh $llneu all
else
llneu=$minimalampv
#runs/set-current.sh $llneu all
fi
else
llneu=$llalt
fi
if (( uberschuss > schaltschwelle )); then
if [[ $pvbezugeinspeisung == "0" ]]; then
llneu=$(( llalt + ( uberschuss / 230 / anzahlphasen)))
else
if (( llalt == minimalampv )); then
llneu=$(( llalt + 1 ))
else
llneu=$(( llalt + ( (uberschuss - schaltschwelle) / 230 / anzahlphasen)))
fi
fi
if (( llneu > maximalstromstaerke )); then
llneu=$maximalstromstaerke
fi
if (( llalt < minimalampv )); then
llneu=$minimalampv
fi
fi
fi
if (( llneu < minimalampv )); then
llneu=$minimalampv
fi
if (( llneu > maximalstromstaerke )); then
llneu=$maximalstromstaerke
fi
runs/set-current.sh $llneu all
if (( llalt != llneu )); then
echo "$date alle Ladepunkte, Lademodus Min und PV. Ändere Ladeleistung auf $llneu Ampere" >> ramdisk/ladestatus.log
fi
fi
else
runs/set-current.sh 0 all
fi
}