From adf597bbfc9e1ae3663b7fb3b6108db46970688a Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 29 Apr 2024 10:06:39 -0500 Subject: [PATCH] Update temp.inc.sh --- inc/temp.inc.sh | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/inc/temp.inc.sh b/inc/temp.inc.sh index 86ce8a34..231da6e2 100644 --- a/inc/temp.inc.sh +++ b/inc/temp.inc.sh @@ -83,6 +83,27 @@ CHECKTEMP(){ fi DIVIDER . yellow ${PRI_WIDTH} + if [ "${avgdays}" = "noavg" ]; then + sensorsqry=''; sq=0 + for SENSOR in ${PW_SENSOR_ORD[@]}; do + if [[ "${SENSOR}" != *"FAN"* ]]; then + if [ "${PW_SENSOR_TYPE[${SENSOR}]}" != "esxi" ] && ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]] || [[ "${PW_DESC_TEMP[${SENSOR}],,}" = *"${search,,}"* ]]) && ([ "${STYPE}" = "" ] || ([ "${STYPE}" = "mainsite" ] && ([ "${PW_REMOTE_SENSORS[${SENSOR}]}" = "" ] || [ "${PW_REMOTE_SENSORS[${SENSOR}]}" = "127.0.0.1" ] || [[ "${PW_REMOTE_SENSORS[${SENSOR}]}" = *"10.10."* ]])) || ([ "${STYPE}" = "offsite" ] && [ "${PW_REMOTE_SENSORS[${SENSOR}]}" != "" ] && [[ "${PW_REMOTE_SENSORS[${SENSOR}]}" = *"10.2.1."* ]])) && ([ "${TTYPE}" != "fans" ] || ([ "${TTYPE}" == "fans" ] && [[ "${SENSOR}" = *"Room"* ]])); then + [ "${sensorsqry}" != "" ] && sensorsqry="${sensorsqry},${PW_SENSOR_ID[${SENSOR}]}" || sensorsqry=${PW_SENSOR_ID[${SENSOR}]} + ((sq++)) + fi + fi + done + if [ "${sensorsqry}" != "" ]; then + declare -A RANGE_TEMPS + for R in ${PW_TEMPIND_RANGE[@]}; do + lookup=($(${mysql_conn} -e "SELECT sensorid,temp FROM servermonitor.sensor_data WHERE sensorid IN (${sensorsqry}) AND date >= DATE_SUB(NOW(), INTERVAL ${R} MINUTE) AND date <= DATE_SUB(NOW(), INTERVAL $(expr ${R} - 10) MINUTE) ORDER BY date ASC LIMIT ${sq}")) + for i in $( eval echo {2..$(expr ${#lookup[@]} - 2)..2} ); do + RANGE_TEMPS["${R}-${lookup[${i}]}"]=${lookup[$(expr ${i} + 1)]} + done + done + fi + fi + for SENSOR in ${PW_SENSOR_ORD[@]}; do if [ "${PW_SENSOR_TYPE[${SENSOR}]}" != "esxi" ] && ([ "${search}" == "" ] || [[ "${SENSOR,,}" = *"${search,,}"* ]] || [[ "${PW_DESC_TEMP[${SENSOR}],,}" = *"${search,,}"* ]]) && ([ "${STYPE}" = "" ] || ([ "${STYPE}" = "mainsite" ] && ([ "${PW_REMOTE_SENSORS[${SENSOR}]}" = "" ] || [ "${PW_REMOTE_SENSORS[${SENSOR}]}" = "127.0.0.1" ] || [[ "${PW_REMOTE_SENSORS[${SENSOR}]}" = *"10.10."* ]])) || ([ "${STYPE}" = "offsite" ] && [ "${PW_REMOTE_SENSORS[${SENSOR}]}" != "" ] && [[ "${PW_REMOTE_SENSORS[${SENSOR}]}" = *"10.2.1."* ]])) && ([ "${TTYPE}" != "fans" ] || ([ "${TTYPE}" == "fans" ] && [[ "${SENSOR}" = *"Room"* ]])); then [ "${PW_DESC_TEMP[${SENSOR}]}" != "" ] && SENSOR_DESC=${PW_DESC_TEMP[${SENSOR}]} || SENSOR_DESC=${SENSOR} @@ -131,17 +152,18 @@ CHECKTEMP(){ if [ "${avgdays}" = "noavg" ] && [[ "${SENSOR}" != *"FAN"* ]]; then for R in ${PW_TEMPIND_RANGE[@]}; do - OLD_temp_f=($(${mysql_conn} -e "SELECT temp FROM servermonitor.sensor_data WHERE sensorid='${PW_SENSOR_ID[${SENSOR}]}' AND date >= DATE_SUB(NOW(), INTERVAL ${R} MINUTE) AND date <= DATE_SUB(NOW(), INTERVAL $(expr ${R} - 7) MINUTE) ORDER BY date ASC LIMIT 1")) - if [ "${OLD_temp_f[1]}" != "" ]; then - if [ $(bc -l <<< "${temp_f} < $(echo "scale=2; ${OLD_temp_f[1]}+${PW_TEMPIND_DIFF}" | bc)") -eq 1 ] && [ $(bc -l <<< "$(echo "scale=2; ${OLD_temp_f[1]}-${PW_TEMPIND_DIFF}" | bc) < ${temp_f}") -eq 1 ]; then + # OLD_temp_f=($(${mysql_conn} -e "SELECT temp FROM servermonitor.sensor_data WHERE sensorid='${PW_SENSOR_ID[${SENSOR}]}' AND date >= DATE_SUB(NOW(), INTERVAL ${R} MINUTE) AND date <= DATE_SUB(NOW(), INTERVAL $(expr ${R} - 7) MINUTE) ORDER BY date ASC LIMIT 1")) + sensorid=${PW_SENSOR_ID[${SENSOR}]} + if [ "${RANGE_TEMPS["${R}-${sensorid}"]}" != "" ]; then + if [ $(bc -l <<< "${temp_f} < $(echo "scale=2; ${RANGE_TEMPS["${R}-${sensorid}"]}+${PW_TEMPIND_DIFF}" | bc)") -eq 1 ] && [ $(bc -l <<< "$(echo "scale=2; ${RANGE_TEMPS["${R}-${sensorid}"]}-${PW_TEMPIND_DIFF}" | bc) < ${temp_f}") -eq 1 ]; then echo -en "${idsCL[White]}\u23F9 " - elif [ $(bc -l <<< "$(bc <<< "scale=2; ${OLD_temp_f[1]}+(${PW_TEMPIND_DIFF}*2)") < ${temp_f}") -eq 1 ]; then + elif [ $(bc -l <<< "$(bc <<< "scale=2; ${RANGE_TEMPS["${R}-${sensorid}"]}+(${PW_TEMPIND_DIFF}*2)") < ${temp_f}") -eq 1 ]; then echo -en "${idsCL[LightRed]}\u25B2 " - elif [ $(bc -l <<< "${OLD_temp_f[1]} < ${temp_f}") -eq 1 ]; then + elif [ $(bc -l <<< "${RANGE_TEMPS["${R}-${sensorid}"]} < ${temp_f}") -eq 1 ]; then echo -en "${idsCL[Magenta]}\u25B2 " - elif [ $(bc -l <<< "${temp_f} < $(bc <<< "scale=2; ${OLD_temp_f[1]}-(${PW_TEMPIND_DIFF}*2)")") -eq 1 ]; then + elif [ $(bc -l <<< "${temp_f} < $(bc <<< "scale=2; ${RANGE_TEMPS["${R}-${sensorid}"]}-(${PW_TEMPIND_DIFF}*2)")") -eq 1 ]; then echo -en "${idsCL[LightGreen]}\u25BC " - elif [ $(bc -l <<< "${temp_f} < ${OLD_temp_f[1]}") -eq 1 ]; then + elif [ $(bc -l <<< "${temp_f} < ${RANGE_TEMPS["${R}-${sensorid}"]}") -eq 1 ]; then echo -en "${idsCL[LightCyan]}\u25BC " else echo -en " "