Update powerwall.sh
This commit is contained in:
78
powerwall.sh
78
powerwall.sh
@@ -684,24 +684,15 @@ CHECKPOWER(){
|
||||
CHECKPOWER_SERVICE(){
|
||||
voltstatus=0
|
||||
battstatus=0
|
||||
# rm -f ${PW_TMPFOLDER}/powerlogger.insert
|
||||
while true; do
|
||||
INVSTATSINFO=$(curl -s "https://inv1.scity.us/stats.json")
|
||||
if [ "${INVSTATSINFO}" != "" ]; then
|
||||
# [ -f ${PW_TMPFOLDER}/powerlogger.insert ] && lastinsert=$(expr `date +%s` - $(stat -c %Y ${PW_TMPFOLDER}/powerlogger.insert)) || lastinsert=100000
|
||||
# if [ "$(compgen -G "${PW_TMPFOLDER}/temp.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.ac.*")" != "" ] || [ "$(compgen -G "${PW_TMPFOLDER}/power.dc.*")" != "" ]; then
|
||||
# wait=60
|
||||
# else
|
||||
# wait=300
|
||||
# fi
|
||||
# if [ ${lastinsert} -ge ${wait} ]; then
|
||||
# POWERLOGGER "${INVSTATSINFO}" &
|
||||
# fi
|
||||
|
||||
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 (( $(bc <<<"${INPUTACV} >= ${min_acvolt}") )); then
|
||||
if [ $voltstatus -eq 3 ]; then
|
||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||
@@ -734,12 +725,12 @@ BATT VOLTAGE: ${BATTVOLT}V" 1
|
||||
voltstatus=3
|
||||
touch ${PW_TMPFOLDER}/power.ac.low
|
||||
fi
|
||||
|
||||
if [ ${BATTVOLT%.*} -lt ${min_battvolt} ] && [ ${BATTVOLT%.*} -gt ${min_battvolt_sys} ]; then
|
||||
|
||||
if (( $(bc <<<"${BATTVOLT} < ${min_battvolt} && ${BATTVOLT} > ${min_battvolt_sys}") )); then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||
touch ${PW_TMPFOLDER}/power.dc.low
|
||||
if [ $battstatus -lt 2 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
if (( $(bc <<<"${battstatus} < 2 && ${INPUTACV} < ${min_acvolt}") )); then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
||||
Shutting down main servers" 1
|
||||
@@ -747,11 +738,11 @@ Shutting down main servers" 1
|
||||
battstatus=2
|
||||
fi
|
||||
|
||||
elif [ ${BATTVOLT%.*} -le ${min_battvolt_sys} ]; then
|
||||
elif (( $(bc <<<"${BATTVOLT} <= ${min_battvolt_sys}") )); then
|
||||
echo "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||
touch ${PW_TMPFOLDER}/power.dc.low
|
||||
if [ $battstatus -lt 3 ] && [ ${INPUTACV} -lt ${min_acvolt} ]; then
|
||||
if (( $(bc <<<"${battstatus} < 3 && ${INPUTACV} < ${min_acvolt}") )); then
|
||||
echo "($datetime) - ${BATTVOLT}V - Shutting down all remaining servers..." >> ${PW_LOGPOWER}
|
||||
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SYS SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
|
||||
Shutting down all servers" 1
|
||||
@@ -771,13 +762,13 @@ Shutting down all servers" 1
|
||||
battstatus=1
|
||||
|
||||
fi
|
||||
|
||||
volt_diff=$((${last_battvolt%.*} - ${BATTVOLT%.*}))
|
||||
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
||||
if [ $volt_diff -gt 0 ]; then
|
||||
|
||||
volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc`
|
||||
(( $(bc <<<"${volt_diff} < 0") )) && temp_diff=`echo "scale=1; ${volt_diff} * -1" | bc`
|
||||
if (( $(bc <<<"${volt_diff} > 0") )); then
|
||||
SENDNOTICE "BATTERY VOLTAGE CHANGE" "($datetime) Battery Voltage: ${BATTVOLT}V"
|
||||
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${PW_LOGPOWER}
|
||||
last_battvolt=$BATTVOLT
|
||||
last_battvolt=${BATTVOLT}
|
||||
fi
|
||||
else
|
||||
sleep 20s
|
||||
@@ -796,50 +787,6 @@ Shutting down all servers" 1
|
||||
done # &
|
||||
}
|
||||
|
||||
POWERLOGGER(){
|
||||
INVSTATSINFO=${1}
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
# INVSTATSINFO=$(curl -s "https://inv1.scity.us/stats.json")
|
||||
inV=`echo ${INVSTATSINFO} | jq '.inputs .inV'`
|
||||
inA=`echo ${INVSTATSINFO} | jq '.inputs .inA'`
|
||||
outV=`echo ${INVSTATSINFO} | jq '.outputs .outV'`
|
||||
outA=`echo ${INVSTATSINFO} | jq '.outputs .outA'`
|
||||
battV=`echo ${INVSTATSINFO} | jq '.inputs .battV'`
|
||||
xfA=`echo ${INVSTATSINFO} | jq '.inputs .xfA'`
|
||||
|
||||
SVRRM_VOLT=$(snmpwalk -v 1 -c public 10.10.1.205 iso.3.6.1.2.1.33.1.4.4.1.2.1 | sed 's/.*: //')
|
||||
SVRRM_WATT=$(snmpwalk -v 1 -c public 10.10.1.205 iso.3.6.1.2.1.33.1.4.4.1.4.1 | sed 's/.*: //')
|
||||
SVRRM_AMP=$(snmpwalk -v 1 -c public 10.10.1.205 iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')
|
||||
SVRRM_AMP=`echo "scale=1; ${SVRRM_AMP}/10" | bc`
|
||||
|
||||
APCPDU_AMP=$(snmpwalk -v 1 -c public 10.10.1.210 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //')
|
||||
APCPDU_AMP=`echo "scale=1; ${APCPDU_AMP}/10" | bc`
|
||||
# APCPDU_WATT=$(snmpwalk -v 1 -c public 10.10.1.210 .1.3.6.1.4.1.318.1.1.12.1.16.0 | sed 's/.*: //')
|
||||
APCPDU_WATT=`echo "scale=1; ${APCPDU_AMP}*${SVRRM_VOLT}" | bc`
|
||||
|
||||
NETRK_AMP=`echo "scale=1; ${SVRRM_AMP}-${APCPDU_AMP}" | bc`
|
||||
NETRK_WATT=`echo "scale=0; ${SVRRM_WATT}-${APCPDU_WATT}" | bc`
|
||||
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`) VALUES ('3','${datetime}','${inV}','${inA}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`) VALUES ('4','${datetime}','${outV}','${outA}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`) VALUES ('5','${datetime}','${battV}','${xfA}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`, \`watt\`) VALUES ('11','${datetime}','${SVRRM_VOLT}','${SVRRM_AMP}','${SVRRM_WATT}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`, \`watt\`) VALUES ('12','${datetime}','${SVRRM_VOLT}','${APCPDU_AMP}','${APCPDU_WATT}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`, \`watt\`) VALUES ('13','${datetime}','${SVRRM_VOLT}','${NETRK_AMP}','${NETRK_WATT}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
|
||||
QRY="INSERT INTO inv_jsonstats (\`date\`, \`data\`) VALUES ('${datetime}','${INVSTATSINFO}')"
|
||||
${mysql_conn} -e "USE servermonitor; ${QRY}"
|
||||
|
||||
touch ${PW_TMPFOLDER}/powerlogger.insert
|
||||
}
|
||||
|
||||
POWERLOGGER_SERVICE(){
|
||||
while true; do
|
||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
||||
@@ -857,7 +804,6 @@ POWERLOGGER_SERVICE(){
|
||||
SVRRM_AMP=$(snmpwalk -v 1 -c public 10.10.1.205 iso.3.6.1.2.1.33.1.4.4.1.3.1 | sed 's/.*: //')
|
||||
SVRRM_AMP=`echo "scale=1; ${SVRRM_AMP}/10" | bc`
|
||||
|
||||
|
||||
APCPDU_AMP=$(snmpwalk -v 1 -c public 10.10.1.210 .1.3.6.1.4.1.318.1.1.12.2.3.1.1.2.1 | sed 's/.*: //')
|
||||
APCPDU_AMP=`echo "scale=1; ${APCPDU_AMP}/10" | bc`
|
||||
# APCPDU_WATT=$(snmpwalk -v 1 -c public 10.10.1.210 .1.3.6.1.4.1.318.1.1.12.1.16.0 | sed 's/.*: //')
|
||||
|
||||
Reference in New Issue
Block a user