'check_loxone_klima.sh' hinzufügen
This commit is contained in:
85
check_loxone_klima.sh
Normal file
85
check_loxone_klima.sh
Normal 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
|
||||||
Reference in New Issue
Block a user