Update power.inc.sh

This commit is contained in:
2025-05-31 12:05:36 -05:00
parent 686605b7db
commit 844bf24901

View File

@@ -301,9 +301,109 @@ CHECKPOWER(){
DIVIDER . lightCyan ${PRI_WIDTH}
fi
#########################################################################################################
else ############### KYLE #########################################################################################################
else
tmp=tmp
DIVIDER . yellow ${PRI_WIDTH}
echo -en "${idsCL[Yellow]}Mainsite Power Information"
[ "${avgdays}" != "" ] && echo -e " ${idsCL[LightYellow]}--${avgdays_disp}-Averages---" || echo
DIVIDER . yellow ${PRI_WIDTH}
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'UPS' ... "
if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then
UPS_STATUS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.3.9 | sed 's/.*: //')
UPS_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.3.3.1.3.1 | sed 's/.*: //')
UPS_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //')
UPS_LOAD=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.3.9 | sed 's/.*: //')
UPS_AMPS=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')
UPS_AMPS=`echo "scale=2; ${UPS_AMPS}/10" | bc`
UPS_WATTS=`echo "scale=2; ${UPS_AMPS}/10" | bc`
UPS_BATT_RUNTIME=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.18.0 | sed 's/.*: //')
UPS_BATT_VOLT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.10.0 | sed 's/.*: //')
UPS_BATT_CAP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} .1.3.6.1.4.1.476.1.42.3.5.1.19.0 | sed 's/.*: //')
declare -A UPS_MISC
for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do
UPS_MISC[${mSENSOR}]=$(GET_TUYA_POWER ${mSENSOR})
done
fi
[ ${REPORT} -eq 0 ] && echo -en "\r\033[K"
echo -e "${idsCL[White]}UPS Status ${idsCL[Default]}: ${idsCL[LightCyan]}${OFFSITE_STATUS}${idsCL[Default]}"
if [ ${REPORT} -eq 0 ]; then
echo
echo -e "${idsCL[White]}UPS Voltage In ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${UPS_VOLTIN}`'V${idsCL[Default]}"
echo -e "${idsCL[White]}UPS Voltage Out ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${UPS_VOLTOUT}`'V${idsCL[Default]}"
fi
echo -e "${idsCL[White]}UPS Load Usage ${idsCL[Default]}: ${idsCL[Green]}${UPS_LOAD}'%${idsCL[Default]}"
[ ${REPORT} -eq 0 ] && echo
echo -e "${idsCL[White]}UPS Battery Capacity ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${UPS_BATT_CAP}`'%${idsCL[Default]}"
echo -e "${idsCL[White]}UPS Battery Runtime ${idsCL[Default]}: ${idsCL[Green]}${UPS_BATT_RUNTIME}'mins${idsCL[Default]}"
if [ ${REPORT} -eq 0 ]; then
echo -e "${idsCL[White]}UPS Battery Voltage ${idsCL[Default]}: ${idsCL[Green]}${UPS_BATT_VOLT}'V${idsCL[Default]}"
echo
fi
TOTAL_MISC_WATTS=0; TOTAL_MISC_AMPS=0
if [ ${REPORT} -eq 0 ]; then
echo -en "${idsCL[LightCyan]}Misc Sensors Amps Watts"
[ "${avgdays}" != "" ] && echo -e " Amps Watts" || echo -e " Volts"
fi
for mSENSOR in "${!UPS_MISC[@]}"; do
IFS=: read -r AMP WATT VOLT <<< ${UPS_MISC[${mSENSOR}]}; unset IFS
TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | bc`
TOTAL_MISC_AMPS=`echo "scale=2; ${TOTAL_MISC_AMPS}+${AMP}" | bc`
AD1="${PW_MISCSENSOR_DESC[${mSENSOR}]}"; c=0; spc1=''; spca=`expr 25 - ${#AD1}`; until [ ${c} = ${spca} ]; do spc1="${spc1} "; ((c++)); done
AD2=$(IDS_NUMBER_FORMAT ${AMP} 2 yes); c=0; spc2=''; spca=`expr ${wspc} - ${#AD2}`; until [ ${c} = ${spca} ]; do spc2="${spc2} "; ((c++)); done
AD3=$(IDS_NUMBER_FORMAT ${WATT} 1 yes)
[ ${REPORT} -eq 0 ] && echo -en "${idsCL[Default]}${AD1}${spc1}: ${idsCL[Green]}${AD2}'A${spc2}${AD3}'W"
if [ "${avgdays}" == "" ]; then
c=0; spc3=''; spca=`expr ${wspc} - ${#AD3}`; until [ ${c} = ${spca} ]; do spc3="${spc3} "; ((c++)); done
[ ${REPORT} -eq 0 ] && echo -e "${spc3}${VOLT}'V${idsCL[Default]}"
else
echo -en "${idsCL[Yellow]} Calculating ${avgdays_disp} Average ... "
avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID[${mSENSOR}]} ${avgdays} both)
AMP_avg=$(echo ${avg} | cut -d'~' -f 1)
WATT_avg=$(echo ${avg} | cut -d'~' -f 2)
[ ${REPORT} -eq 0 ] && echo -en "\r\033[K"
echo -en "${idsCL[Default]}${AD1}${spc1}: ${idsCL[Green]}${AD2}'A${spc2}${AD3}'W"
AD=$(IDS_NUMBER_FORMAT ${AMP_avg} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done
echo -e "${idsCL[LightYellow]} ${AD}'A${spc}`IDS_NUMBER_FORMAT ${WATT_avg} 1 yes`'W"
fi
done
DIVIDER . lightCyan ${PRI_WIDTH}
[ "${avgdays}" != "" ] && echo -e " --${idsCL[LightYellow]}${avgdays_disp}-Averages---"
echo -en "${idsCL[LightCyan]}Totals Amps Watts"
[ "${avgdays}" != "" ] && echo -e " Amps Watts" || echo
if (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )); then
AW=${TOTAL_MISC_WATTS}
AD=${TOTAL_MISC_AMPS}
else
AW=${OFFSITE_WATTS}
AD=${OFFSITE_AMPS}
fi
AD=$(IDS_NUMBER_FORMAT ${AD} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done
echo -en "${idsCL[White]}Mainsite Equipment ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${AW} 1 yes`'W"
if [ "${avgdays}" != "" ]; then
echo -en "${idsCL[Yellow]} Calculating Mainsite Equipment Total Averages ... "
UPS_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['mainsite-ups']} ${avgdays} both)
UPS_AMP_avg=$(echo ${UPS_avg} | cut -d'~' -f 1)
UPS_WATT_avg=$(echo ${UPS_avg} | cut -d'~' -f 2)
echo -en "\r\033[K"
echo -en "${idsCL[White]}Mainsite Equipment ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${AW} 1 yes`'W"
AD=$(IDS_NUMBER_FORMAT ${OFFSITE_AMP_avg} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done
echo -e "${idsCL[LightYellow]} ${AD}'A${spc}`IDS_NUMBER_FORMAT ${OFFSITE_WATT_avg} 1 yes`'W"
else
echo
fi
fi
@@ -419,7 +519,7 @@ CHECKPOWER(){
echo -e "${idsCL[LightYellow]} ${AD}'A${spc}`IDS_NUMBER_FORMAT ${OFFSITE_WATT_avg} 1 yes`'W"
else
echo
fi
fi
# echo -en "${idsCL[White]}Total Amps ${idsCL[Default]}: ${idsCL[Green]}${AD}'A ${idsCL[Default]}~ est${idsCL[Green]}${idsCL[Default]}"
# [ "${avgdays}" != "" ] && echo -e "${idsCL[LightYellow]} `IDS_NUMBER_FORMAT ${OFFSITE_AMP_avg}`'A" || echo -e "${idsCL[Default]}"