check_zigbee_battery.sh 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  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)
  30. if [ $ZigBeeDeviceBattery -le $ZigBeeDeviceCritical ] ; then
  31. echo "Critical: Battery is at ${ZigBeeDeviceBattery}%, which is below Critical-Value (${ZigBeeDeviceCritical}%) | battery_percent=${ZigBeeDeviceBattery}"
  32. beenden 2
  33. elif [ $ZigBeeDeviceBattery -le $ZigBeeDeviceWarning ] ; then
  34. echo "Warning: Battery is at ${ZigBeeDeviceBattery}%, which is below Warning-Value (${ZigBeeDeviceWarning}%) | battery_percent=${ZigBeeDeviceBattery}"
  35. beenden 1
  36. else
  37. echo "OK: Battery is at ${ZigBeeDeviceBattery}% | battery_percent=${ZigBeeDeviceBattery}"
  38. beenden 0
  39. fi
  40. echo "Battery-Status unknown"
  41. beenden 3