From 4da76f7a9af16491bca7b944fd4cbe4eb010d3d0 Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Sat, 13 Jan 2024 10:48:25 -0600 Subject: [PATCH] Update power.inc.sh --- inc/power.inc.sh | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/inc/power.inc.sh b/inc/power.inc.sh index 5e98aba9..2fb27b4d 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -1,24 +1,32 @@ AVERAGEPOWER(){ sensorid=${1} daysback=${2} - logsfound=0; if [ "${3}" == "both" ]; then + logsfound_amp=0; + logsfound_watt=0; total_amp=0 total_watt=0 while IFS=$'\t' read date amp watt ;do - total_amp=$(bc <<< "scale=2; ${total_amp}+${amp}") - total_watt=$(bc <<< "scale=2; ${total_watt}+${watt}") - ((logsfound++)) - 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() AND amp IS NOT NULL AND watt IS NOT NULL ORDER BY id DESC;") - if [ "${logsfound}" != "0" ]; then - average_amp=$(bc <<< "scale=2; ${total_amp}/${logsfound}") - average_watt=$(bc <<< "scale=2; ${total_watt}/${logsfound}") + if [ "${amp}" != "" ] && [ "${amp}" != "null" ]; then + total_amp=$(bc <<< "scale=2; ${total_amp}+${amp}") + ((logsfound_amp++)) + fi + if [ "${watt}" != "" ] && [ "${watt}" != "null" ]; then + total_watt=$(bc <<< "scale=2; ${total_watt}+${watt}") + ((logsfound_watt++)) + 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() AND amp IS NOT NULL AND watt IS NOT NULL 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 ${daysback} DAY) AND NOW() ORDER BY id DESC;") + if [ "${logsfound_watt}" != "0" ]; then + average_amp=$(bc <<< "scale=2; ${total_amp}/${logsfound_amp}") + average_watt=$(bc <<< "scale=2; ${total_watt}/${logsfound_watt}") else average_amp=0 average_watt=0 fi echo "${average_amp}~${average_watt}" else + logsfound=0; total=0 [ "${3}" != "" ] && ptype=${3} || ptype=watt while IFS=$'\t' read date ${ptype} ;do