Update powerwall.sh
This commit is contained in:
74
powerwall.sh
74
powerwall.sh
@@ -684,24 +684,15 @@ CHECKPOWER(){
|
|||||||
CHECKPOWER_SERVICE(){
|
CHECKPOWER_SERVICE(){
|
||||||
voltstatus=0
|
voltstatus=0
|
||||||
battstatus=0
|
battstatus=0
|
||||||
# rm -f ${PW_TMPFOLDER}/powerlogger.insert
|
|
||||||
while true; do
|
while true; do
|
||||||
INVSTATSINFO=$(curl -s "https://inv1.scity.us/stats.json")
|
INVSTATSINFO=$(curl -s "https://inv1.scity.us/stats.json")
|
||||||
if [ "${INVSTATSINFO}" != "" ]; then
|
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')
|
INPUTACV=$(echo ${INVSTATSINFO} | jq '.inputs .inV')
|
||||||
BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV')
|
BATTVOLT=$(echo ${INVSTATSINFO} | jq '.inputs .battV')
|
||||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
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
|
if [ $voltstatus -eq 3 ]; then
|
||||||
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
echo "($datetime) - ${INPUTACV}V - Back to Normal Voltage" >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
SENDNOTICE "POWER NOMINAL AGAIN" "($datetime) Normal voltage detected
|
||||||
@@ -735,11 +726,11 @@ BATT VOLTAGE: ${BATTVOLT}V" 1
|
|||||||
touch ${PW_TMPFOLDER}/power.ac.low
|
touch ${PW_TMPFOLDER}/power.ac.low
|
||||||
fi
|
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 "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||||
touch ${PW_TMPFOLDER}/power.dc.low
|
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}
|
echo "($datetime) - ${BATTVOLT}V - Shutting down main servers..." >> ${PW_LOGPOWER}
|
||||||
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
SENDNOTICE "BATT-VOLT LOW: SHUTDOWN MAIN SERVERS" "($datetime) Battery Voltage LOW: ${BATTVOLT}V
|
||||||
Shutting down main servers" 1
|
Shutting down main servers" 1
|
||||||
@@ -747,11 +738,11 @@ Shutting down main servers" 1
|
|||||||
battstatus=2
|
battstatus=2
|
||||||
fi
|
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 "($datetime) - ${BATTVOLT}V - LOW BATTERY Voltage" >> ${PW_LOGPOWER}
|
||||||
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
echo -e "($datetime) - ${BATTVOLT}V - LOW BATTERY VOLTAGE" >> ${PW_LOGFILE}
|
||||||
touch ${PW_TMPFOLDER}/power.dc.low
|
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}
|
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
|
SENDNOTICE "BATT-VOLT REALLY LOW: SHUTDOWN SYS SERVERS" "($datetime) Battery Voltage REALLY LOW: ${BATTVOLT}V
|
||||||
Shutting down all servers" 1
|
Shutting down all servers" 1
|
||||||
@@ -772,12 +763,12 @@ Shutting down all servers" 1
|
|||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
volt_diff=$((${last_battvolt%.*} - ${BATTVOLT%.*}))
|
volt_diff=`echo "scale=1; ${last_battvolt}-${BATTVOLT}" | bc`
|
||||||
[ $volt_diff -lt 0 ] && temp_diff=$(($volt_diff * -1))
|
(( $(bc <<<"${volt_diff} < 0") )) && temp_diff=`echo "scale=1; ${volt_diff} * -1" | bc`
|
||||||
if [ $volt_diff -gt 0 ]; then
|
if (( $(bc <<<"${volt_diff} > 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" >> ${PW_LOGPOWER}
|
echo -e "($datetime) - ${BATTVOLT}V - Battery Voltage Change" >> ${PW_LOGPOWER}
|
||||||
last_battvolt=$BATTVOLT
|
last_battvolt=${BATTVOLT}
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
sleep 20s
|
sleep 20s
|
||||||
@@ -796,50 +787,6 @@ Shutting down all servers" 1
|
|||||||
done # &
|
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(){
|
POWERLOGGER_SERVICE(){
|
||||||
while true; do
|
while true; do
|
||||||
datetime=`date +'%Y-%m-%d %H:%M:%S'`
|
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=$(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`
|
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=$(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_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=$(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