From 5f671c4bad86ebb3216ae3f43d08d72de0dd8692 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 31 May 2025 11:26:47 -0500 Subject: [PATCH] Update power.inc.sh --- inc/power.inc.sh | 373 ++++++++++++++++++++++++----------------------- 1 file changed, 191 insertions(+), 182 deletions(-) diff --git a/inc/power.inc.sh b/inc/power.inc.sh index c52028bf..3a6ea10b 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -95,215 +95,224 @@ CHECKPOWER(){ 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 'Powerwall' ... " - INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json") - if [ "${INVSTATSINFO}" != "" ]; then - [ "${TEST_INPUTACV}" != "" ] && INPUTV=${TEST_INPUTACV} || INPUTV=$(echo ${INVSTATSINFO} | jq '.inputs .inV') - INPUTA=`echo ${INVSTATSINFO} | jq '.inputs .inA'` - INV_ALARM=`echo ${INVSTATSINFO} | jq '.errors .Alms'` - [ "${INV_ALARM}" = "0" ] && INV_ALARM_disp="${idsCL[Green]}No Alarms (${INV_ALARM})" || INV_ALARM_disp="${idsCL[LightRed]}${PW_INVERTER_ALARMS[${INV_ALARM}]}" - INV_ERROR=`echo ${INVSTATSINFO} | jq '.errors .Err'` - [ "${INV_ERROR}" = "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors (${INV_ERROR})" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}" - INV_STATE=`echo ${INVSTATSINFO} | jq '.stats .invSTATES'` - [ "${INV_STATE}" != "0" ] && INV_STATE_disp="${idsCL[Green]}${PW_INVERTER_STATES[${INV_STATE}]}" || INV_STATE_disp="${idsCL[LightRed]}${PW_INVERTER_STATES[${INV_STATE}]}" - INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'` - ([ "${INV_MODE}" != "3" ] && [ "${INV_MODE}" != "4" ] && [ "${INV_MODE}" != "E" ]) && INV_MODE_disp="${idsCL[Green]}${PW_INVERTER_MODES[${INV_MODE}]}" || INV_MODE_disp="${idsCL[LightRed]}${PW_INVERTER_MODES[${INV_MODE}]}" - OUTPUTV=`echo ${INVSTATSINFO} | jq '.outputs .outV'` - OUTPUTV2=`echo "scale=2; ${OUTPUTV}/2" | bc` - OUTPUTA=`echo ${INVSTATSINFO} | jq '.outputs .outA'` - OUTPUTA2=`echo "scale=2; ${OUTPUTA}*2" | bc` - OUTPUTW=`echo ${INVSTATSINFO} | jq '.outputs .outW'` - [ "${TEST_BATTVOLT}" != "" ] && BATTV=${TEST_BATTVOLT} || BATTV=`echo ${INVSTATSINFO} | jq '.inputs .battV'` - BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` - BATTLIFE=`echo "scale=2; (${BATTV}*100)/${BATT_FULL}" | bc` - if (( $(bc <<<"${BATTV} >= ${FLOAT_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then - if (( $(bc <<<"${BATTV} >= ${BULK_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then - BATTA_disp="${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Bulk Charging" + if [[ "${IP}" != "10.6.1"* ]]; then + + [ ${REPORT} -eq 0 ] && echo -en "${idsCL[Yellow]}Pulling data from 'Powerwall' ... " + + INVSTATSINFO=$(curl -m 3 -s "http://${PW_INVERTER_IP}/stats.json") + if [ "${INVSTATSINFO}" != "" ]; then + [ "${TEST_INPUTACV}" != "" ] && INPUTV=${TEST_INPUTACV} || INPUTV=$(echo ${INVSTATSINFO} | jq '.inputs .inV') + INPUTA=`echo ${INVSTATSINFO} | jq '.inputs .inA'` + INV_ALARM=`echo ${INVSTATSINFO} | jq '.errors .Alms'` + [ "${INV_ALARM}" = "0" ] && INV_ALARM_disp="${idsCL[Green]}No Alarms (${INV_ALARM})" || INV_ALARM_disp="${idsCL[LightRed]}${PW_INVERTER_ALARMS[${INV_ALARM}]}" + INV_ERROR=`echo ${INVSTATSINFO} | jq '.errors .Err'` + [ "${INV_ERROR}" = "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors (${INV_ERROR})" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}" + INV_STATE=`echo ${INVSTATSINFO} | jq '.stats .invSTATES'` + [ "${INV_STATE}" != "0" ] && INV_STATE_disp="${idsCL[Green]}${PW_INVERTER_STATES[${INV_STATE}]}" || INV_STATE_disp="${idsCL[LightRed]}${PW_INVERTER_STATES[${INV_STATE}]}" + INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'` + ([ "${INV_MODE}" != "3" ] && [ "${INV_MODE}" != "4" ] && [ "${INV_MODE}" != "E" ]) && INV_MODE_disp="${idsCL[Green]}${PW_INVERTER_MODES[${INV_MODE}]}" || INV_MODE_disp="${idsCL[LightRed]}${PW_INVERTER_MODES[${INV_MODE}]}" + OUTPUTV=`echo ${INVSTATSINFO} | jq '.outputs .outV'` + OUTPUTV2=`echo "scale=2; ${OUTPUTV}/2" | bc` + OUTPUTA=`echo ${INVSTATSINFO} | jq '.outputs .outA'` + OUTPUTA2=`echo "scale=2; ${OUTPUTA}*2" | bc` + OUTPUTW=`echo ${INVSTATSINFO} | jq '.outputs .outW'` + [ "${TEST_BATTVOLT}" != "" ] && BATTV=${TEST_BATTVOLT} || BATTV=`echo ${INVSTATSINFO} | jq '.inputs .battV'` + BATTA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'` + BATTLIFE=`echo "scale=2; (${BATTV}*100)/${BATT_FULL}" | bc` + if (( $(bc <<<"${BATTV} >= ${FLOAT_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then + if (( $(bc <<<"${BATTV} >= ${BULK_CHARGE}") )) || ([ "${PW_INVERTER_MODES[${INV_MODE}]}" == "AC Input" ] && (( $(bc <<<"${BATTA} < -2") ))); then + BATTA_disp="${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Bulk Charging" + else + BATTA_disp="${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Float Charging" + fi + elif [ "${BATTA}" = "-0.1" ] || [ "${BATTA}" = "-0.2" ] || [ "${BATTA}" = "-0.3" ]; then + BATTA_disp="${idsCL[LightCyan]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Standby" else - BATTA_disp="${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Float Charging" + BATTA_disp="${idsCL[LightRed]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Discharging" fi - elif [ "${BATTA}" = "-0.1" ] || [ "${BATTA}" = "-0.2" ] || [ "${BATTA}" = "-0.3" ]; then - BATTA_disp="${idsCL[LightCyan]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Standby" - else - BATTA_disp="${idsCL[LightRed]}`IDS_NUMBER_FORMAT ${BATTA}`'A ${idsCL[LightCyan]}- Discharging" fi - fi - # if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then - SVRRM_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.2.2.1.3.1.1 | sed 's/.*: //') - SVRRM_VOLTIN=`echo "scale=2; ${SVRRM_VOLTIN}/10" | bc` - SVRRM_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.2.1.1 | sed 's/.*: //') - SVRRM_VOLTOUT=`echo "scale=2; ${SVRRM_VOLTOUT}/10" | bc` + # if [ "$(CHECK_HOST ${PW_UPS_IP})" != "false" ]; then + SVRRM_VOLTIN=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.2.2.1.3.1.1 | sed 's/.*: //') + SVRRM_VOLTIN=`echo "scale=2; ${SVRRM_VOLTIN}/10" | bc` + SVRRM_VOLTOUT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.2.1.1 | sed 's/.*: //') + SVRRM_VOLTOUT=`echo "scale=2; ${SVRRM_VOLTOUT}/10" | bc` - SVRRM_WATT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.4.1.1 | sed 's/.*: //') - SVRRM_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.3.1.1 | sed 's/.*: //') - SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | bc` + SVRRM_WATT=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.4.1.1 | sed 's/.*: //') + SVRRM_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_UPS_IP} iso.3.6.1.4.1.850.1.1.3.1.3.3.2.1.3.1.1 | sed 's/.*: //') + SVRRM_AMP=`echo "scale=2; ${SVRRM_AMP}/100" | bc` - AIRCON_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['ServerRoom-AC']}:8888/status/${PW_SENSOR_DEVICEID['ServerRoom-AC']} | jq '.dps') - if [ "${AIRCON_INFO}" != "" ]; then - AIRCON_AMP=$(echo "${AIRCON_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | bc -l) 2) - AIRCON_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | bc -l) - else - AIRCON_AMP=0 - AIRCON_WATT=0 + AIRCON_INFO=$(curl -m 3 -s http://${PW_REMOTE_SENSORS['ServerRoom-AC']}:8888/status/${PW_SENSOR_DEVICEID['ServerRoom-AC']} | jq '.dps') + if [ "${AIRCON_INFO}" != "" ]; then + AIRCON_AMP=$(echo "${AIRCON_INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') + AIRCON_AMP=$(ROUND_NUMBER $(echo "scale=3; ${AIRCON_AMP}/1000" | bc -l) 2) + AIRCON_WATT=$(echo "${AIRCON_INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') + AIRCON_WATT=$(echo "scale=1; ${AIRCON_WATT}/10" | bc -l) + else + AIRCON_AMP=0 + AIRCON_WATT=0 + fi + + SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | bc -l) + SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | bc -l) + # fi + # + # if [ "$(CHECK_HOST ${PW_APCPDU_IP})" != "false" ]; then + APCPDU_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //') + APCPDU_AMP=`echo "scale=2; ${APCPDU_AMP}/10" | bc` + APCPDU_WATT2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.1.16.0 | sed 's/.*: //') + APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLTOUT}" | bc` + # fi + if [ "${SVRRM_VOLTOUT}" != "" ]; then + if [ "${APCPDU_AMP}" != "" ]; then + NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | bc` + NETRK_WATT=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | bc` + NETRK_WATT2=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT2}" | bc` + fi + VOLT_DROP=`echo "scale=1; ${OUTPUTV2}-${SVRRM_VOLTIN}" | bc` fi - - SVRRM_AMP_WAC=$(echo "scale=2; ${SVRRM_AMP}+${AIRCON_AMP}" | bc -l) - SVRRM_WATT_WAC=$(echo "scale=2; ${SVRRM_WATT}+${AIRCON_WATT}" | bc -l) - # fi - # - # if [ "$(CHECK_HOST ${PW_APCPDU_IP})" != "false" ]; then - APCPDU_AMP=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //') - APCPDU_AMP=`echo "scale=2; ${APCPDU_AMP}/10" | bc` - APCPDU_WATT2=$(snmpwalk -t 1 -r 0 -v 1 -c public ${PW_APCPDU_IP} .1.3.6.1.4.1.318.1.1.12.1.16.0 | sed 's/.*: //') - APCPDU_WATT=`echo "scale=2; ${APCPDU_AMP}*${SVRRM_VOLTOUT}" | bc` - # fi - if [ "${SVRRM_VOLTOUT}" != "" ]; then - if [ "${APCPDU_AMP}" != "" ]; then - NETRK_AMP=`echo "scale=2; ${SVRRM_AMP}-${APCPDU_AMP}" | bc` - NETRK_WATT=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT}" | bc` - NETRK_WATT2=`echo "scale=2; ${SVRRM_WATT}-${APCPDU_WATT2}" | bc` - fi - VOLT_DROP=`echo "scale=1; ${OUTPUTV2}-${SVRRM_VOLTIN}" | bc` - fi - [ ${REPORT} -eq 0 ] && echo -en "\r\033[K" - echo -e "${idsCL[White]}Inverter State ${idsCL[Default]}: ${INV_STATE_disp}" - if [ ${REPORT} -eq 0 ]; then - echo -e "${idsCL[White]}Inverter Mode ${idsCL[Default]}: ${INV_MODE_disp}" - echo -e "${idsCL[White]}Inverter Alarms ${idsCL[Default]}: ${INV_ALARM_disp}" - echo -e "${idsCL[White]}Inverter Errors ${idsCL[Default]}: ${INV_ERROR_disp}" - echo - fi - echo -en "${idsCL[White]}Inverter Input Volts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTV}`'V" - [ "${TEST_INPUTACV}" != "" ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo "" - echo -e "${idsCL[White]}Inverter Input Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTA}`'A" - if [ ${REPORT} -eq 0 ]; then - echo - echo -e "${idsCL[White]}Inverter Output Volts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTV}`'V / `IDS_NUMBER_FORMAT ${OUTPUTV2}`'V" - echo -e "${idsCL[White]}Inverter Output Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTA}`'A / `IDS_NUMBER_FORMAT ${OUTPUTA2}`'A" - echo -e "${idsCL[White]}Inverter Output Watts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTW} 0`'W" - echo - fi - - echo -en "${idsCL[White]}Battery Voltage ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTV}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" - [ "${TEST_BATTVOLT}" != "" ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo "" - echo -e "${idsCL[White]}Battery Amps Chg/DChg ${idsCL[Default]}: ${BATTA_disp}${idsCL[Default]}" - echo - echo -e "${idsCL[White]}Server Room Voltage IN ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLTIN}'V${idsCL[Default]}" - echo -e "${idsCL[White]}Server Room Voltage OUT ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLTOUT}'V${idsCL[Default]}" - [ ${REPORT} -eq 0 ] && echo -e "${idsCL[White]}Voltage Drop ${idsCL[Default]}: ${idsCL[LightRed]}${VOLT_DROP}'V${idsCL[Default]}" - - # echo - 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 [ ${REPORT} -eq 0 ]; then - echo -en "\r\033[K" - AD=$(IDS_NUMBER_FORMAT ${NETRK_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done - MSG="${idsCL[White]}Network Rack ~est~ ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${NETRK_WATT} 1 yes`'W" - echo -en "${MSG}" - if [ "${avgdays}" != "" ]; then - echo -en "${idsCL[Yellow]} Calculating NetworkRack Averages ... " - NETRK_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays} both) - NETRK_AMP_avg=$(echo ${NETRK_avg} | cut -d'~' -f 1) - NETRK_WATT_avg=$(echo ${NETRK_avg} | cut -d'~' -f 2) - echo -en "\r\033[K" - - AS=$(IDS_NUMBER_FORMAT ${NETRK_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done - AD=$(IDS_NUMBER_FORMAT ${NETRK_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done - echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${NETRK_WATT_avg} 1 yes`'W" - else + [ ${REPORT} -eq 0 ] && echo -en "\r\033[K" + echo -e "${idsCL[White]}Inverter State ${idsCL[Default]}: ${INV_STATE_disp}" + if [ ${REPORT} -eq 0 ]; then + echo -e "${idsCL[White]}Inverter Mode ${idsCL[Default]}: ${INV_MODE_disp}" + echo -e "${idsCL[White]}Inverter Alarms ${idsCL[Default]}: ${INV_ALARM_disp}" + echo -e "${idsCL[White]}Inverter Errors ${idsCL[Default]}: ${INV_ERROR_disp}" echo fi - - AD=$(IDS_NUMBER_FORMAT ${APCPDU_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done - MSG="${idsCL[White]}Server Rack ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${APCPDU_WATT} 1 yes`'W" - echo -en "${MSG}" - if [ "${avgdays}" != "" ]; then - echo -en "${idsCL[Yellow]} Calculating Server Rack Averages ... " - APCPDU_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['server-rack']} ${avgdays} both) - APCPDU_AMP_avg=$(echo ${APCPDU_avg} | cut -d'~' -f 1) - APCPDU_WATT_avg=$(echo ${APCPDU_avg} | cut -d'~' -f 2) - echo -en "\r\033[K" - - AS=$(IDS_NUMBER_FORMAT ${APCPDU_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done - AD=$(IDS_NUMBER_FORMAT ${APCPDU_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done - echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${APCPDU_WATT_avg} 1 yes`'W" - else + echo -en "${idsCL[White]}Inverter Input Volts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTV}`'V" + [ "${TEST_INPUTACV}" != "" ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo "" + echo -e "${idsCL[White]}Inverter Input Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${INPUTA}`'A" + if [ ${REPORT} -eq 0 ]; then + echo + echo -e "${idsCL[White]}Inverter Output Volts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTV}`'V / `IDS_NUMBER_FORMAT ${OUTPUTV2}`'V" + echo -e "${idsCL[White]}Inverter Output Amps ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTA}`'A / `IDS_NUMBER_FORMAT ${OUTPUTA2}`'A" + echo -e "${idsCL[White]}Inverter Output Watts ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${OUTPUTW} 0`'W" echo fi - - AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done - MSG="${idsBG[Blue]}${idsCL[White]}Equipment Subtotal ${idsCL[Default]}: ${idsCL[White]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${SVRRM_WATT} 1 yes`'W ${idsBG[Default]}" - echo -en "${MSG}" - if [ "${avgdays}" != "" ]; then - echo -en "${idsCL[Yellow]} Calculating Equipment Subtotal Averages ... " - SVRRM_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays} both) - SVRRM_AMP_avg=$(echo ${SVRRM_avg} | cut -d'~' -f 1) - SVRRM_WATT_avg=$(echo ${SVRRM_avg} | cut -d'~' -f 2) - echo -en "\r\033[K" - - AS=$(IDS_NUMBER_FORMAT ${SVRRM_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 4`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done - AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done - echo -e "${MSG}${idsBG[Blue]}${spcA}${idsCL[LightYellow]}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${SVRRM_WATT_avg} 1 yes`'W ${idsBG[Default]}" - else - echo -e "${idsBG[Default]}" - fi - + + echo -en "${idsCL[White]}Battery Voltage ${idsCL[Default]}: ${idsCL[Green]}`IDS_NUMBER_FORMAT ${BATTV}`'V ~ (`IDS_NUMBER_FORMAT ${BATTLIFE}`'% @ ${BATT_FULL}'V)" + [ "${TEST_BATTVOLT}" != "" ] && echo -e " ${idsCL[Yellow]}***TEST MODE***" || echo "" + echo -e "${idsCL[White]}Battery Amps Chg/DChg ${idsCL[Default]}: ${BATTA_disp}${idsCL[Default]}" + echo + echo -e "${idsCL[White]}Server Room Voltage IN ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLTIN}'V${idsCL[Default]}" + echo -e "${idsCL[White]}Server Room Voltage OUT ${idsCL[Default]}: ${idsCL[Green]}${SVRRM_VOLTOUT}'V${idsCL[Default]}" + [ ${REPORT} -eq 0 ] && echo -e "${idsCL[White]}Voltage Drop ${idsCL[Default]}: ${idsCL[LightRed]}${VOLT_DROP}'V${idsCL[Default]}" + + # echo DIVIDER . lightCyan ${PRI_WIDTH} - - AD=$(IDS_NUMBER_FORMAT ${AIRCON_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done - MSG="${idsCL[White]}Air Conditioner ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${AIRCON_WATT} 1 yes`'W" - echo -en "${MSG}" - if [ "${avgdays}" != "" ]; then - echo -en "${idsCL[Yellow]} Calculating Air Conditioner Averages ... " - AIRCON_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['ServerRoom-AC']} ${avgdays} both) - AIRCON_AMP_avg=$(echo ${AIRCON_avg} | cut -d'~' -f 1) - AIRCON_WATT_avg=$(echo ${AIRCON_avg} | cut -d'~' -f 2) + [ "${avgdays}" != "" ] && echo -e " --${idsCL[LightYellow]}${avgdays_disp}-Averages---" + echo -en "${idsCL[LightCyan]}Totals Amps Watts" + [ "${avgdays}" != "" ] && echo -e " Amps Watts" || echo + + if [ ${REPORT} -eq 0 ]; then echo -en "\r\033[K" + AD=$(IDS_NUMBER_FORMAT ${NETRK_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done + MSG="${idsCL[White]}Network Rack ~est~ ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${NETRK_WATT} 1 yes`'W" + echo -en "${MSG}" + if [ "${avgdays}" != "" ]; then + echo -en "${idsCL[Yellow]} Calculating NetworkRack Averages ... " + NETRK_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['network-rack']} ${avgdays} both) + NETRK_AMP_avg=$(echo ${NETRK_avg} | cut -d'~' -f 1) + NETRK_WATT_avg=$(echo ${NETRK_avg} | cut -d'~' -f 2) + echo -en "\r\033[K" - AS=$(IDS_NUMBER_FORMAT ${AIRCON_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done - AD=$(IDS_NUMBER_FORMAT ${AIRCON_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done - echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${AIRCON_WATT_avg} 1 yes`'W" - else - echo - fi + AS=$(IDS_NUMBER_FORMAT ${NETRK_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done + AD=$(IDS_NUMBER_FORMAT ${NETRK_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done + echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${NETRK_WATT_avg} 1 yes`'W" + else + echo + fi - AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_WAC} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done - MSG="${idsBG[Blue]}${idsCL[White]}Server Room Total w/AIR ${idsCL[Default]}: ${idsCL[White]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC} 1 yes`'W ${idsBG[Default]}" - echo -en "${MSG}" - if [ "${avgdays}" != "" ]; then - echo -en "${idsCL[Yellow]} Calculating Server Room w/AIR Total Averages ... " + AD=$(IDS_NUMBER_FORMAT ${APCPDU_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done + MSG="${idsCL[White]}Server Rack ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${APCPDU_WATT} 1 yes`'W" + echo -en "${MSG}" + if [ "${avgdays}" != "" ]; then + echo -en "${idsCL[Yellow]} Calculating Server Rack Averages ... " + APCPDU_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['server-rack']} ${avgdays} both) + APCPDU_AMP_avg=$(echo ${APCPDU_avg} | cut -d'~' -f 1) + APCPDU_WATT_avg=$(echo ${APCPDU_avg} | cut -d'~' -f 2) + echo -en "\r\033[K" - SVRRM_WAC_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total-wac']} ${avgdays} both) - SVRRM_AMP_WAC_avg=$(echo ${SVRRM_WAC_avg} | cut -d'~' -f 1) - SVRRM_WATT_WAC_avg=$(echo ${SVRRM_WAC_avg} | cut -d'~' -f 2) - echo -en "\r\033[K" + AS=$(IDS_NUMBER_FORMAT ${APCPDU_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done + AD=$(IDS_NUMBER_FORMAT ${APCPDU_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done + echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${APCPDU_WATT_avg} 1 yes`'W" + else + echo + fi + + AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done + MSG="${idsBG[Blue]}${idsCL[White]}Equipment Subtotal ${idsCL[Default]}: ${idsCL[White]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${SVRRM_WATT} 1 yes`'W ${idsBG[Default]}" + echo -en "${MSG}" + if [ "${avgdays}" != "" ]; then + echo -en "${idsCL[Yellow]} Calculating Equipment Subtotal Averages ... " + SVRRM_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total']} ${avgdays} both) + SVRRM_AMP_avg=$(echo ${SVRRM_avg} | cut -d'~' -f 1) + SVRRM_WATT_avg=$(echo ${SVRRM_avg} | cut -d'~' -f 2) + echo -en "\r\033[K" - AS=$(IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 4`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done - AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_WAC_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done - echo -e "${MSG}${idsBG[Blue]}${spcA}${idsCL[LightYellow]}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC_avg} 1 yes`'W ${idsBG[Default]}" - else - echo -e "${idsBG[Default]}" + AS=$(IDS_NUMBER_FORMAT ${SVRRM_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 4`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done + AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done + echo -e "${MSG}${idsBG[Blue]}${spcA}${idsCL[LightYellow]}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${SVRRM_WATT_avg} 1 yes`'W ${idsBG[Default]}" + else + echo -e "${idsBG[Default]}" + fi + + DIVIDER . lightCyan ${PRI_WIDTH} + + AD=$(IDS_NUMBER_FORMAT ${AIRCON_AMP} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done + MSG="${idsCL[White]}Air Conditioner ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${AIRCON_WATT} 1 yes`'W" + echo -en "${MSG}" + if [ "${avgdays}" != "" ]; then + echo -en "${idsCL[Yellow]} Calculating Air Conditioner Averages ... " + AIRCON_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['ServerRoom-AC']} ${avgdays} both) + AIRCON_AMP_avg=$(echo ${AIRCON_avg} | cut -d'~' -f 1) + AIRCON_WATT_avg=$(echo ${AIRCON_avg} | cut -d'~' -f 2) + echo -en "\r\033[K" + + AS=$(IDS_NUMBER_FORMAT ${AIRCON_WATT} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 5`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done + AD=$(IDS_NUMBER_FORMAT ${AIRCON_AMP_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done + echo -e "${MSG}${idsCL[LightYellow]}${spcA}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${AIRCON_WATT_avg} 1 yes`'W" + else + echo + fi + + AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_WAC} 2 yes); c=0; spc=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; ((c++)); done + MSG="${idsBG[Blue]}${idsCL[White]}Server Room Total w/AIR ${idsCL[Default]}: ${idsCL[White]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC} 1 yes`'W ${idsBG[Default]}" + echo -en "${MSG}" + if [ "${avgdays}" != "" ]; then + echo -en "${idsCL[Yellow]} Calculating Server Room w/AIR Total Averages ... " + + SVRRM_WAC_avg=$(AVERAGEPOWER ${PW_POWERSENSOR_ID['total-wac']} ${avgdays} both) + SVRRM_AMP_WAC_avg=$(echo ${SVRRM_WAC_avg} | cut -d'~' -f 1) + SVRRM_WATT_WAC_avg=$(echo ${SVRRM_WAC_avg} | cut -d'~' -f 2) + echo -en "\r\033[K" + + AS=$(IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC} 1 yes); c=0; spcA=''; spc1=`expr ${wspc} - ${#AS} + 4`; until [ ${c} = ${spc1} ]; do spcA="${spcA} "; ((c++)); done + AD=$(IDS_NUMBER_FORMAT ${SVRRM_AMP_WAC_avg} 2 yes); c=0; spcB=''; spc1=`expr ${wspc} - ${#AD}`; until [ ${c} = ${spc1} ]; do spcB="${spcB} "; ((c++)); done + echo -e "${MSG}${idsBG[Blue]}${spcA}${idsCL[LightYellow]}${AD}'A${spcB}`IDS_NUMBER_FORMAT ${SVRRM_WATT_WAC_avg} 1 yes`'W ${idsBG[Default]}" + else + echo -e "${idsBG[Default]}" + fi + + DIVIDER . lightCyan ${PRI_WIDTH} + + + DIVIDER . lightCyan ${PRI_WIDTH} fi - DIVIDER . lightCyan ${PRI_WIDTH} + else + - DIVIDER . lightCyan ${PRI_WIDTH} fi + [ ${REPORT} -eq 0 ] && echo -e "${idsCL[Default]}" fi - if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "offsite" ]) && [ "${PTYPE}" != "esxi" ]; then + if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "offsite" ]) && [ "${PTYPE}" != "esxi" ] && [ "${IP}" != "10.6.1"* ]]; then DIVIDER . yellow ${PRI_WIDTH} echo -en "${idsCL[Yellow]}Offsite Power Information" @@ -420,7 +429,7 @@ CHECKPOWER(){ fi ########## KYLE ############# - if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "kyle" ]) && [ "${PTYPE}" != "esxi" ]; then + if ([ "${STYPE}" = "" ] || [ "${STYPE}" = "kyle" ]) && [ "${PTYPE}" != "esxi" ] && [ "${IP}" != "10.6.1"* ]]; then echo DIVIDER . yellow ${PRI_WIDTH} echo -en "${idsCL[Yellow]}Kyle's Power Information"