/
00_aqi.300s.sh
executable file
·60 lines (50 loc) · 1.38 KB
/
00_aqi.300s.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
#!/usr/bin/env bash
source ~/.config/scripts/aqi.conf
URL="https://airapi.airly.eu/v2/measurements/installation?installationId=$SENSOR_ID"
API_KEY_PREFIX="apikey: "
API_KEY_HEADER="$API_KEY_PREFIX$API_KEY"
TYPE="Accept: application/json"
RESPONSE=$(curl -X GET \
--silent \
--header "$TYPE" \
--header "$API_KEY_HEADER" \
"$URL")
AQI=$(echo $RESPONSE | jq .current.indexes | jq '.[0]'.value | cut -f1 -d"." | cut -f1 -d",")
ADVICE=$(echo $RESPONSE | jq .current.indexes | jq '.[0]'.advice | cut -d "\"" -f 2)
DESC=$(echo $RESPONSE | jq .current.indexes | jq '.[0]'.description | cut -d "\"" -f 2)
if [ "$AQI" == "" ] ; then
echo " "
exit
fi
case 1 in
$(($AQI <= 50))) EMOJI="great!";;
$(($AQI <= 75))) EMOJI="medium";;
$(($AQI <= 100))) EMOJI="bad";;
$(($AQI >= 101))) EMOJI="very bad";;
esac
if [ "$AQI" == "null" ]; then
echo "?"
else
echo "AQI: $AQI ($EMOJI)"
fi
echo "---"
if [ "$AQI" == "null" ]; then
echo "API rate limit exceeded or sensor is off"
else
echo "measurement details:"
for i in {0..5}
do
if [ $i -lt 3 ]; then
tabs='\t\t\t\t'
elif [ $i -lt 5 ]; then
tabs='\t\t'
else
tabs='\t'
fi
echo -e $(echo $RESPONSE | jq .current.values | jq ".[$i]".name | cut -d "\"" -f 2) \
$tabs \
$(echo $RESPONSE | jq .current.values | jq ".[$i]".value)
done
echo $DESC
echo $ADVICE
fi