Browse Source

'check_loxone_klima.sh' hinzufügen

Daniel Wenzel 3 years ago
parent
commit
eb264ba083
1 changed files with 85 additions and 0 deletions
  1. 85 0
      check_loxone_klima.sh

+ 85 - 0
check_loxone_klima.sh

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