diff --git a/defaults.inc b/defaults.inc index a9a73bd6..38aae2cf 100755 --- a/defaults.inc +++ b/defaults.inc @@ -1,6 +1,6 @@ #!/usr/bin/env bash -VERS='2.6.20-02112024' +VERS='2.6.21-02112024' noheader=' update service dailytemp confsync -r -report ' diff --git a/inc/power.inc.sh b/inc/power.inc.sh index da5e8b90..85a03c5e 100644 --- a/inc/power.inc.sh +++ b/inc/power.inc.sh @@ -317,23 +317,7 @@ CHECKPOWER(){ declare -A OFFSITE_MISC for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do - INFO=$(curl -m 3 -s http://${PW_TUYA_API}/status/${PW_SENSOR_DEVICEID[${mSENSOR}]} | jq '.dps') - if [ "$(echo "${INFO}" | grep '"18":')" != "" ]; then - AMP=$(echo "${INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) - WATT=$(echo "${INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) - VOLT=$(echo "${INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) - else - AMP=$(echo "${INFO}" | grep '"4":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) - WATT=$(echo "${INFO}" | grep '"5":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) - VOLT=$(echo "${INFO}" | grep '"6":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) - fi - OFFSITE_MISC[${mSENSOR}]="${AMP}:${WATT}:${VOLT}" + OFFSITE_MISC[${mSENSOR}]=$(GET_TUYA_POWER ${mSENSOR}) done fi @@ -354,9 +338,7 @@ CHECKPOWER(){ [ "${avgdays}" != "" ] && echo -e " Amps Watts" || echo for mSENSOR in "${!OFFSITE_MISC[@]}"; do - echo ${OFFSITE_MISC[${mSENSOR}]} | cut -d':' -f 1 | read AMP - echo ${OFFSITE_MISC[${mSENSOR}]} | cut -d':' -f 2 | read WATT - echo ${OFFSITE_MISC[${mSENSOR}]} | cut -d':' -f 3 | read VOLT + IFS=: read -r AMP WATT VOLT <<< ${OFFSITE_MISC[${mSENSOR}]}; unset IFS AD1="${PW_MISCSENSOR_DESC[${mSENSOR}]}"; c=0; spc1=''; spca=`expr 25 - ${#AD1}`; until [ ${c} = ${spca} ]; do spc1="${spc1} "; ((c++)); done AD2=$(IDS_NUMBER_FORMAT ${AMP} 2 yes); c=0; spc2=''; spca=`expr ${wspc} - ${#AD2}`; until [ ${c} = ${spca} ]; do spc2="${spc2} "; ((c++)); done AD3=$(IDS_NUMBER_FORMAT ${WATT} 2 yes); c=0; spc3=''; spca=`expr ${wspc} - ${#AD3}`; until [ ${c} = ${spca} ]; do spc3="${spc3} "; ((c++)); done @@ -971,23 +953,8 @@ POWERLOGGER_SERVICE(){ for mSENSOR in "${PW_POWERSENSOR_MISC[@]}"; do - INFO=$(curl -m 3 -s http://${PW_TUYA_API}/status/${PW_SENSOR_DEVICEID[${mSENSOR}]} | jq '.dps') - if [ "${INFO}" != "" ] && [ "${PW_POWERSENSOR_ID[${mSENSOR}]}" != "" ]; then - if [ "$(echo "${INFO}" | grep '"18":')" != "" ]; then - AMP=$(echo "${INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) - WATT=$(echo "${INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) - VOLT=$(echo "${INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) - else - AMP=$(echo "${INFO}" | grep '"4":' | cut -d' ' -f 4 | sed 's/,//g') - AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) - WATT=$(echo "${INFO}" | grep '"5":' | cut -d' ' -f 4 | sed 's/,//g') - WATT=$(echo "scale=1; ${WATT}/10" | bc -l) - VOLT=$(echo "${INFO}" | grep '"6":' | cut -d' ' -f 4 | sed 's/,//g') - VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) - fi + IFS=: read -r AMP WATT VOLT <<< $(GET_TUYA_POWER ${mSENSOR}); unset IFS + if [ "${VOLT}" != "" ] && [ "${PW_POWERSENSOR_ID[${mSENSOR}]}" != "" ]; then QRY="INSERT INTO power_data (\`sensorid\`, \`date\`, \`volt\`, \`amp\`, \`watt\`) VALUES ('${PW_POWERSENSOR_ID[${mSENSOR}]}','${LogDataTime}','${VOLT}','${AMP}','${WATT}')" ${mysql_conn} -e "USE servermonitor; ${QRY}" fi @@ -1239,4 +1206,23 @@ OFFSITE_SENDPOWER(){ SENDNOTICE "${1}" "${st_power}" 0 cosmic } +GET_TUYA_POWER(){ + INFO=$(curl -m 3 -s http://${PW_TUYA_API}/status/${PW_SENSOR_DEVICEID[${1}]} | jq '.dps') + if [ "$(echo "${INFO}" | grep '"18":')" != "" ]; then + AMP=$(echo "${INFO}" | grep '"18":' | cut -d' ' -f 4 | sed 's/,//g') + AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) + WATT=$(echo "${INFO}" | grep '"19":' | cut -d' ' -f 4 | sed 's/,//g') + WATT=$(echo "scale=1; ${WATT}/10" | bc -l) + VOLT=$(echo "${INFO}" | grep '"20":' | cut -d' ' -f 4 | sed 's/,//g') + VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) + else + AMP=$(echo "${INFO}" | grep '"4":' | cut -d' ' -f 4 | sed 's/,//g') + AMP=$(ROUND_NUMBER $(echo "scale=3; ${AMP}/1000" | bc -l) 2) + WATT=$(echo "${INFO}" | grep '"5":' | cut -d' ' -f 4 | sed 's/,//g') + WATT=$(echo "scale=1; ${WATT}/10" | bc -l) + VOLT=$(echo "${INFO}" | grep '"6":' | cut -d' ' -f 4 | sed 's/,//g') + VOLT=$(echo "scale=1; ${VOLT}/10" | bc -l) + fi + echo "${AMP}:${WATT}:${VOLT}" +}