update
This commit is contained in:
10
defaults.inc
10
defaults.inc
@@ -1,6 +1,6 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
VERS='2.142-05152023'
|
VERS='2.143-05152023'
|
||||||
|
|
||||||
noheader=' update '
|
noheader=' update '
|
||||||
|
|
||||||
@@ -18,8 +18,8 @@ FOLDER='/opt/idssys/powerwall'
|
|||||||
LOGFOLDER=${FOLDER}/logs
|
LOGFOLDER=${FOLDER}/logs
|
||||||
[ ! -d ${LOGFOLDER} ] && mkdir ${LOGFOLDER}
|
[ ! -d ${LOGFOLDER} ] && mkdir ${LOGFOLDER}
|
||||||
logfile=${LOGFOLDER}/logfile
|
logfile=${LOGFOLDER}/logfile
|
||||||
logacv=${LOGFOLDER}/log-acv
|
logpower=${LOGFOLDER}/log-acv
|
||||||
[ ! -f ${logacv} ] && touch ${logacv}
|
[ ! -f ${logpower} ] && touch ${logpower}
|
||||||
|
|
||||||
|
|
||||||
declare -A TEMP_THRESHOLDS
|
declare -A TEMP_THRESHOLDS
|
||||||
@@ -37,8 +37,8 @@ SENSOR_ID['ServerRoomTH']='2'
|
|||||||
SENSOR_ID['RaspberryPI-CPU']='6'
|
SENSOR_ID['RaspberryPI-CPU']='6'
|
||||||
|
|
||||||
declare -A POWERWALL_SERVICES
|
declare -A POWERWALL_SERVICES
|
||||||
POWERWALL_SERVICES['Temp']='monitor-temp'
|
POWERWALL_SERVICES['temp']='monitor-temp'
|
||||||
POWERWALL_SERVICES['ACV']='monitor-acv'
|
POWERWALL_SERVICES['power']='monitor-power'
|
||||||
POWERWALL_SERVICES['powerlogger']='monitor-powerlogger'
|
POWERWALL_SERVICES['powerlogger']='monitor-powerlogger'
|
||||||
|
|
||||||
declare -A ESXI_HOST_NAMES
|
declare -A ESXI_HOST_NAMES
|
||||||
|
|||||||
77
powerwall.sh
77
powerwall.sh
@@ -209,7 +209,7 @@ CHECKPOWER(){
|
|||||||
[ "${action}" != "" ] && echo
|
[ "${action}" != "" ] && echo
|
||||||
}
|
}
|
||||||
|
|
||||||
CHECKACV_SERVICE(){
|
CHECKPOWER_SERVICE(){
|
||||||
voltstatus=0
|
voltstatus=0
|
||||||
battstatus=0
|
battstatus=0
|
||||||
while true; do
|
while true; do
|
||||||
@@ -220,43 +220,43 @@ CHECKACV_SERVICE(){
|
|||||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||||
if [ ${INPUTACV} -ge ${min_acvolt} ]; then
|
if [ ${INPUTACV} -ge ${min_acvolt} ]; then
|
||||||
if [ $voltstatus -eq 3 ]; then
|
if [ $voltstatus -eq 3 ]; then
|
||||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${logacv}
|
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${logpower}
|
||||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||||
VOLTAGE: ${INPUTACV}V"
|
VOLTAGE: ${INPUTACV}V"
|
||||||
echo "($datetime) alert sent" >> ${logacv}
|
echo "($datetime) alert sent" >> ${logpower}
|
||||||
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${logfile}
|
echo -e "($datetime) - ${INPUTACV}V - POWER NOMINAL AGAIN" >> ${logfile}
|
||||||
battstatus=0
|
battstatus=0
|
||||||
else
|
else
|
||||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logacv}))
|
errtime=$(expr `date +%s` - $(stat -c %Y ${logpower}))
|
||||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${logacv}
|
[ $errtime -ge 3600 ] && echo "($datetime) - ${INPUTACV}V - Normal Voltage" >> ${logpower}
|
||||||
if [ $voltstatus -eq 0 ]; then
|
if [ $voltstatus -eq 0 ]; then
|
||||||
SENDNOTICE "Power Nominal" "($datetime) Service Startup
|
SENDNOTICE "Power Nominal" "($datetime) Service Startup
|
||||||
Normal voltage detected
|
Normal voltage detected
|
||||||
VOLTAGE: ${INPUTACV}V
|
VOLTAGE: ${INPUTACV}V
|
||||||
BATT VOLTAGE: ${BATTVOLT}V"
|
BATT VOLTAGE: ${BATTVOLT}V"
|
||||||
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${logacv}
|
echo "($datetime) - Input: ${INPUTACV}V - Service Startup - Normal voltage detected" >> ${logpower}
|
||||||
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${logfile}
|
echo -e "($datetime) - ${INPUTACV}V / ${BATTVOLT}V - Service Startup - Normal Voltage" >> ${logfile}
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
voltstatus=1
|
voltstatus=1
|
||||||
else
|
else
|
||||||
echo "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logacv}
|
echo "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logpower}
|
||||||
echo -e "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logfile}
|
echo -e "($datetime) - ${INPUTACV}V - POWER OFF/LOW POWER" >> ${logfile}
|
||||||
if [ $voltstatus -lt 3 ]; then
|
if [ $voltstatus -lt 3 ]; then
|
||||||
SENDNOTICE "POWER ALERT - POWER OFF/LOW POWER!!" "($datetime) Power off or low voltage detected
|
SENDNOTICE "POWER ALERT - POWER OFF/LOW POWER!!" "($datetime) Power off or low voltage detected
|
||||||
VOLTAGE: ${INPUTACV}V
|
VOLTAGE: ${INPUTACV}V
|
||||||
BATT VOLTAGE: ${BATTVOLT}V" 1
|
BATT VOLTAGE: ${BATTVOLT}V" 1
|
||||||
echo "($datetime) alert sent" >> ${logacv}
|
echo "($datetime) alert sent" >> ${logpower}
|
||||||
last_battvolt=$BATTVOLT
|
last_battvolt=$BATTVOLT
|
||||||
fi
|
fi
|
||||||
voltstatus=3
|
voltstatus=3
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ${BATTVOLT%.*} -lt ${min_battvolt} ] && [ ${BATTVOLT%.*} -gt ${min_battvolt_sys} ]; then
|
if [ ${BATTVOLT%.*} -lt ${min_battvolt} ] && [ ${BATTVOLT%.*} -gt ${min_battvolt_sys} ]; then
|
||||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logacv}
|
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logpower}
|
||||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||||
if [ $battstatus -lt 2 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
if [ $battstatus -lt 2 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||||
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${logacv}
|
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${logpower}
|
||||||
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
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
|
SHUTDOWN_MAIN server
|
||||||
@@ -264,10 +264,10 @@ CHECKACV_SERVICE(){
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
elif [ ${BATTVOLT%.*} -le ${min_battvolt_sys} ]; then
|
elif [ ${BATTVOLT%.*} -le ${min_battvolt_sys} ]; then
|
||||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logacv}
|
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${logpower}
|
||||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${logfile}
|
||||||
if [ $battstatus -lt 3 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
if [ $battstatus -lt 3 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||||
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${logacv}
|
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${logpower}
|
||||||
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
|
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
|
SHUTDOWN_SYS server
|
||||||
@@ -276,10 +276,10 @@ CHECKACV_SERVICE(){
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
else
|
else
|
||||||
errtime=$(expr `date +%s` - $(stat -c %Y ${logacv}))
|
errtime=$(expr `date +%s` - $(stat -c %Y ${logpower}))
|
||||||
[ $errtime -ge 3600 ] && echo "($datetime) - ${BATTVOLT}V - Battery Voltage" >> ${logacv}
|
[ $errtime -ge 3600 ] && echo "($datetime) - ${BATTVOLT}V - Battery Voltage" >> ${logpower}
|
||||||
if [ $battstatus -eq 0 ]; then
|
if [ $battstatus -eq 0 ]; then
|
||||||
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${logacv}
|
echo "($datetime) - Battery: ${BATTVOLT}V - Service Startup - Normal voltage detected" >> ${logpower}
|
||||||
fi
|
fi
|
||||||
|
|
||||||
battstatus=1
|
battstatus=1
|
||||||
@@ -290,7 +290,7 @@ CHECKACV_SERVICE(){
|
|||||||
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
||||||
if [ $volt_diff -gt 0 ]; then
|
if [ $volt_diff -gt 0 ]; then
|
||||||
SENDNOTICE "BATTERY VOLTAGE CHANGE" "($datetime) Battery Voltage: ${BATTVOLT}V"
|
SENDNOTICE "BATTERY VOLTAGE CHANGE" "($datetime) Battery Voltage: ${BATTVOLT}V"
|
||||||
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${logacv}
|
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${logpower}
|
||||||
last_battvolt=$BATTVOLT
|
last_battvolt=$BATTVOLT
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@@ -564,25 +564,36 @@ fi
|
|||||||
shutdownhost) SHUTDOWN_SERVER ${2};;
|
shutdownhost) SHUTDOWN_SERVER ${2};;
|
||||||
shutdown_servers) SHUTDOWN_SERVERS ${2};;
|
shutdown_servers) SHUTDOWN_SERVERS ${2};;
|
||||||
|
|
||||||
checktemp_service)
|
service)
|
||||||
if [ "${2}" = "stop" ]; then
|
if [ "${3}" = "start" ] || [ "${3}" = "" ]; then
|
||||||
STOP_SERVICE Temp
|
[ "${2}" = "temp"] CHECKTEMP_SERVICE
|
||||||
for SENSOR in ${!SENSOR_ID[@]}; do
|
[ "${2}" = "power"] CHECKPOWER_SERVICE
|
||||||
logtemp=${LOGFOLDER}/log-temp-${SENSOR}
|
[ "${2}" = "powerlogger"] CHECKTEMP_SERVICE
|
||||||
echo "(`date +'%Y-%m-%d %H:%M:%S'`) - ${SENSOR} - Service Stopped" >> ${logtemp}
|
|
||||||
done
|
elif [ "${3}" = "stop" ]; then
|
||||||
else
|
if [ "${2}" = "temp"]; then
|
||||||
CHECKTEMP_SERVICE
|
STOP_SERVICE temp
|
||||||
fi
|
for SENSOR in ${!SENSOR_ID[@]}; do
|
||||||
;;
|
logtemp=${LOGFOLDER}/log-temp-${SENSOR}
|
||||||
checkacv_service)
|
echo "(`date +'%Y-%m-%d %H:%M:%S'`) - ${SENSOR} - Service Stopped" >> ${logtemp}
|
||||||
if [ "${2}" = "stop" ]; then
|
done
|
||||||
STOP_SERVICE ACV
|
|
||||||
echo "(`date +'%Y-%m-%d %H:%M:%S'`) Service Stopped" >> ${logacv}
|
elif [ "${2}" = "power"]; then
|
||||||
else
|
STOP_SERVICE ACV
|
||||||
CHECKACV_SERVICE
|
echo "(`date +'%Y-%m-%d %H:%M:%S'`) Service Stopped" >> ${logpower}
|
||||||
|
|
||||||
|
elif [ "${2}" = "powerlogger"]; then
|
||||||
|
STOP_SERVICE powerlogger
|
||||||
|
|
||||||
|
fi
|
||||||
|
|
||||||
|
elif [ "${3}" = "restart" ]; then
|
||||||
|
/usr/local/bin/powerwall service ${2} stop
|
||||||
|
slep 2s
|
||||||
|
/usr/local/bin/powerwall service ${2} start
|
||||||
fi
|
fi
|
||||||
;;
|
;;
|
||||||
|
|
||||||
powerlogger_service)
|
powerlogger_service)
|
||||||
if [ "${2}" = "stop" ]; then
|
if [ "${2}" = "stop" ]; then
|
||||||
STOP_SERVICE powerlogger
|
STOP_SERVICE powerlogger
|
||||||
|
|||||||
Reference in New Issue
Block a user