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(){ AVERAGEPOWER(){
sensorid=${1} sensorid=${1}
daysback=${2} 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 if [ "${3}" = "both" ]; then
logsfound_amp=0; logsfound_amp=0;
logsfound_watt=0; logsfound_watt=0;
@@ -15,7 +26,7 @@ AVERAGEPOWER(){
total_watt=$(bc <<< "scale=2; ${total_watt}+${watt}") total_watt=$(bc <<< "scale=2; ${total_watt}+${watt}")
((logsfound_watt++)) ((logsfound_watt++))
fi 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 if [ "${logsfound_watt}" != "0" ]; then
average_amp=$(bc <<< "scale=2; ${total_amp}/${logsfound_amp}") average_amp=$(bc <<< "scale=2; ${total_amp}/${logsfound_amp}")
average_watt=$(bc <<< "scale=2; ${total_watt}/${logsfound_watt}") average_watt=$(bc <<< "scale=2; ${total_watt}/${logsfound_watt}")
@@ -33,7 +44,7 @@ AVERAGEPOWER(){
total=$(bc <<< "scale=2; ${total}+${!ptype}") total=$(bc <<< "scale=2; ${total}+${!ptype}")
((logsfound++)) ((logsfound++))
fi 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 [ "${logsfound}" != "0" ] && average=$(bc <<< "scale=2; ${total}/${logsfound}") || average=0
echo ${average} echo ${average}
fi fi
@@ -60,13 +71,26 @@ CHECKPOWER(){
esac esac
shift 1 shift 1
done done
[ "${avgdays}" = "0" ] && unset avgdays if [ "${avgdays}" != "" ]; then
[ "${avgdays}" != "" ] && avgdayshdr="${avgdays}-Day-Avg" || avgdayshdr="" 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 if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "mainsite" ]) && [ "${PTYPE}" != "esxi" ]; then
[ ${REPORT} -eq 0 ] && echo [ ${REPORT} -eq 0 ] && echo
[ ${REPORT} -eq 0 ] && DIVIDER . yellow ${PRI_WIDTH} [ ${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} DIVIDER . yellow ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Powerwall' ... " [ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Powerwall' ... "