From 3d7afa0d01dc11421ca918d9493d24db550eafb4 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Wed, 15 May 2024 20:52:51 -0500 Subject: [PATCH] update --- defaults.inc | 2 +- inc/power.inc.sh | 30 ++++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/defaults.inc b/defaults.inc index b838adf9..815788b8 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.7.48-05132024' +VERS='2.7.49-05152024' noheader=' update service dailytemp confsync -r -report ' diff --git a/inc/power.inc.sh b/inc/power.inc.sh index a5080117..7d83bda2 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -375,8 +375,13 @@ CHECKPOWER(){ [ "${avgdays}" != "" ] && echo -e " --${idsCL[LightYellow]}${avgdays_disp}-Averages---" echo -en "${idsCL[LightCyan]}Totals Amps Watts" [ "${avgdays}" != "" ] && echo -e " Amps Watts" || echo - (( $(bc <<<"${OFFSITE_AMPS} < ${TOTAL_MISC_WATTS}") )) && AD=${TOTAL_MISC_AMPS} || AD=${OFFSITE_AMPS} - (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )) && AW=${TOTAL_MISC_WATTS} || AW=${OFFSITE_WATTS} + 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]}Offsite Equipment ${idsCL[Default]}: ${idsCL[Green]}${AD}'A${spc}`IDS_NUMBER_FORMAT ${AW} 0`'W" if [ "${avgdays}" != "" ]; then @@ -779,6 +784,15 @@ OFFSITE_CHECKPOWER_SERVICE(){ OFFSITE_BATT_RUNTIME=`echo "scale=2; ${OFFSITE_BATT_RUNTIME}/60" | bc` OFFSITE_BATT_CAP=$(echo "${upsinfo}" | grep 'battery.charge:' | sed 's/.*: //') + if [ ${OFFSITE_WATTS} < 100 ]; then + TOTAL_MISC_WATTS=0 + for mSENSOR in "${!OFFSITE_MISC[@]}"; do + IFS=: read -r AMP WATT VOLT <<< ${OFFSITE_MISC[${mSENSOR}]}; unset IFS + TOTAL_MISC_WATTS=`echo "scale=2; ${TOTAL_MISC_WATTS}+${WATT}" | bc` + done + (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )) && OFFSITE_WATTS=${TOTAL_MISC_WATTS} + fi + if [ ! -d /sys/bus/w1/devices/${PW_SENSOR_DEVICEID['Offsite-ServerRoom']} ]; then /bin/dtoverlay w1-gpio gpiopin=4 sleep 2s @@ -981,6 +995,18 @@ POWERLOGGER_SERVICE(){ OFFSITE_WATTS=`echo "scale=2; ${OFFSITE_LOAD}*$(echo "${upsinfo}" | grep 'ups.realpower.nominal:' | sed 's/.*: //')" | bc` OFFSITE_AMPS=`echo "scale=2; ${OFFSITE_WATTS}/${OFFSITE_VOLTOUT}" | bc` + if [ ${OFFSITE_WATTS} < 100 ]; then + TOTAL_MISC_WATTS=0; TOTAL_MISC_AMPS=0 + for mSENSOR in "${!OFFSITE_MISC[@]}"; do + IFS=: read -r AMP WATT VOLT <<< ${OFFSITE_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` + done + if (( $(bc <<<"${OFFSITE_WATTS} < ${TOTAL_MISC_WATTS}") )); then + OFFSITE_WATTS=${TOTAL_MISC_WATTS} + OFFSITE_AMPS=${TOTAL_MISC_AMPS} + fi + fi QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`, \`watt\`) VALUES ('${PW_POWERSENSOR_ID['offsite-ups']}','${LogDataTime}','${OFFSITE_VOLTOUT}','${OFFSITE_AMPS}','${OFFSITE_WATTS}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" fi