From d32afe4b1a75a7c447a5fe1a7c8f289fcc034d9d Mon Sep 17 00:00:00 2001 From: David Schroeder Date: Mon, 4 Dec 2023 09:08:48 -0600 Subject: [PATCH] update --- defaults.inc | 2 +- offsite-power-check.sh | 22 +++++++++++----------- powerwall.sh | 20 ++++++++++---------- 3 files changed, 22 insertions(+), 22 deletions(-) diff --git a/defaults.inc b/defaults.inc index 4250afbb..357e2879 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,5 +1,5 @@ -VERS='2.3.341-12042023' +VERS='2.3.345-12042023' noheader=' update service dailytemp ' diff --git a/offsite-power-check.sh b/offsite-power-check.sh index 588efaa5..eef023d4 100755 --- a/offsite-power-check.sh +++ b/offsite-power-check.sh @@ -55,22 +55,22 @@ PWO_START(){ SENDNOTICE(){ MESSAGE="${TESTMODE}${2} -BATTERY CHARGE: ${OFFSITE_BATT_CAP}%25 +BATTERY CHARGE: ${OFFSITE_BATT_CAP}'% BATT RUNTIME: ${OFFSITE_BATT_RUNTIME}'mins AC VOLTAGE: ${OFFSITE_VOLTIN}'volts" if [ "${3}" = "1" ]; then PRIORITY="${3}"; MSGSOUND=siren; elif [ "${3}" != "" ]; then PRIORITY=${3}; else PRIORITY=0; fi curl -sd "token=${PUSHOVER_APP_TOKEN}&user=${PUSHOVER_USER_TOKEN}&message=${MESSAGE}&title=${1}&priority=${PRIORITY}&sound=cosmic" https://api.pushover.net/1/messages.json >/dev/null 2>&1 } if [ "${startup}" == "true" ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Service startup" >> ${PW_LOGPOWER} - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Service startup" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Service startup" >> ${PW_LOGPOWER} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Service startup" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE POWER MONITOR" "Service starting" startup=false fi if [ ${OFFSITE_VOLTIN%.*} -gt 105 ]; then if [ -f ${PW_TMPFOLDER}/power.offsite.charging ] && [ ${OFFSITE_BATT_CAP%.*} -eq 100 ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Charging Complete" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Charging Complete" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE POWER" "Batteries are fully recharged" rm -f ${PW_TMPFOLDER}/power.offsite.charging elif [ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ! -f ${PW_TMPFOLDER}/power.offsite.charging ]; then @@ -78,7 +78,7 @@ AC VOLTAGE: ${OFFSITE_VOLTIN}'volts" fi if [ -f ${PW_TMPFOLDER}/power.offsite.ac.low ]; then if [ -f ${PW_TMPFOLDER}/power.offsite.off ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Offsite Power Restored" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Offsite Power Restored" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE POWER" "Power restored! Will wait ${WAIT_TO_POWER_SERVERS}'mins before turning host(s) back on" fi @@ -89,7 +89,7 @@ AC VOLTAGE: ${OFFSITE_VOLTIN}'volts" touch ${PW_TMPFOLDER}/power.offsite.restored elif [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.restored)) -gt $(echo "scale=2; ${WAIT_TO_POWER_SERVERS}*60" | bc) ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Powering Hosts ON After Power Outage" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering Hosts ON After Power Outage" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE HOST POWER" "Powering offsite host(s) back ONLINE after power outage" for host in ${PW_OFFSITEHOSTS}; do if [ "$TEST" = "" ] || [ "$TEST" = "full" ]; then @@ -103,19 +103,19 @@ AC VOLTAGE: ${OFFSITE_VOLTIN}'volts" fi logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER})) if [ ${logtime} -gt $(echo "scale=2; ${LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${LOG_INTERVAL_CHARGING} ]); then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Normal" >> ${PW_LOGPOWER} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - Normal" >> ${PW_LOGPOWER} fi else [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low ] && touch ${PW_TMPFOLDER}/power.offsite.ac.low if [ ! -f ${PW_TMPFOLDER}/power.offsite.ac.low.notice ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low.notice)) -gt ${RENOTIFY_LOWPOWER} ]; then - # echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Powering LOW/OFF!" >> ${PW_LOGFILE} + # echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering LOW/OFF!" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE POWER - POWER OFF/LOW!!" "Power off or low voltage detected" 1 touch ${PW_TMPFOLDER}/power.offsite.ac.low.notice fi if ([ ${OFFSITE_BATT_CAP%.*} -lt ${SHUTDOWNSERVERS_AT_LOAD} ] || [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.offsite.ac.low)) -ge $(echo "scale=2; ${SHUTDOWNSERVERS_AFTER}*60" | bc) ]) && [ ! -f ${PW_TMPFOLDER}/power.offsite.off ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}% Battery - Powering Down Hosts!" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_BATT_CAP}'% Battery - Powering Down Hosts!" >> ${PW_LOGFILE} SENDNOTICE "OFFSITE HOST POWER" "Powering DOWN offsite host(s) due to power outage" 1 touch ${PW_TMPFOLDER}/power.offsite.off for host in ${PW_OFFSITEHOSTS}; do @@ -127,13 +127,13 @@ AC VOLTAGE: ${OFFSITE_VOLTIN}'volts" done fi if [ $(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER})) -gt ${LOG_INTERVAL_ABNORMAL} ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}% Battery - ${OFFSITE_BATT_RUNTIME}'mins - OFF/LOW POWER!!" >> ${PW_LOGPOWER} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${OFFSITE_VOLTIN}'volts - ${OFFSITE_WATTS}'watts - ${OFFSITE_BATT_CAP}'% Battery - ${OFFSITE_BATT_RUNTIME}'mins - OFF/LOW POWER!!" >> ${PW_LOGPOWER} fi fi else if [ $(expr `date +%s` - $(stat -f %m ${PW_TMPFOLDER}/power.ups.losscomm)) -ge 30 ]; then - echo "($(date +'%Y-%m-%d %H:%M:%S')) - 0.0'volts - ${OFFSITE_BATT_CAP}% Battery - Restarting NUT service" >> ${PW_LOGFILE} + echo "($(date +'%Y-%m-%d %H:%M:%S')) - 0.0'volts - ${OFFSITE_BATT_CAP}'% Battery - Restarting NUT service" >> ${PW_LOGFILE} SENDNOTICE "NUT DRIVER FAILURE" "Restarting NUT service" /usr/local/etc/rc.d/nut.sh restart sleep 10s diff --git a/powerwall.sh b/powerwall.sh index ba70a41e..693f063d 100755 --- a/powerwall.sh +++ b/powerwall.sh @@ -92,14 +92,6 @@ CHECKTEMP(){ [ "${avgdays}" != "noavg" ] && echo -en "Pulling data and calculating ${avgdays} Day average ... " || echo -en "Pulling data ... " reading=$(CHECKTEMPSENSOR ${SENSOR} . . . . ${avgdays}) echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${reading}" - - # if [ "${SENSOR}" == "Powerwall-CPU" ] || [ "${SENSOR}" == "OctoPi-CPU" ]; then - # SENSOR="${SENSOR}-Usage" - # echo -en "${idsCL[Yellow]}Pulling data for '${SENSOR}' ... " - # reading=$(CHECKTEMPSENSOR ${SENSOR}) - # c=0; spc=''; spc1=`expr ${cw} - ${#SENSOR}`; until [ ${c} = ${spc1} ]; do spc="${spc} "; c=`expr ${c} + 1`; done - # echo -e "\r\033[K${idsCL[White]}${idsST[Bold]}${SENSOR}${idsST[Reset]}${spc}${idsCL[Default]}: ${reading}" - # fi fi echo fi @@ -763,7 +755,7 @@ CHECKPOWER(){ fi echo -e "${idsCL[Default]}\n" - # echo -e "${idsCL[LightCyan]}Current Fan Speed ${idsCL[Default]}: ${idsCL[Green]}${FanSpeed}%${idsCL[Default]}" + # echo -e "${idsCL[LightCyan]}Current Fan Speed ${idsCL[Default]}: ${idsCL[Green]}${FanSpeed}'%${idsCL[Default]}" # echo fi @@ -817,6 +809,8 @@ CHECKPOWER(){ fi + + else HOST_WATTS_disp="${idsCL[LightRed]}Host offline" fi @@ -830,7 +824,13 @@ CHECKPOWER(){ echo -en "\r\033[K"; echo -en "${MSG}${idsCL[LightYellow]}${average_disp}" elif [ "${HOST_WATTS}" != "0" ]; then echo -en "${idsCL[LightCyan]} [PS1=${PS1}'A, PS2=${PS2}'A]" - fi + fi + if [ "${PW_HOST_IDRACS[${SENSOR}]}" == "10.2.1.21" ]; then + vHOSTFAN=$(ssh root@${PW_RACADM_ACCESS} racadm -r ${PW_HOST_IDRACS[${SENSOR}]} -u ${PW_ESXI_USER} -p "'${PW_ESXI_PASS}'" getsensorinfo | grep "System Board Fan1" 2>&1) + FanSpeed=$(echo ${vHOSTFAN} | awk '/ / {print $8}' | sed -e 's/%//g') + echo -en "${idsCL[LightCyan]} [FanSpeed=${FanSpeed}'%]" + fi + echo -e "${idsCL[Default]}" fi fi