Files
check_zigbee/check_zigbee_battery.sh
2022-10-01 14:03:44 +02:00

58 lines
1.6 KiB
Bash
Executable File

#!/bin/bash
# Return Codes:
# 0 - Ok! - Up
# 1 - Warning - Flaky
# 2 - Critical - Down
# 3 - Unknown - Ummm... What happened?!
print_usage() {
echo "Usage: check_zigbee_battery.sh [Device-ID] [Warning percent] [Critical percent]"
echo "Example: check_zigbee_battery.sh 84ba20fffe77b851 20 10"
}
function beenden {
exit $1
}
#Parameter prüfen
if [ $# -ne 3 ]; then
print_usage
beenden 3
fi
ZigBeeDeviceID=$1
ZigBeeDeviceWarning=$2
ZigBeeDeviceCritical=$3
ZigBeeDeviceWarning=$(expr $ZigBeeDeviceWarning + 0)
ZigBeeDeviceCritical=$(expr $ZigBeeDeviceCritical + 0)
ZigBeeDeviceBattery=$(curl -S -m 5 http://172.30.80.246:8087/getPlainValue/zigbee.0.${ZigBeeDeviceID}.battery 2>/dev/null)
if [ $? -ne 0 ] ; then
echo "ioBroker-API not available or wrong Zigbee-ID or no battery present"
beenden 3
fi
ZigBeeDeviceBattery=$(expr $ZigBeeDeviceBattery + 0 2>/dev/null)
if [ $? -ne 0 ] ; then
echo "Unknown: Got unknown value from ioBroker"
beenden 3
fi
if [ $ZigBeeDeviceBattery -le $ZigBeeDeviceCritical ] ; then
echo "Critical: Battery is at ${ZigBeeDeviceBattery}%, which is below Critical-Value (${ZigBeeDeviceCritical}%) | battery_percent=${ZigBeeDeviceBattery}"
beenden 2
elif [ $ZigBeeDeviceBattery -le $ZigBeeDeviceWarning ] ; then
echo "Warning: Battery is at ${ZigBeeDeviceBattery}%, which is below Warning-Value (${ZigBeeDeviceWarning}%) | battery_percent=${ZigBeeDeviceBattery}"
beenden 1
else
echo "OK: Battery is at ${ZigBeeDeviceBattery}% | battery_percent=${ZigBeeDeviceBattery}"
beenden 0
fi
echo "Battery-Status unknown"
beenden 3