#!/bin/sh # NUT dummpyUPS driver file location FILE_LOCATION='/root/laptopbattery.dev' # get battery stats from the apm command BATTERY_PERCENT_LEVEL=$(acpiconf -i batt# | awk '/Remaining capacity:/ {print $3}'| sed -e 's/\%//') BATTERY_DESIGNED_CAPACITY=$(acpiconf -i batt# | awk '/Design capacity:/ {print ($3 / 1000)}') BATTERY_LAST_FULL_CAPACITY=$(acpiconf -i batt# | awk '/Last full capacity:/ {print ($4 / 1000)}') BATTERY_WEAR_PERCENT=$(echo "scale=2; 100 * ${BATTERY_LAST_FULL_CAPACITY} / ${BATTERY_DESIGNED_CAPACITY}" | bc -l) BATTERY_CURRENT=$(acpiconf -i batt# | awk '/Present rate:/ {print ($3 / 1000)}') UPS_MFR=$(acpiconf -i batt# | awk '/Model number:/ {print $3}') UPS_MODEL=$(acpiconf -i batt# | awk '/Model number:/ {print $3" "$4}') UPS_SERIAL=$(acpiconf -i batt# | awk '/Serial number:/ {print $3}') UPS_VOLTAGE=$(acpiconf -i batt# | awk '/Present voltage:/ {print ($3 / 1000)}') BATTERY_STATE=$(acpiconf -i batt# | awk '/State:/ {print $2}') BATTERY_RUNTIME=$(acpiconf -i batt# | awk '/Remaining time:/ {print $3}') if [ ${BATTERY_STATE} = 'discharging' ]; then BATTERY_RUNTIME=$(echo ${BATTERY_RUNTIME} | awk -F: '{ print ($1 * 3600) + ($2 * 60) }') if [ ${BATTERY_PERCENT_LEVEL} > 25 ]; then BATTERY_STATE='OB' else BATTERY_STATE='LB' fi elif [ ${BATTERY_STATE} = 'charging' ]; then BATTERY_STATE='CHRG' elif [ ${BATTERY_STATE} = 'high' ]; then BATTERY_STATE='OL' if [ ${BATTERY_WEAR_PERCENT} <= 25 ]; then BATTERY_STATE='RB' fi fi echo "# Last Updated: $(date)" > ${FILE_LOCATION} echo "battery.charge: ${BATTERY_PERCENT_LEVEL}" >> ${FILE_LOCATION} echo "battery.runtime: ${BATTERY_RUNTIME}" >> ${FILE_LOCATION} echo "ups.mfr: ${UPS_MFR}" >> ${FILE_LOCATION} echo "ups.model: ${UPS_MODEL}" >> ${FILE_LOCATION} echo "ups.serial: ${UPS_SERIAL}" >> ${FILE_LOCATION} echo "ups.status: ${BATTERY_STATE}" >> ${FILE_LOCATION} echo "battery.voltage: ${UPS_VOLTAGE}" >> ${FILE_LOCATION} echo "battery.capacity: ${BATTERY_LAST_FULL_CAPACITY}" >> ${FILE_LOCATION} echo "battery.designedCapacity: ${BATTERY_DESIGNED_CAPACITY}" >> ${FILE_LOCATION} echo "battery.wear: ${BATTERY_WEAR_PERCENT}" >> ${FILE_LOCATION} echo "battery.current: ${BATTERY_CURRENT}" >> ${FILE_LOCATION}