check_zigbee_battery.sh 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. #!/bin/bash
  2. # Return Codes:
  3. # 0 - Ok! - Up
  4. # 1 - Warning - Flaky
  5. # 2 - Critical - Down
  6. # 3 - Unknown - Ummm... What happened?!
  7. print_usage() {
  8. echo "Usage: check_zigbee_battery.sh [Device-ID] [Warning percent] [Critical percent]"
  9. echo "Example: check_zigbee_battery.sh 84ba20fffe77b851 20 10"
  10. }
  11. function beenden {
  12. exit $1
  13. }
  14. #Parameter prüfen
  15. if [ $# -ne 3 ]; then
  16. print_usage
  17. beenden 3
  18. fi
  19. ZigBeeDeviceID=$1
  20. ZigBeeDeviceWarning=$2
  21. ZigBeeDeviceCritical=$3
  22. ZigBeeDeviceWarning=$(expr $ZigBeeDeviceWarning + 0)
  23. ZigBeeDeviceCritical=$(expr $ZigBeeDeviceCritical + 0)
  24. ZigBeeDeviceBattery=$(curl -S -m 5 http://172.30.80.246:8087/getPlainValue/zigbee.0.${ZigBeeDeviceID}.battery 2>/dev/null)
  25. if [ $? -ne 0 ] ; then
  26. echo "ioBroker-API not available or wrong Zigbee-ID or no battery present"
  27. beenden 3
  28. fi
  29. ZigBeeDeviceBattery=$(expr $ZigBeeDeviceBattery + 0 2>/dev/null)
  30. if [ $? -ne 0 ] ; then
  31. echo "Unknown: Got unknown value from ioBroker"
  32. beenden 3
  33. fi
  34. if [ $ZigBeeDeviceBattery -le $ZigBeeDeviceCritical ] ; then
  35. echo "Critical: Battery is at ${ZigBeeDeviceBattery}%, which is below Critical-Value (${ZigBeeDeviceCritical}%) | battery_percent=${ZigBeeDeviceBattery}"
  36. beenden 2
  37. elif [ $ZigBeeDeviceBattery -le $ZigBeeDeviceWarning ] ; then
  38. echo "Warning: Battery is at ${ZigBeeDeviceBattery}%, which is below Warning-Value (${ZigBeeDeviceWarning}%) | battery_percent=${ZigBeeDeviceBattery}"
  39. beenden 1
  40. else
  41. echo "OK: Battery is at ${ZigBeeDeviceBattery}% | battery_percent=${ZigBeeDeviceBattery}"
  42. beenden 0
  43. fi
  44. echo "Battery-Status unknown"
  45. beenden 3