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
| #!/bin/bash
#Arguments
while getopts A:B:C:D:E:F:hV OPT
do
case $OPT in
A) AUTOMATE=$OPTARG ;;
B) OBJECT=$OPTARG ;;
C) IDENTIFIER=$OPTARG ;;
D) WARN=$OPTARG ;;
E) CRIT=$OPTARG ;;
F) MAX=$OPTARG ;;
h)
print_help
exit $STATE_UNKNOWN
;;
V)
print_version
exit $STATE_UNKNOWN
;;
esac
done
#On va chercher la valeur
val=$(/tmp/bacnet-stack-0.8.3/bin/bacrp $AUTOMATE $OBJECT $IDENTIFIER 85 | sed 's/\r//')
unite=$(/tmp/bacnet-stack-0.8.3/bin/bacrp $AUTOMATE $OBJECT $IDENTIFIER 117 | sed 's/\r//')
#Arrondir le nombre
valeur=$(echo $val | cut -f1 -d\.)
#Réinscription de l'unité
unity=$(echo $unite | sed 's/degrees-celsius/°C/g' | sed 's/percent-relative-humidity/% humidité relative/g' | sed 's/percent/%/g' | sed 's/no-units//g' | sed 's/kilowatt-hours/kWh/g' | sed 's/cubic-meters-per-hour/m3h/g' | sed 's/watts/W/g' | sed 's/meters/m/g' | sed 's/hours/h/g' | sed 's/revolutions-per-minute/tr\/min/g' | sed 's/parts-per-million/ppm/g')
#Condition
if (( $(echo " "$valeur" > "$CRIT" " | bc -l) ));then
echo " "$valeur" "$unity" | $unity=$valeur;$WARN;$CRIT;0;$MAX " && exit 2
elif (( $(echo " "$valeur" >= "$WARN" " | bc -l) ));then
echo " "$valeur" "$unity" | $unity=$valeur;$WARN;$CRIT;0;$MAX " && exit 1
else
echo " "$valeur" "$unity" | $unity=$valeur;$WARN;$CRIT;0;$MAX " && exit 0
fi |
Partager