114 lines
3.3 KiB
Bash
Executable File
114 lines
3.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
VERS='2.7.122b-11092024'
|
|
|
|
noheader=' update service dailytemp confsync -r -report test '
|
|
|
|
HC_CW=60
|
|
PRI_WIDTH=75
|
|
ESXI_DEFAULT_EXHAUST_MIN=85
|
|
|
|
PW_FOLDER='/opt/idssys/powerwall'
|
|
PW_INCFOLDER=${PW_FOLDER}/inc
|
|
PW_LOGFOLDER=${PW_FOLDER}/logs
|
|
PW_LOGARCHIVE=${PW_FOLDER}/logs/archive
|
|
PW_TMPFOLDER=${PW_FOLDER}/.tmp
|
|
[ ! -d ${PW_INCFOLDER} ] && mkdir ${PW_INCFOLDER}
|
|
[ ! -d ${PW_LOGFOLDER} ] && mkdir ${PW_LOGFOLDER}
|
|
[ ! -d ${PW_LOGARCHIVE} ] && mkdir ${PW_LOGARCHIVE}
|
|
[ ! -d ${PW_TMPFOLDER} ] && mkdir ${PW_TMPFOLDER}
|
|
|
|
PW_SCRIPT=${PW_FOLDER}/powerwall.sh
|
|
PW_LOGFILE=${PW_LOGFOLDER}/logfile
|
|
PW_LOGPOWER=${PW_LOGFOLDER}/log-power
|
|
[ ! -f ${PW_LOGFILE} ] && touch ${PW_LOGFILE}
|
|
[ ! -f ${PW_LOGPOWER} ] && touch ${PW_LOGPOWER}
|
|
|
|
M_SRVCOPT=(start stop restart reload enable disable)
|
|
|
|
source ${PW_FOLDER}/conf/settings.conf
|
|
|
|
EMAIL_NOTICE=${PW_EMAIL_NOTICE}
|
|
PUSHOVER_APP_TOKEN=${PW_PUSHOVER_APP_TOKEN}
|
|
PUSHOVER_USER_TOKEN=${PW_PUSHOVER_USER_TOKEN}
|
|
|
|
if [ "${PW_FANINPUT}" == "" ]; then
|
|
if [ -f /sys/class/hwmon/hwmon2/fan1_input ]; then
|
|
PW_FANINPUT=/sys/class/hwmon/hwmon2/fan1_input
|
|
elif [ -f /sys/class/hwmon/hwmon3/fan1_input ]; then
|
|
PW_FANINPUT=/sys/class/hwmon/hwmon3/fan1_input
|
|
fi
|
|
fi
|
|
[ "${PW_ENABLE_RENOTIFY}" == "" ] && PW_ENABLE_RENOTIFY=1
|
|
|
|
mqtt_conn="/usr/bin/mosquitto_sub -h 127.0.0.1 -u ${PW_MQTT_USER} -P ${PW_MQTT_PASS}"
|
|
# mysql_conn="/usr/bin/mysql -h ${PW_MYSQL_HOST} -P 6033 --user=${PW_MYSQL_USER} --password=${PW_MYSQL_PASS}"
|
|
mysql_conn='/usr/bin/mysql'
|
|
|
|
IFS=,
|
|
PW_MAINSITEHOSTS=(${PW_MAINSITE_HOSTS})
|
|
PW_MAIN_NOISCSIHOSTS=(${PW_MAIN_NOISCSI_HOSTS})
|
|
PW_MAINHOSTS=(${PW_MAIN_HOSTS})
|
|
PW_SYSHOSTS=(${PW_SYS_HOSTS})
|
|
PW_OFFSITEHOSTS=(${PW_OFFSITE_HOSTS})
|
|
PW_ALLHOSTS=(${PW_ALL_HOSTS})
|
|
PW_CONSERVEHOSTS=(${PW_CONSERVE_HOSTS})
|
|
PW_ESXI_FANSPEEDCONTROLHOSTS=(${PW_ESXI_FANSPEEDCONTROL_HOSTS})
|
|
[ "${PW_TEMPIND_RANGE}" != "" ] && PW_TEMPIND_RANGE=(${PW_TEMPIND_RANGE})
|
|
unset IFS
|
|
|
|
if [ -f ${PW_FOLDER}/conf/settings.local.conf ]; then
|
|
declare -A PW_POWERWALL_SERVICES
|
|
declare -A PW_THRESHOLDS
|
|
declare -A PW_SENSOR_TYPE
|
|
declare -A PW_REMOTE_SENSORS
|
|
declare -A PW_SENSOR_ID
|
|
declare -A PW_POWERSENSOR_ID
|
|
declare -A PW_HOST_IDRACS
|
|
declare -A PW_HOST_ADDRESSES
|
|
declare -A PW_ESXI_HOST_NAMES
|
|
declare -A PW_VCENTER_HOST_NAMES
|
|
declare -A PW_iDRACHOST_SHORTNAMES
|
|
declare -A PW_INVERTER_ALARMS
|
|
declare -A PW_INVERTER_STATES
|
|
declare -A PW_INVERTER_MODES
|
|
declare -A PW_INVERTER_ERRORS
|
|
declare -A PW_SENSOR_DEVICEID
|
|
declare -A PW_OFFSITE_UPS_CODES
|
|
declare -A PW_MISCSENSOR_DESC
|
|
declare -A PW_DESC_TEMP
|
|
|
|
source ${PW_FOLDER}/conf/settings.local.conf
|
|
|
|
[ "${PW_TEMPIND_DIFF}" == "" ] && PW_TEMPIND_DIFF=1
|
|
|
|
else
|
|
echo "NO settings.local.conf FILE FOUND"
|
|
[ "${1}" ] && [ "${1}" != "update" ] && exit 1
|
|
|
|
fi
|
|
|
|
# RNIP=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1)
|
|
|
|
SENDNOTICE(){
|
|
if [ "${PUSHOVER_APP_TOKEN}" != "" ]; then
|
|
SN_TIT="$(echo -e "${1}" | sed "s/\%/\%25 /g")"
|
|
SN_MSG="$(echo -e "${2}" | sed "s/\%/\%25 /g")"
|
|
if [ "${TEST_INPUTACV}" != "" ] || [ "${TEST_BATTVOLT}" != "" ]; then
|
|
PUSH_TO_MOBILE "***TEST MODE***
|
|
|
|
${SN_MSG}
|
|
|
|
$(date)" "${SN_TIT}" ${3} ${4} &
|
|
else
|
|
# echo "HERE: [${SN_TIT}]=${SN_MSG}: DONE"
|
|
PUSH_TO_MOBILE "${SN_MSG}
|
|
|
|
$(date)" "${SN_TIT}" ${3} ${4} &
|
|
fi
|
|
fi
|
|
[ "${PW_EMAIL_NOTICE}" != "" ] && echo -e "${2}\n\n$(date +%Y-%m-%d-%H-%M-%S)" | mail -s "${1}" ${PW_EMAIL_NOTICE}
|
|
|
|
}
|
|
|