update
This commit is contained in:
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
VERS='2.5.4-12112023'
|
VERS='2.5.5-12112023'
|
||||||
|
|
||||||
noheader=' update service dailytemp confsync '
|
noheader=' update service dailytemp confsync '
|
||||||
hc_cw=60
|
hc_cw=60
|
||||||
@@ -18,6 +18,7 @@ PW_TMPFOLDER=${PW_FOLDER}/.tmp
|
|||||||
[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE}
|
[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE}
|
||||||
[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER}
|
[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER}
|
||||||
|
|
||||||
|
PW_SCRIPT=${PW_FOLDER}/powerwall.sh
|
||||||
PW_LOGFILE=${PW_LOGFOLDER}/logfile
|
PW_LOGFILE=${PW_LOGFOLDER}/logfile
|
||||||
PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
||||||
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
||||||
|
|||||||
@@ -95,7 +95,7 @@ $(date)"
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER}))
|
logtime=$(expr `date +%s` - $(stat -f %m ${PW_LOGPOWER}))
|
||||||
if [ ${logtime} -ge $(echo "scale=2; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_LOG_INTERVAL_CHARGING} ]); then
|
if [ ${logtime} -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] || ([ ${OFFSITE_BATT_CAP%.*} -lt 100 ] && [ ${logtime} -gt ${PW_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
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
37
powerwall.sh
37
powerwall.sh
@@ -226,7 +226,7 @@ CHECKTEMP_SERVICE(){
|
|||||||
for SENSORa in ${PW_SENSOR_ORD[@]}; do
|
for SENSORa in ${PW_SENSOR_ORD[@]}; do
|
||||||
logtemp=${PW_LOGFOLDER}/log-temp-${SENSORa}
|
logtemp=${PW_LOGFOLDER}/log-temp-${SENSORa}
|
||||||
[ ! -f ${logtemp} ] && touch ${logtemp}
|
[ ! -f ${logtemp} ] && touch ${logtemp}
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${logtemp})) -ge 3600 ] && relog=1 || relog=0
|
[ $(expr `date +%s` - $(stat -c %Y ${logtemp})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && relog=1 || relog=0
|
||||||
|
|
||||||
if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]) || ([ "${PW_HOST_ADDRESSES[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_HOST_ADDRESSES[${SENSORa}]})" != "false" ]); then
|
if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]) || ([ "${PW_HOST_ADDRESSES[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_HOST_ADDRESSES[${SENSORa}]})" != "false" ]); then
|
||||||
# if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]); then
|
# if ([ "${PW_REMOTE_SENSORS[${SENSORa}]}" != "" ] && [ "$(CHECK_HOST ${PW_REMOTE_SENSORS[${SENSORa}]})" != "false" ]); then
|
||||||
@@ -413,9 +413,9 @@ Previous Temp: ${last_temp[${SENSOR//-/}]}${GAUGESH}"
|
|||||||
|
|
||||||
[ -f ${PW_TMPFOLDER}/${SENSOR}.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.insert)) || lastinsert=100000
|
[ -f ${PW_TMPFOLDER}/${SENSOR}.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/${SENSOR}.insert)) || lastinsert=100000
|
||||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||||
wait=60
|
wait=$(echo "scale=0; ${PW_MYSQL_LOG_INTERVAL_ABNORMAL}*60" | bc)
|
||||||
else
|
else
|
||||||
wait=300
|
wait=$(echo "scale=0; ${PW_MYSQL_LOG_INTERVAL_NORMAL}*60" | bc)
|
||||||
fi
|
fi
|
||||||
if [ "${PW_SENSOR_ID[${SENSORa}]}" != "" ] && [ ${lastinsert} -ge ${wait} ]; then
|
if [ "${PW_SENSOR_ID[${SENSORa}]}" != "" ] && [ ${lastinsert} -ge ${wait} ]; then
|
||||||
if [ "${PW_SENSOR_TYPE[${SENSORa}]}" == "esxi" ]; then
|
if [ "${PW_SENSOR_TYPE[${SENSORa}]}" == "esxi" ]; then
|
||||||
@@ -576,7 +576,7 @@ CHECKPOWER(){
|
|||||||
INV_ALARM=`echo ${INVSTATSINFO} | jq '.errors .Alms'`
|
INV_ALARM=`echo ${INVSTATSINFO} | jq '.errors .Alms'`
|
||||||
[ "${INV_ALARM}" == "0" ] && INV_ALARM_disp="${idsCL[Green]}No Alarms (${INV_ALARM})" || INV_ALARM_disp="${idsCL[LightRed]}${PW_INVERTER_ALARMS[${INV_ALARM}]}"
|
[ "${INV_ALARM}" == "0" ] && INV_ALARM_disp="${idsCL[Green]}No Alarms (${INV_ALARM})" || INV_ALARM_disp="${idsCL[LightRed]}${PW_INVERTER_ALARMS[${INV_ALARM}]}"
|
||||||
INV_ERROR=`echo ${INVSTATSINFO} | jq '.errors .Err'`
|
INV_ERROR=`echo ${INVSTATSINFO} | jq '.errors .Err'`
|
||||||
[ "${INV_ERROR}" == "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}"
|
[ "${INV_ERROR}" == "0" ] && INV_ERROR_disp="${idsCL[Green]}No Errors (${INV_ERROR})" || INV_ERROR_disp="${idsCL[LightRed]}${PW_INVERTER_ERRORS[${INV_ERROR}]}"
|
||||||
INV_STATE=`echo ${INVSTATSINFO} | jq '.stats .invSTATES'`
|
INV_STATE=`echo ${INVSTATSINFO} | jq '.stats .invSTATES'`
|
||||||
[ "${INV_STATE}" != "0" ] && INV_STATE_disp="${idsCL[Green]}${PW_INVERTER_STATES[${INV_STATE}]}" || INV_STATE_disp="${idsCL[LightRed]}${PW_INVERTER_STATES[${INV_STATE}]}"
|
[ "${INV_STATE}" != "0" ] && INV_STATE_disp="${idsCL[Green]}${PW_INVERTER_STATES[${INV_STATE}]}" || INV_STATE_disp="${idsCL[LightRed]}${PW_INVERTER_STATES[${INV_STATE}]}"
|
||||||
INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'`
|
INV_MODE=`echo ${INVSTATSINFO} | jq '.stats .power'`
|
||||||
@@ -881,7 +881,7 @@ CHECKPOWER_SERVICE(){
|
|||||||
SENDNOTICE "POWER NOMINAL AGAIN" "Normal voltage detected
|
SENDNOTICE "POWER NOMINAL AGAIN" "Normal voltage detected
|
||||||
VOLTAGE: ${INPUTACV}'volts"
|
VOLTAGE: ${INPUTACV}'volts"
|
||||||
else
|
else
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 3600 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts - Normal Voltage" >> ${PW_LOGPOWER}
|
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts - Normal Voltage" >> ${PW_LOGPOWER}
|
||||||
if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then
|
if [ -f ${PW_TMPFOLDER}/power.ac.start ]; then
|
||||||
SENDNOTICE "Power Nominal" "Service Startup
|
SENDNOTICE "Power Nominal" "Service Startup
|
||||||
Normal voltage detected
|
Normal voltage detected
|
||||||
@@ -895,14 +895,14 @@ BATT VOLTAGE: ${BATTVOLT}'volts"
|
|||||||
if [ ! -f ${PW_TMPFOLDER}/power.ac.good ]; then
|
if [ ! -f ${PW_TMPFOLDER}/power.ac.good ]; then
|
||||||
|
|
||||||
if [ -f ${PW_TMPFOLDER}/power.sys.off ] || [ -f ${PW_TMPFOLDER}/power.main.off ] || [ -f ${PW_TMPFOLDER}/power.ac.conserve ]; then
|
if [ -f ${PW_TMPFOLDER}/power.sys.off ] || [ -f ${PW_TMPFOLDER}/power.main.off ] || [ -f ${PW_TMPFOLDER}/power.ac.conserve ]; then
|
||||||
SENDNOTICE "HOSTS POWER" "Power restored! Will wait 3'mins before turning host(s) back on"
|
SENDNOTICE "HOSTS POWER" "Power restored! Will wait ${PW_WAIT_TO_POWER_SERVERS}'mins before turning host(s) back on"
|
||||||
touch ${PW_TMPFOLDER}/.power.restored
|
touch ${PW_TMPFOLDER}/.power.restored
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.*
|
rm -f ${PW_TMPFOLDER}/power.ac.*
|
||||||
touch ${PW_TMPFOLDER}/power.ac.good
|
touch ${PW_TMPFOLDER}/power.ac.good
|
||||||
|
|
||||||
elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge 300 ]; then
|
elif [ -f ${PW_TMPFOLDER}/.power.restored ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/.power.restored)) -ge $(echo "scale=0; ${PW_WAIT_TO_POWER_SERVERS}*60" | bc) ]; then
|
||||||
HOSTMGMT mainsite -p on >/dev/null 2>&1
|
HOSTMGMT mainsite -p on >/dev/null 2>&1
|
||||||
rm -f ${PW_TMPFOLDER}/.power.restored
|
rm -f ${PW_TMPFOLDER}/.power.restored
|
||||||
fi
|
fi
|
||||||
@@ -921,8 +921,13 @@ VOLTAGE: ${INPUTACV}'volts
|
|||||||
BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
||||||
rm -f ${PW_TMPFOLDER}/power.ac.good
|
rm -f ${PW_TMPFOLDER}/power.ac.good
|
||||||
touch ${PW_TMPFOLDER}/power.ac.low
|
touch ${PW_TMPFOLDER}/power.ac.low
|
||||||
|
|
||||||
|
##### SHUTDOWN OFFSITE SERVER WHILE ITS AT MAINSITE
|
||||||
|
${PW_SCRIPT} host 10.2.1.11 -e off 2>/dev/null &
|
||||||
|
|
||||||
|
|
||||||
fi
|
fi
|
||||||
if [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge 120 ]; then
|
if [ ! -f ${PW_TMPFOLDER}/power.ac.conserve ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.ac.low)) -ge $(echo "scale=0; ${PW_CONSERVE_AFTER}*60" | bc) ]; then
|
||||||
echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts / ${BATTVOLT}'volts - Shutting down iSCSI VM's and Host to conserve power" >> ${PW_LOGPOWER}
|
echo -e "($(date +'%Y-%m-%d %H:%M:%S')) - ${INPUTACV}'volts / ${BATTVOLT}'volts - Shutting down iSCSI VM's and Host to conserve power" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER ALERT - Conserving Power" "Shutting down iSCSI VM's and Host to conserve power" 1
|
SENDNOTICE "POWER ALERT - Conserving Power" "Shutting down iSCSI VM's and Host to conserve power" 1
|
||||||
SHUTDOWN_SERVER ${PW_HOST_IDRACS['iDS-vMS-Host0']} &
|
SHUTDOWN_SERVER ${PW_HOST_IDRACS['iDS-vMS-Host0']} &
|
||||||
@@ -931,7 +936,7 @@ BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
if (( $(bc <<<"${BATTVOLT} >= ${min_battvolt}") )); then
|
if (( $(bc <<<"${BATTVOLT} >= ${min_battvolt}") )); then
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 3600 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Battery Voltage" >> ${PW_LOGPOWER}
|
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_NORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Battery Voltage" >> ${PW_LOGPOWER}
|
||||||
if [ -f ${PW_TMPFOLDER}/power.dc.start ]; then
|
if [ -f ${PW_TMPFOLDER}/power.dc.start ]; then
|
||||||
echo "($(date +'%Y-%m-%d %H:%M:%S')) - Battery: ${BATTVOLT}'volts - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER}
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - Battery: ${BATTVOLT}'volts - Service Startup - Normal voltage detected" >> ${PW_LOGPOWER}
|
||||||
rm -f ${PW_TMPFOLDER}/power.dc.start
|
rm -f ${PW_TMPFOLDER}/power.dc.start
|
||||||
@@ -943,7 +948,7 @@ BATT VOLTAGE: ${BATTVOLT}'volts" 1
|
|||||||
|
|
||||||
else
|
else
|
||||||
[ -f ${PW_TMPFOLDER}/power.dc.good ] && rm -f ${PW_TMPFOLDER}/power.dc.good
|
[ -f ${PW_TMPFOLDER}/power.dc.good ] && rm -f ${PW_TMPFOLDER}/power.dc.good
|
||||||
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge 300 ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
[ $(expr `date +%s` - $(stat -c %Y ${PW_LOGPOWER})) -ge $(echo "scale=0; ${PW_LOG_INTERVAL_ABNORMAL}*60" | bc) ] && echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||||
|
|
||||||
if (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then
|
if (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then
|
||||||
[ ! -f ${PW_TMPFOLDER}/power.dc.critlow ] && touch ${PW_TMPFOLDER}/power.dc.critlow
|
[ ! -f ${PW_TMPFOLDER}/power.dc.critlow ] && touch ${PW_TMPFOLDER}/power.dc.critlow
|
||||||
@@ -968,6 +973,13 @@ Shutting down main servers" 1
|
|||||||
SHUTDOWN_MAIN POWER &
|
SHUTDOWN_MAIN POWER &
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
elif [ ! -f ${PW_TMPFOLDER}/power.main.off ] && [ $(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/power.dc.low)) -ge $(echo "scale=0; ${PW_SHUTDOWN_MAINSERVERS_AFTER}*60" | bc) ]; then
|
||||||
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGFILE}
|
||||||
|
echo "($(date +'%Y-%m-%d %H:%M:%S')) - ${BATTVOLT}'volts - Shutting down main servers..." >> ${PW_LOGPOWER}
|
||||||
|
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "Battery Voltage LOW: ${BATTVOLT}'volts
|
||||||
|
Shutting down main servers" 1
|
||||||
|
SHUTDOWN_MAIN POWER &
|
||||||
fi
|
fi
|
||||||
|
|
||||||
volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc`
|
volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc`
|
||||||
@@ -1132,9 +1144,10 @@ POWERLOGGER_SERVICE(){
|
|||||||
done
|
done
|
||||||
|
|
||||||
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.*")" != "" ]; then
|
if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.*")" != "" ]; then
|
||||||
sleep 1m
|
sleep ${PW_MYSQL_LOG_INTERVAL_ABNORMAL}m
|
||||||
|
|
||||||
else
|
else
|
||||||
sleep 5m
|
sleep ${PW_MYSQL_LOG_INTERVAL_NORMAL}m
|
||||||
fi
|
fi
|
||||||
|
|
||||||
done
|
done
|
||||||
|
|||||||
Reference in New Issue
Block a user