'check_loxone_klima.sh' hinzufügen

This commit is contained in:
2022-01-31 22:21:26 +01:00
parent a8722420e8
commit eb264ba083

85
check_loxone_klima.sh Normal file
View File

@@ -0,0 +1,85 @@
#!/bin/bash
# Return Codes:
# 0 - Ok! - Up
# 1 - Warning - Flaky
# 2 - Critical - Down
# 3 - Unknown - Ummm... What happened?!
print_usage() {
echo "Usage: check_loxone_klima.sh [Raumkürzel] [Abweichung Warning] [Abweichung Critical]"
echo "Beispiel: check_loxone_klima.sh AK 2 3"
}
function beenden {
exit $1
}
#Parameter prüfen
if [ $# -ne 3 ]; then
print_usage
beenden 3
fi
RAUMNAME=$1
WARNSCHWELLE=$2
CRITSCHWELLE=$3
TEMPIST=$(curl -s http://nhi-00-sl-iobk:1880/Icinga_${RAUMNAME}_Temp_Ist)
if [ $? -ne 0 ] ; then
echo "Fehler beim Abrufen der Temperatur"
beenden 3
fi
echo $TEMPIST | grep "Cannot GET" > /dev/null
if [ $? -eq 0 ] ; then
echo "NodeRED hat den Wert nicht gefunden"
beenden 3
fi
TEMPSOLL=$(curl -s http://nhi-00-sl-iobk:1880/Icinga_${RAUMNAME}_Temp_Soll)
if [ $? -ne 0 ] ; then
echo "Fehler beim Abrufen der Temperatur"
beenden 3
fi
echo $TEMPSOLL | grep "Cannot GET" > /dev/null
if [ $? -eq 0 ] ; then
echo "NodeRED hat den Wert nicht gefunden"
beenden 3
fi
#if [ $TEMPIST -eq $TEMPSOLL ] ; then
if (( $(echo "$TEMPIST == $TEMPSOLL" | bc -l) )); then
echo "Soll- und Ist-Temperatur von ${RAUMNAME} ist gleich | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=0"
beenden 0
fi
if (( $(echo "$TEMPIST < $TEMPSOLL" | bc -l) )); then
TEMPDIFF=$(echo "$TEMPSOLL - $TEMPIST" | bc)
else
TEMPDIFF=$(echo "$TEMPIST - $TEMPSOLL" | bc)
fi
if (( $(echo "$TEMPDIFF < 1" | bc -l) )); then
TEMPDIFFNULL="0${TEMPDIFF}"
else
TEMPDIFFNULL=${TEMPDIFF}
fi
if (( $(echo "$TEMPDIFF < 0" | bc -l) )); then
echo "Fehler bei der Differenzberechnung"
beenden 3
fi
if (( $(echo "$TEMPDIFF > $CRITSCHWELLE" | bc -l) )); then
echo "Critical: Temperaturdifferenz von ${RAUMNAME} bei ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"
beenden 2
elif (( $(echo "$TEMPDIFF > $WARNSCHWELLE" | bc -l) )); then
echo "Warning: Temperaturdifferenz von ${RAUMNAME} bei ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"
beenden 1
else
echo "OK: Raumtemperatur von ${RAUMNAME} ist im Sollbereich, Abweichung ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"
beenden 0
fi
beenden 0