-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathpfan
executable file
·95 lines (89 loc) · 2 KB
/
pfan
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
#!/bin/sh
#
# MyRPI script to control the usb connected fan on
# the 2nd port using uhubctl
#
# Cornjob to run every 2 hours
# 0 */2 * * * /bin/pfan >/dev/null 2>&1
#
# Valid inputs:
# ON - 1
# OFF - 0
#
#DEFAULTS
treshold=50.0
fan_state() {
fs=`uhub | awk 'FNR == 3 {print $4}'`
if [ $fs = 'power' ]; then
return 1
else
return 0
fi
}
out_chk() {
if [ $1 -eq 0 ] && [ $2 -eq 0 ]; then
echo "Fan turned OFF"
elif [ $1 -eq 0 ] && [ $2 -eq 1 ]; then
echo "Fan turned ON"
elif [ $2 -ne 0 ] || [ $2 -ne 1 ]; then
echo "-------------------------"
echo "No valid arg provided!"
echo " "
echo "Nothing to do here!"
echo "-------------------------"
else
echo "Something went wrong"
fi
}
if [ -z $1 ]; then
echo "Checking temp to decide!!"
get_temp=`vcgencmd measure_temp | cut -d '=' -f 2,3 | cut -d "'" -f 1,1`
echo "Current Temp: $get_temp"
temp_chk=`echo "$get_temp >= $treshold" | bc -l`
if [ $temp_chk -eq 1 ]; then
echo "PI Hot"
fan_state
chk_state=$?
if [ $chk_state -eq 1 ]; then
echo "Fan is already running"
else
uhub -a 1 -p 2 > /dev/null 2> /dev/null
chk=$?
prov_in=1
out_chk $chk $prov_in
fi
else
echo "alight kul"
fan_state
chk_state=$?
if [ $chk_state -eq 0 ]; then
echo "Fan is already OFF"
else
uhub -a 0 -p 2 > /dev/null 2> /dev/null
chk=$?
prov_in=0
out_chk $chk $prov_in
fi
fi
elif [ $1 = 'state' ]; then
fan_state
cur_state=$?
if [ $cur_state -eq 1 ]; then
echo "Current fan state is: ON"
else
echo "Current fan state is: OFF"
fi
else
prov_in=$1
fan_state
chk_state=$?
if [ $chk_state -eq 1 ] && [ $prov_in -eq 1 ]; then
echo "Fan is already running"
elif [ $chk_state -eq 0 ] && [ $prov_in -eq 0 ]; then
echo "Fan is already OFF"
else
uhub -a $prov_in -p 2 > /dev/null 2> /dev/null
chk=$?
out_chk $chk $prov_in
fi
fi