|
@@ -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
|