| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 | #!/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üfenif [ $# -ne 3 ]; then  print_usage  beenden 3fiRAUMNAME=$1WARNSCHWELLE=$2CRITSCHWELLE=$3TEMPIST=$(curl -s http://nhi-00-sl-iobk:1880/Icinga_${RAUMNAME}_Temp_Ist)if [ $? -ne 0 ] ; then  echo "Fehler beim Abrufen der Temperatur"  beenden 3fiecho $TEMPIST | grep "Cannot GET" > /dev/nullif [ $? -eq 0 ] ; then  echo "NodeRED hat den Wert nicht gefunden"  beenden 3fiTEMPSOLL=$(curl -s http://nhi-00-sl-iobk:1880/Icinga_${RAUMNAME}_Temp_Soll)if [ $? -ne 0 ] ; then  echo "Fehler beim Abrufen der Temperatur"  beenden 3fiecho $TEMPSOLL | grep "Cannot GET" > /dev/nullif [ $? -eq 0 ] ; then  echo "NodeRED hat den Wert nicht gefunden"  beenden 3fi#if [ $TEMPIST -eq $TEMPSOLL ] ; thenif (( $(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 0fiif (( $(echo "$TEMPIST < $TEMPSOLL" | bc -l) )); then  TEMPDIFF=$(echo "$TEMPSOLL - $TEMPIST" | bc)else  TEMPDIFF=$(echo "$TEMPIST - $TEMPSOLL" | bc)fiif (( $(echo "$TEMPDIFF < 1" | bc -l) )); then  TEMPDIFFNULL="0${TEMPDIFF}"else  TEMPDIFFNULL=${TEMPDIFF}fiif (( $(echo "$TEMPDIFF < 0" | bc -l) )); then  echo "Fehler bei der Differenzberechnung"  beenden 3fiif (( $(echo "$TEMPDIFF > $CRITSCHWELLE" | bc -l) )); then  echo "Critical: Temperaturdifferenz von ${RAUMNAME} bei ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"  beenden 2elif (( $(echo "$TEMPDIFF > $WARNSCHWELLE" | bc -l) )); then  echo "Warning: Temperaturdifferenz von ${RAUMNAME} bei ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"  beenden 1else  echo "OK: Raumtemperatur von ${RAUMNAME} ist im Sollbereich, Abweichung ${TEMPDIFFNULL}°C | temp_soll=${TEMPSOLL} temp_ist=${TEMPIST} temp_diff=${TEMPDIFFNULL}"  beenden 0fibeenden 0
 |