diff --git a/powerwall.sh b/powerwall.sh index 0ebf9af0..438bbf75 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -533,12 +533,20 @@ AVERAGEPOWER(){ CHECKPOWER(){ start=`date +%s` rm -f ${PW_TMPFOLDER}/*.hostpower* - avgdays=1 - + + while [ $# -gt 0 ]; do + case "$1" in + -avg) avgdays=${2};; + esac + shift + done + + [ "${avgdays}" != "" ] && avgdayshdr="${avgdays}-Day-Avg" || avgdayshdr="" + if [ "${1}" == "" ] || [ "${1}" == "all" ] || [ "${1}" == "mainsite" ]; then echo DIVIDER . yellow 75 - echo -e "${idsCL[Yellow]}Mainsite Power Information ${avgdays}-Day-Avg" + echo -e "${idsCL[Yellow]}Mainsite Power Information ${avgdayshdr}" DIVIDER . yellow 75 INVSTATSINFO=$(curl -s "http://${PW_INVERTER_IP}/stats.json") @@ -586,9 +594,13 @@ CHECKPOWER(){ # fi echo -e "${idsCL[LightCyan]}ServerRack Amps ${idsCL[Default]}: ${idsCL[Green]}${APCPDU_AMP}'amps${idsCL[Default]}" - average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['server-rack']} ${avgdays}) - [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` - average_disp="${idsCL[LightYellow]} ${average}'watts" + if [ "${avgdays}" != "" ]; then + average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['server-rack']} ${avgdays}) + [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` + average_disp="${idsCL[LightYellow]} ${average}'watts" + else + average_disp="" + fi echo -e "${idsCL[LightCyan]}ServerRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${APCPDU_WATT_disp}'watts ~ estimate${average_disp}${idsCL[Default]}" echo @@ -602,18 +614,26 @@ CHECKPOWER(){ fi echo -e "${idsCL[LightCyan]}NetworkRack Amps ${idsCL[Default]}: ${idsCL[Green]}${NETRK_AMP}'amps ~ estimate${idsCL[Default]}" - average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays}) - [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` - average_disp="${idsCL[LightYellow]} ${average}'watts" + if [ "${avgdays}" != "" ]; then + average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays}) + [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` + average_disp="${idsCL[LightYellow]} ${average}'watts" + else + average_disp="" + fi echo -e "${idsCL[LightCyan]}NetworkRack Wattage ${idsCL[Default]}: ${idsCL[Green]}${NETRK_WATT}'watts ~ estimate${average_disp}${idsCL[Default]}" echo echo -e "${idsCL[LightCyan]}Voltage ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLT}'volts${idsCL[Default]}" echo -e "${idsCL[LightCyan]}Voltage Drop ${idsCL[Default]}: ${idsCL[LightRed]}${VOLT_DROP}'volts${idsCL[Default]}" echo -e "${idsCL[LightCyan]}Total Amps ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_AMP}'amps${idsCL[Default]}" - average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays}) - [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` - average_disp="${idsCL[LightYellow]} ${average}'watts" + if [ "${avgdays}" != "" ]; then + average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays}) + [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` + average_disp="${idsCL[LightYellow]} ${average}'watts" + else + average_disp="" + fi echo -e "${idsCL[LightCyan]}Total Wattage ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_WATT_disp}'watts${average_disp}${idsCL[Default]}" echo @@ -624,7 +644,7 @@ CHECKPOWER(){ DIVIDER . yellow 75 - echo -e "${idsCL[Yellow]}Offsite Power Information ${avgdays}-Day-Avg" + echo -e "${idsCL[Yellow]}Offsite Power Information ${avgdayshdr}" DIVIDER . yellow 75 upsinfo=$(ssh -q -o ConnectTimeout=1 -o ConnectionAttempts=1 admin@10.2.1.1 'upsc CP1500PFCLCD') @@ -656,9 +676,13 @@ CHECKPOWER(){ echo -e "${idsCL[LightCyan]}UPS Voltage Out ${idsCL[Default]}: ${idsCL[Green]}${OFFSITE_VOLTOUT}'volts${idsCL[Default]}" echo echo -e "${idsCL[LightCyan]}Total Amps ${idsCL[Default]}: ${idsCL[Green]}${OFFSITE_AMPS}'amps ~ estimate${idsCL[Default]}" - average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['offsite-ups']} ${avgdays}) - [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` - average_disp="${idsCL[LightYellow]} ${average}'watts" + if [ "${avgdays}" != "" ]; then + average=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['offsite-ups']} ${avgdays}) + [[ "${average}" == *"."* ]] && [[ "${average}" != *".0"* ]] && average=`printf "%'.2f\n" ${average}` || average=`printf "%'.0f\n" ${average}` + average_disp="${idsCL[LightYellow]} ${average}'watts" + else + average_disp="" + fi echo -e "${idsCL[LightCyan]}Total Wattage ${idsCL[Default]}: ${idsCL[Green]}${OFFSITE_WATTS}'watts ~ estimate${average_disp}${idsCL[Default]}" echo echo -e "${idsCL[LightCyan]}Battery Capacity ${idsCL[Default]}: ${idsCL[Green]}${OFFSITE_BATT_CAP}%${idsCL[Default]}" @@ -668,7 +692,7 @@ CHECKPOWER(){ DIVIDER . yellow 75 - echo -e "${idsCL[Yellow]}ESXi Host Power Information ${avgdays}-Day-Avg" + echo -e "${idsCL[Yellow]}ESXi Host Power Information ${avgdayshdr}" DIVIDER . yellow 75 for SENSOR in ${PW_SENSOR_ORD[@]}; do