Hive.sh

From HiveTool
Revision as of 05:59, 21 December 2013 by Paul (talk | contribs) (Created page with " <pre> #!/bin/bash # redirect stdout and stderr to logfile rm /home/hivetool/hivetool.log exec >>/home/hivetool/hivetool.log 2>&1 HOST=`hostname` DATE=`date +"%Y/%m/%d %H:%...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
#!/bin/bash

# redirect stdout and stderr to logfile
rm /home/hivetool/hivetool.log
exec >>/home/hivetool/hivetool.log 2>&1

HOST=`hostname`

DATE=`date +"%Y/%m/%d %H:%M:%S"`

#
# Adam Equipment CPWplus scale
# send the Gross command
# and read it with a 3 second timeout
#SCALE=0
#echo "G\r\n" > /dev/ttyS0
#read -t 3 SCALE < /dev/ttyS0 

while [[ ! $SCALE ]]
do
    echo -e -n "N\r\n" > /dev/ttyUSB0
    read -t 3 SCALE < /dev/ttyUSB0
    SCALE=`echo $SCALE | gawk --posix '/^\+ [0-9]{1,3}\.[0-9] lb$/'`
done

echo "scale: $SCALE\n"

                                                                                                                                                                                    
DATA_GOOD=0
COUNTER=1
while [[  $COUNTER -lt 20 && $DATA_GOOD -eq 0 ]]; do
         DATE2=`date +"%Y/%m/%d %H:%M:%S"`
         TEMPerHUM=`/usr/local/bin/tempered /dev/hidraw1`
         echo -ne "$DATE2 $COUNTER $? $TEMPerHUM \n" >> /home/hivetool/tempered.log
         if [[ -n $TEMPerHUM ]]
         then
           HUMIDITY=`echo $TEMPerHUM | grep  -o "[0-9]*\.[0-9]\%" | grep -o "[0-9]*\.[0-9]"`
           TEMP=`echo $TEMPerHUM | grep  -o "temperature \-*[0-9]*\.[0-9]" | grep -o "\-*[0-9]*\.[0-9]"`
           if [[ $HUMIDITY ]]
           then
            DATA_GOOD=1
           fi
         fi
         let "COUNTER += 1"
         sleep 1
   done
echo $COUNTER $TEMP $HUMIDITY

if [[ $COUNTER -gt 19 ]]
then
  echo "$DATE2 ERROR reading /dev/hidraw1" >> /home/hivetool/error.log
fi

if test $COUNTER -gt 2
then
  echo "$DATE WARNING reading /dev/hidraw1: retried $COUNTER" >> /home/hivetool/error.log
fi

TEMP=`echo "scale=1; ($TEMP-1)" | bc`
TEMPF=`echo "scale=1; (($TEMP*9)/5)+32" | bc`

# 
# get the local weather

curl --retry 5 -s http://api.wunderground.com/weatherstation/WXCurrentObXML.asp?ID=KGADILLA1 > /tmp/wx.xml
temp_f=`grep temp_f /tmp/wx.xml | grep  -o "[0-9]*\.[0-9]*"`
temp_c=`grep temp_c /tmp/wx.xml | grep  -o "[0-9]*\.[0-9]*"`
wind_dir=`grep wind_dir /tmp/wx.xml | grep -o "[A-Z]*"`
wind_mph=`grep wind_mph /tmp/wx.xml | grep  -o "[0-9]*\.[0-9]*"`
wind_gust_mph=`grep wind_gust_mph /tmp/wx.xml |  grep  -o "[0-9]*\.[0-9]*"`
pressure_mb=`grep pressure_mb /tmp/wx.xml |  grep  -o "[0-9]*\.[0-9]*"`
dewpoint_f=`grep dewpoint_f /tmp/wx.xml |  grep  -o "[0-9]*\.[0-9]*"`
#solar_radiation=`grep solar_radiation /tmp/wx.xml |  grep  -o "[0-9]*"`
precip_1hr_in=`grep precip_1hr_in /tmp/wx.xml |  grep  -o "[0-9]*\.[0-9]*"`
precip_today_in=`grep precip_today_in /tmp/wx.xml |  grep  -o "[0-9]*\.[0-9]*"`


xml_temp_f=`grep temp_f /tmp/wx.xml`
xml_temp_c=`grep temp_c /tmp/wx.xml`
xml_relative_humidity=`grep relative_humidity /tmp/wx.xml`
xml_wind_dir=`grep wind_dir /tmp/wx.xml`
xml_wind_mph=`grep wind_mph /tmp/wx.xml`
xml_wind_gust_mph=`grep wind_gust_mph /tmp/wx.xml`
xml_pressure_mb=`grep pressure_mb /tmp/wx.xml`
xml_dewpoint_f=`grep dewpoint_f /tmp/wx.xml`
#solar_radiation=`grep solar_radiation /tmp/wx.xml`
xml_precip_1hr_in=`grep precip_1hr_in /tmp/wx.xml`
xml_precip_today_in=`grep precip_today_in /tmp/wx.xml`

AMBIENT=$temp_c

echo "<hive_data>" > /tmp/hive.xml
source /home/hivetool/xml.sh >> /tmp/hive.xml
cat /tmp/wx.xml|grep -v "xml" >> /tmp/hive.xml
echo "</hive_data>" >> /tmp/hive.xml
 
# Write everything to the log file
echo -ne "\n"$DATE $SCALE $TEMP $AMBIENT $temp_f $wind_dir $wind_mph $wind_gust_mph $dewpoint_f $relative_humidity $pressure_mb $solar_radiation $WX_EVAPOTRANSPIRATION $WX_VAPOR_PRESSURE $precip_today_in>> /home/hivetool/hive.log

#run the graphing program to create index.html and hive_graph.gif
/var/www/htdocs/graph_hive.pl

#send the data to hivetool
curl --retry 5 -k -u user:password -X POST --data-binary @/tmp/hive.xml https://hivetool.org/private/test_xml4.pl  -H 'Accept: application/xml' -H 'Content-Type: application/xml'