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