#!/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