Files
powerwall/defaults.inc
2025-06-21 22:25:26 -05:00

129 lines
3.9 KiB
Bash
Executable File

#!/usr/bin/env bash
PW_VERS='2.10.29-06212025'
noheader=' update service dailytemp confsync -r -report test '
HC_CW=60
PRI_WIDTH=75
ESXI_DEFAULT_EXHAUST_MIN=85
IP=$(ip addr show $(ip route | awk '/default/ { print $5 }') | grep "inet" | head -n 1 | awk '/inet/ {print $2}' | cut -d'/' -f1)
NM_FOLDER='/opt/idssys/nodemgmt'
NM_TMPFOLDER=${NM_FOLDER}/.tmp
[ -f ${NM_FOLDER}/conf/defaults.local.inc ] && source ${NM_FOLDER}/defaults.inc
[ "${TESTMODE_ENABLE^^}" == "TRUE" ] && TESTMODE=1 || TESTMODE=0
PW_FOLDER='/opt/idssys/powerwall'
PW_INCFOLDER=${PW_FOLDER}/inc
[[ "${IP}" = "10.2.1."* ]] && PW_LOGFOLDER=${PW_FOLDER}/logs/offsite || PW_LOGFOLDER=${PW_FOLDER}/logs/mainsite
PW_LOGARCHIVE=${PW_LOGFOLDER}/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
if [ "${PW_MYSQL_HOST}" != "" ]; then
if [[ "${IP}" == "10.6.1"* ]]; then
mysql_conn="/usr/bin/mariadb --user=${PW_MYSQL_USER} --password=${PW_MYSQL_PASS}"
else
mysql_conn="/usr/bin/mariadb -P 3308 -h ${PW_MYSQL_HOST} --user=${PW_MYSQL_USER} --password=${PW_MYSQL_PASS}"
fi
fi
[ "${PW_MQTT_HOST}" != "" ] && mqtt_conn="/usr/bin/mosquitto_sub -h ${PW_MQTT_HOST} -u ${PW_MQTT_USER} -P ${PW_MQTT_PASS}"
EMAIL_NOTICE=${PW_EMAIL_NOTICE}
PUSHOVER_APP_TOKEN=${PW_PUSHOVER_APP_TOKEN}
PUSHOVER_USER_TOKEN=${PW_PUSHOVER_USER_TOKEN}
[ "${PW_ENABLE_RENOTIFY}" == "" ] && PW_ENABLE_RENOTIFY=1
PW_FANINPUT='/sys/class/hwmon/*/fan1_input'
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
[ "${PW_ISCSI_PRI_HOST}" = "" ] && PW_ISCSI_PRI_HOST="10.10.2.10"
[ "${PW_ISCSI_SYS_HOST}" = "" ] && PW_ISCSI_SYS_HOST="10.10.2.16"
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_UPS_STATES
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 [ ${TESTMODE} -eq 1 ]; then
PUSH_TO_MOBILE "***TEST MODE***
${SN_MSG}
$(date)
${NM_HOSTNAMES[${IP}]}" "${SN_TIT}" ${3} ${4} &
else
PUSH_TO_MOBILE "${SN_MSG}
[${NM_HOSTNAMES[${IP}]}] $(date)" "${SN_TIT}" ${3} ${4} &
fi
fi
[ "${PW_EMAIL_NOTICE}" != "" ] && echo -e "${2}\n\n$(date +%Y-%m-%d-%H-%M-%S)\n${NM_HOSTNAMES[${IP}]}" | mail -s "${1}" ${PW_EMAIL_NOTICE}
}