Update power.inc.sh

This commit is contained in:
2024-02-10 23:26:27 -06:00
parent 2671e4d1ed
commit 06b285a3a2

View File

@@ -1,6 +1,17 @@
AVERAGEPOWER(){
sensorid=${1}
daysback=${2}
if [[ "${daysback^^}" = *"M"* ]]; then
interval="${avgdays::-1} MINUTE"
elif [[ "${daysback^^}" = *"H"* ]]; then
interval="${avgdays::-1} HOUR"
elif [[ "${daysback^^}" = *"D"* ]]; then
interval="${avgdays::-1} DAY"
elif [[ "${daysback}" =~ ^[0-9]+$ ]]; then
interval="${avgdays} DAY"
fi
if [ "${3}" = "both" ]; then
logsfound_amp=0;
logsfound_watt=0;
@@ -15,7 +26,7 @@ AVERAGEPOWER(){
total_watt=$(bc <<< "scale=2; ${total_watt}+${watt}")
((logsfound_watt++))
fi
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,amp,watt from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${daysback} DAY) AND NOW() ORDER BY id DESC;")
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,amp,watt from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${interval}) AND NOW() ORDER BY id DESC;")
if [ "${logsfound_watt}" != "0" ]; then
average_amp=$(bc <<< "scale=2; ${total_amp}/${logsfound_amp}")
average_watt=$(bc <<< "scale=2; ${total_watt}/${logsfound_watt}")
@@ -33,7 +44,7 @@ AVERAGEPOWER(){
total=$(bc <<< "scale=2; ${total}+${!ptype}")
((logsfound++))
fi
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,${ptype} from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${daysback} DAY) AND NOW() ORDER BY id DESC;")
done < <(${mysql_conn} -se "USE servermonitor; SELECT date,${ptype} from power_data WHERE sensorid=${sensorid} AND date BETWEEN DATE_SUB(DATE(NOW()), INTERVAL ${interval}) AND NOW() ORDER BY id DESC;")
[ "${logsfound}" != "0" ] && average=$(bc <<< "scale=2; ${total}/${logsfound}") || average=0
echo ${average}
fi
@@ -60,13 +71,26 @@ CHECKPOWER(){
esac
shift 1
done
[ "${avgdays}" = "0" ] && unset avgdays
[ "${avgdays}" != "" ] && avgdayshdr="${avgdays}-Day-Avg" || avgdayshdr=""
if [ "${avgdays}" != "" ]; then
if [ "${avgdays}" = "0" ]; then
unset avgdays
elif [[ "${avgdays^^}" = *"M"* ]]; then
avgdays_disp="${avgdays::-1}Min"
elif [[ "${avgdays^^}" = *"H"* ]]; then
avgdays_disp="${avgdays::-1}Hr"
elif [[ "${avgdays^^}" = *"D"* ]]; then
avgdays_disp="${avgdays::-1}Day"
elif [[ "${avgdays}" =~ ^[0-9]+$ ]]; then
avgdays_disp="${avgdays}Day"
fi
else
avgdays=noavg
fi
if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "mainsite" ]) && [ "${PTYPE}" != "esxi" ]; then
[ ${REPORT} -eq 0 ] && echo
[ ${REPORT} -eq 0 ] && DIVIDER . yellow ${PRI_WIDTH}
echo -e "${idsCL[Yellow]}Mainsite Power Information ${idsCL[LightYellow]}${avgdayshdr}"
echo -e "${idsCL[Yellow]}Mainsite Power Information ${idsCL[LightYellow]}${avgdays_disp}AVG"
DIVIDER . yellow ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Powerwall' ... "