Update powerwall.sh

This commit is contained in:
2023-11-02 08:50:32 -05:00
parent 0c7bc88283
commit f6c64563c6

View File

@@ -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/.*: //')