Check_MK - Meteohub script
#!/bin/bash
IFS=' '
fivemin=`date --utc +%Y%m%d%H%M%S --date="5 min ago"`
th0="buiten"
th1="zolder"
thb0="huiskamer"
uv0="UVindex"
wind0="wind"
rain0="regen"
wget -qO- "http://localhost/meteolog.cgi?mode=data" | while read line
do
arr=($line)
# If data is not older than 5 min.
if [ ${arr[0]} -ge $fivemin ]; then
case ${arr[1]} in
th0)
echo "0 sensor-$th0 temp=${arr[2]}|hum=${arr[3]}|dew=${arr[4]} Temp: ${arr[2]} deg. Celcius"
;;
th1)
if [ $(echo "${arr[2]} < 30" | bc) -eq 1 ]; then
echo "0 sensor-$th1 temp=${arr[2]};30;35;10;40|hum=${arr[3]};;;0;100|dew=${arr[4]} Temp: ${arr[2]} deg. Celcius"
elif [ $(echo "${arr[2]} >= 30" | bc) -eq 1 -a $(echo "${arr[2]} < 35" | bc) -eq 1 ]; then
echo "1 sensor-$th1 temp=${arr[2]};30;35;10;40|hum=${arr[3]};;;0;100|dew=${arr[4]} Temp: ${arr[2]} deg. Celcius"
elif [ $(echo "${arr[2]} >= 35" | bc) -eq 1 ]; then
echo "2 sensor-$th1 temp=${arr[2]};30;35;10;40|hum=${arr[3]};;;0;100|dew=${arr[4]} Temp: ${arr[2]} deg. Celcius"
fi
;;
thb0)
case ${arr[7]} in
0)
forecast="rainy"
;;
1)
forecast="cloudy"
;;
2)
forecast="some clouds"
;;
3)
forecast="sunny"
;;
4)
forecast="snowy"
;;
5)
forecast="clouds at night"
;;
6)
forecast="clear night"
;;
esac
echo "0 sensor-$thb0 temp=${arr[2]}|hum=${arr[3]}|dew=${arr[4]}|press=${arr[5]}|seapress=${arr[6]}|forecast=${arr[7]} Temp: ${arr[2]} deg. Celcius, forecast: $forecast"
;;
wind0)
echo "0 sensor-$wind0 dir=${arr[2]}|gust=${arr[3]};20;25|avgspeed=${arr[4]};20;25|wchill=${arr[5]} Wind from ${arr[2]} deg. ${arr[4]} m/s avg. speed"
;;
uv0)
echo "0 sensor-$uv0 uvindex=${arr[2]} UV index: ${arr[2]}"
;;
rain0)
echo "0 sensor-$rain0 rainrate=${arr[2]}|raintotal=${arr[3]}|delta=${arr[4]} Rain rate: ${arr[2]} mm/h, total ${arr[3]} mm "
;;
esac
fi
done