forked from snaptec/openWB
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ladelog.sh
executable file
·288 lines (261 loc) · 9.69 KB
/
ladelog.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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
#!/bin/bash
. openwb.conf
ladeleistung=$(<ramdisk/llaktuell)
llkwh=$(<ramdisk/llkwh)
soc=$(<ramdisk/soc)
soc1=$(<ramdisk/soc1)
nachtladenstate=$(</var/www/html/openWB/ramdisk/nachtladenstate)
nachtladen2state=$(</var/www/html/openWB/ramdisk/nachtladen2state)
rfidlp1=$(<ramdisk/rfidlp1)
rfidlp2=$(<ramdisk/rfidlp2)
if (( nachtladenstate == 0 )) || (( nachtladen2state == 0 )); then
lmodus=$(</var/www/html/openWB/ramdisk/lademodus)
else
lmodus=7
fi
if [ -e ramdisk/loglademodus ]; then
lademodus=$(</var/www/html/openWB/ramdisk/loglademodus)
fi
if (( soc > 0 )); then
soctext=$(echo ", bei $soc %SoC")
else
soctext=$(echo ".")
fi
if (( soc1 > 0 )); then
soctext1=$(echo ", bei $soc1 %SoC")
else
soctext1=$(echo ".")
fi
if (( ladeleistung > 500 )); then
if [ -e ramdisk/ladeustart ]; then
ladelstart=$(<ramdisk/ladelstart)
bishergeladen=$(echo "scale=2;($llkwh - $ladelstart)/1" |bc | sed 's/^\./0./')
echo $bishergeladen > ramdisk/aktgeladen
gelrlp1=$(echo "scale=2;$bishergeladen / $durchslp1 * 100" |bc)
gelrlp1=${gelrlp1%.*}
echo $gelrlp1 > ramdisk/gelrlp1
restzeitlp1=$(echo "scale=6;($lademkwh - $bishergeladen)/ $ladeleistung * 1000 * 60" |bc)
restzeitlp1=${restzeitlp1%.*}
echo $restzeitlp1 > ramdisk/restzeitlp1m
if (( restzeitlp1 > 60 )); then
restzeitlp1h=$((restzeitlp1 / 60))
restzeitlp1r=$((restzeitlp1 % 60))
echo "$restzeitlp1h H $restzeitlp1r Min" > ramdisk/restzeitlp1
else
echo "$restzeitlp1 Min" > ramdisk/restzeitlp1
fi
else
echo 1 > ramdisk/ladungaktivlp1
touch ramdisk/ladeustart
echo -e $(date +%d.%m.%y-%H:%M) > ramdisk/ladeustart
echo -e $(date +%s) > ramdisk/ladeustarts
echo $lmodus > ramdisk/loglademodus
echo $llkwh > ramdisk/ladelstart
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstartl == "1")) ; then
./runs/pushover.sh "$lp1name Ladung gestartet$soctext"
fi
fi
echo "$date LP1, Ladung gestartet." >> ramdisk/ladestatus.log
fi
echo 0 > ramdisk/llog1
else
llog1=$(<ramdisk/llog1)
if (( llog1 < 5 )); then
llog1=$((llog1 + 1))
echo $llog1 > ramdisk/llog1
else
if [ -e ramdisk/ladeustart ]; then
echo 0 > ramdisk/ladungaktivlp1
echo "--" > ramdisk/restzeitlp1
ladelstart=$(<ramdisk/ladelstart)
ladeustarts=$(<ramdisk/ladeustarts)
bishergeladen=$(echo "scale=2;($llkwh - $ladelstart)/1" |bc | sed 's/^\./0./')
start=$(<ramdisk/ladeustart)
jetzt=$(date +%d.%m.%y-%H:%M)
jetzts=$(date +%s)
ladedauer=$(((jetzts - ladeustarts) / 60 ))
ladedauers=$((jetzts - ladeustarts))
ladegeschw=$(echo "scale=2;$bishergeladen * 60 * 60 / $ladedauers" |bc)
gelrlp1=$(echo "scale=2;$bishergeladen / $durchslp1 * 100" |bc)
gelrlp1=${gelrlp1%.*}
if (( ladedauer > 60 )); then
ladedauerh=$((ladedauer / 60))
laderest=$((ladedauer % 60))
sed -i '1i'$start,$jetzt,$gelrlp1,$bishergeladen,$ladegeschw,$ladedauerh' H '$laderest' Min,1',$lademodus,$rfidlp1 web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp1name Ladung gestoppt. $bishergeladen kWh in $ladedauerh H $laderest Min mit durchschnittlich $ladegeschw kW geladen$soctext"
fi
fi
else
sed -i '1i'$start,$jetzt,$gelrlp1,$bishergeladen,$ladegeschw,$ladedauer' Min,1 ',$lademodus web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp1name Ladung gestoppt. $bishergeladen kWh in $ladedauer Min mit durchschnittlich $ladegeschw kW geladen$soctext"
fi
fi
fi
echo "$date LP1, Ladung gestoppt" >> ramdisk/ladestatus.log
rm ramdisk/ladeustart
fi
fi
fi
if (( lastmanagement == 1 )); then
ladeleistungs1=$(<ramdisk/llaktuells1)
llkwhs1=$(<ramdisk/llkwhs1)
if (( ladeleistungs1 > 500 )); then
if [ -e ramdisk/ladeustarts1 ]; then
ladelstarts1=$(<ramdisk/ladelstarts1)
bishergeladens1=$(echo "scale=2;($llkwhs1 - $ladelstarts1)/1" |bc | sed 's/^\./0./')
echo $bishergeladens1 > ramdisk/aktgeladens1
gelrlp2=$(echo "scale=2;$bishergeladens1 / $durchslp2 * 100" |bc)
gelrlp2=${gelrlp2%.*}
echo $gelrlp2 > ramdisk/gelrlp2
restzeitlp2=$(echo "scale=6;($lademkwhs1 - $bishergeladens1)/ $ladeleistungs1 * 1000 * 60" |bc)
restzeitlp2=${restzeitlp2%.*}
echo $restzeitlp2 > ramdisk/restzeitlp2m
if (( restzeitlp2 > 60 )); then
restzeitlp2h=$((restzeitlp2 / 60))
restzeitlp2r=$((restzeitlp2 % 60))
echo "$restzeitlp2h H $restzeitlp2r Min" > ramdisk/restzeitlp2
else
echo "$restzeitlp2 Min" > ramdisk/restzeitlp2
fi
else
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstartl == "1")) ; then
./runs/pushover.sh "$lp2name Ladung gestartet$soctext1"
fi
fi
echo "$date LP2, Ladung gestartet" >> ramdisk/ladestatus.log
echo 1 > ramdisk/ladungaktivlp2
touch ramdisk/ladeustarts1
echo $lmodus > ramdisk/loglademodus
echo -e $(date +%d.%m.%y-%H:%M) > ramdisk/ladeustarts1
echo -e $(date +%s) > ramdisk/ladeustartss1
echo $llkwhs1 > ramdisk/ladelstarts1
fi
echo 0 > ramdisk/llogs1
else
llogs1=$(<ramdisk/llogs1)
if (( llogs1 < 5 )); then
llogs1=$((llogs1 + 1))
echo $llogs1 > ramdisk/llogs1
else
if [ -e ramdisk/ladeustarts1 ]; then
echo 0 > ramdisk/ladungaktivlp2
echo "--" > ramdisk/restzeitlp2
ladelstarts1=$(<ramdisk/ladelstarts1)
ladeustartss1=$(<ramdisk/ladeustartss1)
bishergeladens1=$(echo "scale=2;($llkwhs1 - $ladelstarts1)/1" |bc | sed 's/^\./0./')
starts1=$(<ramdisk/ladeustarts1)
jetzts1=$(date +%d.%m.%y-%H:%M)
jetztss1=$(date +%s)
ladedauers1=$(((jetztss1 - ladeustartss1) / 60 ))
ladedauerss1=$((jetztss1 - ladeustartss1))
ladegeschws1=$(echo "scale=2;$bishergeladens1 * 60 * 60 / $ladedauerss1" |bc)
gelrlp2=$(echo "scale=2;$bishergeladens1 / $durchslp2 * 100" |bc)
gelrlp2=${gelrlp2%.*}
if (( ladedauers1 > 60 )); then
ladedauerhs1=$((ladedauers1 / 60))
laderests1=$((ladedauers1 % 60))
sed -i '1i'$starts1,$jetzts1,$gelrlp2,$bishergeladens1,$ladegeschws1,$ladedauerhs1' H '$laderests1' Min,2',$lademodus,$rfidlp2 web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp2name Ladung gestoppt. $bishergeladens1 kWh in $ladedauerhs1 H $laderests1 Min mit durchschnittlich $ladegeschws1 kW geladen$soctext1"
fi
fi
else
sed -i '1i'$starts1,$jetzts1,$gelrlp2,$bishergeladens1,$ladegeschws1,$ladedauers1' Min,2',$lademodus web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp2name Ladung gestoppt. $bishergeladens1 kWh in $ladedauers1 Min mit durchschnittlich $ladegeschws1 kW geladen$soctext1"
fi
fi
fi
echo "$date LP2, Ladung gestoppt" >> ramdisk/ladestatus.log
rm ramdisk/ladeustarts1
fi
fi
fi
fi
if (( lastmanagements2 == 1 )); then
ladeleistungs2=$(<ramdisk/llaktuells2)
llkwhs2=$(<ramdisk/llkwhs2)
if (( ladeleistungs2 > 500 )); then
if [ -e ramdisk/ladeustarts2 ]; then
ladelstarts2=$(<ramdisk/ladelstarts2)
bishergeladens2=$(echo "scale=2;($llkwhs2 - $ladelstarts2)/1" |bc | sed 's/^\./0./')
echo $bishergeladens2 > ramdisk/aktgeladens2
gelrlp3=$(echo "scale=2;$bishergeladens2 / $durchslp3 * 100" |bc)
gelrlp3=${gelrlp3%.*}
echo $gelrlp3 > ramdisk/gelrlp3
restzeitlp3=$(echo "scale=6;($lademkwhs2 - $bishergeladens2)/ $ladeleistungs2 * 1000 * 60" |bc)
restzeitlp3=${restzeitlp3%.*}
echo $restzeitlp3 > ramdisk/restzeitlp3m
if (( restzeitlp3 > 60 )); then
restzeitlp3h=$((restzeitlp3 / 60))
restzeitlp3r=$((restzeitlp3 % 60))
echo "$restzeitlp3h H $restzeitlp3r Min" > ramdisk/restzeitlp3
else
echo "$restzeitlp3 Min" > ramdisk/restzeitlp3
fi
else
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstartl == "1")) ; then
./runs/pushover.sh "$lp3name Ladung gestartet"
fi
fi
echo "$date LP3, Ladung gestartet" >> ramdisk/ladestatus.log
echo 1 > ramdisk/ladungaktivlp3
touch ramdisk/ladeustarts2
echo $lmodus > ramdisk/loglademodus
echo -e $(date +%d.%m.%y-%H:%M) > ramdisk/ladeustarts2
echo -e $(date +%s) > ramdisk/ladeustartss2
echo $llkwhs2 > ramdisk/ladelstarts2
fi
echo 0 > ramdisk/llogs2
else
llogs2=$(<ramdisk/llogs2)
if (( llogs2 < 5 )); then
llogs2=$((llogs2 + 1))
echo $llogs2 > ramdisk/llogs2
else
if [ -e ramdisk/ladeustarts2 ]; then
echo 0 > ramdisk/ladungaktivlp3
echo "--" > ramdisk/restzeitlp3
ladelstarts2=$(<ramdisk/ladelstarts2)
ladeustartss2=$(<ramdisk/ladeustartss2)
bishergeladens2=$(echo "scale=2;($llkwhs2 - $ladelstarts2)/1" |bc | sed 's/^\./0./')
starts2=$(<ramdisk/ladeustarts2)
jetzts2=$(date +%d.%m.%y-%H:%M)
jetztss2=$(date +%s)
ladedauers2=$(((jetztss2 - ladeustartss2) / 60 ))
ladedauerss2=$((jetztss2 - ladeustartss2))
ladegeschws2=$(echo "scale=2;$bishergeladens2 * 60 * 60 / $ladedauerss2" |bc)
gelrlp3=$(echo "scale=2;$bishergeladens2 / $durchslp3 * 100" |bc)
gelrlp3=${gelrlp3%.*}
if (( ladedauers2 > 60 )); then
ladedauerhs2=$((ladedauers2 / 60))
laderests2=$((ladedauers2 % 60))
sed -i '1i'$starts2,$jetzts2,$gelrlp3,$bishergeladens2,$ladegeschws2,$ladedauerhs2' H '$laderests2' Min,3',$lademodus web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp3name Ladung gestoppt. $bishergeladens2 kWh in $ladedauerhs2 H $laderests2 Min mit durchschnittlich $ladegeschws2 kW geladen."
fi
fi
else
sed -i '1i'$starts2,$jetzts2,$gelrlp3,$bishergeladens2,$ladegeschws2,$ladedauers2' Min,3',$lademodus web/ladelog
if ((pushbenachrichtigung == "1")) ; then
if ((pushbstopl == "1")) ; then
./runs/pushover.sh "$lp3name Ladung gestoppt. $bishergeladens2 kWh in $ladedauers2 Min mit durchschnittlich $ladegeschws2 kW geladen."
fi
fi
fi
echo "$date LP3, Ladung gestoppt" >> ramdisk/ladestatus.log
rm ramdisk/ladeustarts2
fi
fi
fi
fi