Update powerwall.sh
This commit is contained in:
134
powerwall.sh
134
powerwall.sh
@@ -116,10 +116,9 @@ CHECKTEMP_SERVICE(){
|
||||
if [ $(bc -l <<< "$temp_f >= $temp_warn") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit") -eq 1 ]; then
|
||||
if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP WARNING" "($datetime) WARNING TEMP: ${temp_f}'F - (Difference of ${temp_diff}')" 1
|
||||
echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
last_temp[${SENSOR}]=$temp_f
|
||||
echo "($datetime) - ${temp_f}F - WARNING TEMP - (Difference of ${temp_diff}')" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - WARNING TEMP: ${temp_f}'F - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
echo "($datetime) - ${temp_f}'F - WARNING TEMP - (Difference of ${temp_diff}')" >> ${logtemp}
|
||||
fi
|
||||
|
||||
elif [ $(bc -l <<< "$temp_f >= $temp_crit") -eq 1 ] && [ $(bc -l <<< "$temp_f < $temp_crit_sys") -eq 1 ]; then
|
||||
@@ -127,45 +126,45 @@ CHECKTEMP_SERVICE(){
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}')
|
||||
Shutting down servers!!" 1
|
||||
echo "($datetime) - ${temp_f}'F - CRITICAL - (Difference of ${temp_diff}'F)" >> ${logtemp}
|
||||
echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - CRITICAL TEMP - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
last_temp[${SENSOR}]=$temp_f
|
||||
SHUTDOWN_MAIN ${SENSOR}
|
||||
SENDNOTICE "SERVERS SHUTDOWN" "($datetime) Main servers have been shutdown" 1
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}F - Main servers have been shutdown" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - Main servers have been shutdown" >> ${logtemp}
|
||||
|
||||
fi
|
||||
elif [ $(bc -l <<< "$temp_f >= $temp_crit_sys") -eq 1 ]; then
|
||||
if [ $temp_diff -gt 1 ] || [ "${last_temp[${SENSOR}]}" = "1" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) SYSTEM CRITICAL TEMP: ${temp_f}'F - (Difference of ${temp_diff}')
|
||||
Shutting down system servers!!" 1
|
||||
echo "($datetime) - ${temp_f}F - SYSTEM CRITICAL - (Difference of ${temp_diff})" >> ${logtemp}
|
||||
echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - CRITICAL TEMP SYSTEM: ${temp_f}'F - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
echo "($datetime) - ${temp_f}'F - SYSTEM CRITICAL - (Difference of ${temp_diff})" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - CRITICAL TEMP SYSTEM - (Difference of ${temp_diff}')" >> ${logfile}
|
||||
last_temp[${SENSOR}]=$temp_f
|
||||
SHUTDOWN_SYS ${SENSOR} TEMP
|
||||
SHUTDOWN_CRIT ${SENSOR}
|
||||
SENDNOTICE "SERVERS SHUTDOWN" "($datetime) System servers have been shutdown" 1
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}F - System servers have been shutdown" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - System servers have been shutdown" >> ${logtemp}
|
||||
fi
|
||||
else
|
||||
if [ ${last_temp[${SENSOR}]} -gt 1 ]; then
|
||||
SENDNOTICE "${SENSOR} BACK TO NORMAL" "($datetime) NORMAL TEMP: ${temp_f}'F
|
||||
Previous Temp: ${last_temp[${SENSOR}]}'F"
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - Back to NORMAL TEMP - Previous Temp: ${last_temp[${SENSOR}]}'F" >> ${logtemp}
|
||||
echo "($datetime) - ${SENSOR} - ${temp_f}F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - Back to NORMAL TEMP: ${temp_f}'F" >> ${logfile}
|
||||
echo -e "($datetime) - ${temp_f}'F - Back to NORMAL TEMP - Previous Temp: ${last_temp[${SENSOR}]}'F" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - alert sent" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Back to NORMAL TEMP" >> ${logfile}
|
||||
[ "$(compgen -G "${FOLDER}/shutdown.*")" != "" ] && rm -f ${FOLDER}/shutdown.*
|
||||
|
||||
elif [ ${last_temp[${SENSOR}]} -eq 0 ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP NORMAL" "($datetime) Service Startup
|
||||
NORMAL TEMP: ${temp_f}'F"
|
||||
echo -e "($datetime) - ${SENSOR} - ${temp_f}'F - Service Startup - NORMAL TEMP" >> ${logtemp}
|
||||
echo -e "($datetime) - ${SENSOR} - Service Startup: ${temp_f}'F" >> ${logfile}
|
||||
echo -e "($datetime) - ${temp_f}'F - Service Startup - NORMAL TEMP" >> ${logtemp}
|
||||
echo -e "($datetime) - ${temp_f}'F - ${SENSOR} - Service Startup" >> ${logfile}
|
||||
[ "$(compgen -G "${FOLDER}/shutdown.*")" != "" ] && rm -f ${FOLDER}/shutdown.*
|
||||
|
||||
elif [ $relog -eq 1 ]; then
|
||||
echo "($datetime) - ${SENSOR} - ${temp_f}F - Normal Temp" >> ${logtemp}
|
||||
echo "($datetime) - ${temp_f}'F - Normal Temp" >> ${logtemp}
|
||||
|
||||
fi
|
||||
last_temp[${SENSOR}]=1
|
||||
@@ -178,7 +177,7 @@ NORMAL TEMP: ${temp_f}'F"
|
||||
${mysql_conn} -e "${QRY}"
|
||||
else
|
||||
SENDNOTICE "${SENSOR} ERROR" "($datetime) ERROR reading temperature" 1
|
||||
echo "($datetime) - ${SENSOR} - alert sent" >> ${logtemp}
|
||||
echo "($datetime) - alert sent" >> ${logtemp}
|
||||
fi
|
||||
|
||||
done
|
||||
@@ -214,72 +213,79 @@ CHECKACV_SERVICE(){
|
||||
voltstatus=0
|
||||
battstatus=0
|
||||
while true; do
|
||||
INPUTACV=$(curl -s "http://10.10.0.61/stats.json" | jq '.inputs .inV')
|
||||
BATTVOLT=$(curl -s "http://10.10.0.61/stats.json" | jq '.inputs .battV')
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
if [ ${INPUTACV} -ge ${min_acvolt} ]; then
|
||||
if [ $voltstatus -eq 3 ]; then
|
||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${logacv}
|
||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V"
|
||||
echo "($datetime) alert sent" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${logfile}
|
||||
battstatus=0
|
||||
else
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logacv}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${logacv}
|
||||
if [ $voltstatus -eq 0 ]; then
|
||||
SENDNOTICE "Power Nominal" "($datetime) Service Startup
|
||||
Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V"
|
||||
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${logacv}
|
||||
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${logfile}
|
||||
INVSTATSINFO=$(curl -s "http://10.10.0.61/stats.json")
|
||||
if [ "${INVSTATSINFO}" != "" ]; then
|
||||
INPUTACV=$(echo ${INVSTATSINFO} | jq '.inputs .inV')
|
||||
BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV')
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
if [ ${INPUTACV} -ge ${min_acvolt} ]; then
|
||||
if [ $voltstatus -eq 3 ]; then
|
||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${logacv}
|
||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V"
|
||||
echo "($datetime) alert sent" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${logfile}
|
||||
battstatus=0
|
||||
else
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logacv}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${logacv}
|
||||
if [ $voltstatus -eq 0 ]; then
|
||||
SENDNOTICE "Power Nominal" "($datetime) Service Startup
|
||||
Normal voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V"
|
||||
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${logfile}
|
||||
fi
|
||||
fi
|
||||
voltstatus=1
|
||||
else
|
||||
echo "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logfile}
|
||||
if [ $voltstatus -lt 3 ]; then
|
||||
SENDNOTICE "POWER ALERT - POWER OFF/LOW POWER!!" "($datetime) Power off or low voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V" 1
|
||||
echo "($datetime) alert sent" >> ${logacv}
|
||||
last_battvolt=$BATTVOLT
|
||||
fi
|
||||
voltstatus=3
|
||||
fi
|
||||
voltstatus=1
|
||||
else
|
||||
echo "($datetime) - ${INPUTACV}V - LOW Voltage" >> ${logacv}
|
||||
echo -e "($datetime) - ${INPUTACV}V - LOW VOLTAGE" >> ${logfile}
|
||||
if [ $voltstatus -lt 3 ]; then
|
||||
SENDNOTICE "POWER ALERT - LOW POWER!!" "($datetime) Power off or low voltage detected
|
||||
VOLTAGE: ${INPUTACV}V
|
||||
BATT VOLTAGE: ${BATTVOLT}V" 1
|
||||
echo "($datetime) alert sent" >> ${logacv}
|
||||
last_battvolt=$BATTVOLT
|
||||
fi
|
||||
voltstatus=3
|
||||
|
||||
if [ ${BATTVOLT%.*} -lt ${min_battvolt} ] && [ ${BATTVOLT%.*} -gt ${min_battvolt_sys} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logacv}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||
if [ $battstatus -lt 2 ]; then
|
||||
if [ $battstatus -lt 2 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${logacv}
|
||||
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
||||
Shutting down main servers" 1
|
||||
Shutting down main servers" 1
|
||||
SHUTDOWN_MAIN server
|
||||
battstatus=2
|
||||
fi
|
||||
|
||||
|
||||
elif [ ${BATTVOLT%.*} -le ${min_battvolt_sys} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logacv}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||
if [ $battstatus -lt 3 ]; then
|
||||
if [ $battstatus -lt 3 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${logacv}
|
||||
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
|
||||
Shutting down all servers" 1
|
||||
Shutting down all servers" 1
|
||||
SHUTDOWN_SYS server
|
||||
|
||||
|
||||
battstatus=3
|
||||
fi
|
||||
|
||||
|
||||
else
|
||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logacv}))
|
||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${BATTVOLT}V - Battery Voltage" >> ${logacv}
|
||||
|
||||
if [ $battstatus -eq 0 ]; then
|
||||
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${logacv}
|
||||
fi
|
||||
|
||||
battstatus=1
|
||||
|
||||
|
||||
fi
|
||||
|
||||
volt_diff=$((${last_battvolt%.*} - ${BATTVOLT%.*}))
|
||||
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
||||
if [ $volt_diff -gt 0 ]; then
|
||||
@@ -287,9 +293,10 @@ Shutting down all servers" 1
|
||||
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${logacv}
|
||||
last_battvolt=$BATTVOLT
|
||||
fi
|
||||
else
|
||||
sleep 20s
|
||||
fi
|
||||
|
||||
sleep 10
|
||||
sleep 10s
|
||||
done # &
|
||||
}
|
||||
|
||||
@@ -355,7 +362,8 @@ SHUTDOWN_SYS(){
|
||||
SHUTDOWN_CRIT(){
|
||||
if [ "${1}" == "RaspberryPI-CPU" ]; then
|
||||
SENDNOTICE "${SENSOR} TEMP CRITICAL" "($datetime) Powerwall System shutting down" 1
|
||||
echo -e "($datetime) - ${SENSOR} - CRITICAL - Powerwall System shutting down" >> ${logtemp}
|
||||
echo -e "($datetime) - CRITICAL TEMP - Powerwall System shutting down" >> ${LOGFOLDER}/log-temp-${1}
|
||||
echo -e "($datetime) - ${SENSOR} TEMP CRITICAL - Powerwall System shutting down" >> ${logfile}
|
||||
/sbin/poweroff
|
||||
fi
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user