Guest User

Oliver Deisenroth

a guest
Mar 11th, 2009
264
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 6.23 KB | None | 0 0
  1. #! /bin/bash
  2. # open2300 weather_log.log logfile to wetterpool converter
  3. # written by oliver deisenroth 09.02.2009
  4. # v0.9 edited 11.03.2009
  5.  
  6. CWD=/var/www # current working directory
  7. LOGFILE=$CWD/weather_log.log
  8.  
  9. rm $CWD/wp_werte.txt
  10. touch $CWD/wp_werte.txt
  11.  
  12. ## TE soll f�r TEMP stehen
  13.  
  14. # Datum auslesen
  15. TEDATE=$(awk '{print $2}' $LOGFILE |tail -n1)
  16. # Uhrzeit direkt ohne Minuten auslesen
  17. TETIME=$(awk '{print $3}' $LOGFILE |tail -n1)
  18. # Aussentemperatur auslesen
  19. TEOUTTEMP=$(awk '{print $5}' $LOGFILE |tail -n1)
  20. # Aussenfeuchte auslesen
  21. TEOUTHUMIDITY=$(awk '{print $8}' $LOGFILE |tail -n1)
  22. # Windgeschwindigkeit auslesen
  23. TEWINDSPEED=$(awk '{print $9}' $LOGFILE |tail -n1)
  24. WFACTOR=3.6 ## m/s -> km/h wandeln
  25. TEMP=$(echo "scale=5 ; $TEWINDSPEED*$WFACTOR" | bc)
  26. TEWINDSPEED=$TEMP
  27. # Windrichtung auslesen
  28. TEWINDDIR=$(awk '{print $10}' $LOGFILE |tail -n1|cut -b 1-3)
  29. TEWINDDIR2=$(awk '{print $11}' $LOGFILE |tail -n1)
  30. # Regen in einer Stunde auslesen
  31. TERAIN1H=$(awk '{print $13}' $LOGFILE |tail -n1)
  32. # Regen in 24 Stunden auslesen
  33. TERAIN24H=$(awk '{print $14}' $LOGFILE |tail -n1)
  34. # Luftdruck auslesen
  35. TEPRESSURE=$(awk '{print $16}' $LOGFILE |tail -n1)
  36. TEPRESSURE2=$(awk '{print $16}' $LOGFILE |tail -n1|cut -b 1-4)
  37.  
  38. ## Daten fuer wp_weather.txt aufbereiten
  39.  
  40. # Datum verarbeiten
  41. TEDATEDAY=$(echo $TEDATE|cut -b 10-11)
  42. TEDATEMONTH=$(echo $TEDATE|cut -b 6-8)
  43. TEDATEYEAR=$(echo $TEDATE|cut -b 1-4)
  44.  
  45. # Monatsangabe in 2 stellige Zahl umwandeln
  46. if [ "$TEDATEMONTH" = "Jan" ]; then
  47. TEDATEMONTH="01"
  48. fi
  49.  
  50. if [ "$TEDATEMONTH" = "Feb" ]; then
  51. TEDATEMONTH="02"
  52. fi
  53.  
  54. if [ "$TEDATEMONTH" = "Mar" ]; then
  55. TEDATEMONTH="03"
  56. fi
  57.  
  58. if [ "$TEDATEMONTH" = "Apr" ]; then
  59. TEDATEMONTH="04"
  60. fi
  61.  
  62. if [ "$TEDATEMONTH" = "May" ]; then
  63. TEDATEMONTH="05"
  64. fi
  65.  
  66. if [ "$TEDATEMONTH" = "Jun" ]; then
  67. TEDATEMONTH="06"
  68. fi
  69.  
  70. if [ "$TEDATEMONTH" = "Jul" ]; then
  71. TEDATEMONTH="07"
  72. fi
  73.  
  74. if [ "$TEDATEMONTH" = "Aug" ]; then
  75. TEDATEMONTH="08"
  76. fi
  77.  
  78. if [ "$TEDATEMONTH" = "Sep" ]; then
  79. TEDATEMONTH="09"
  80. fi
  81.  
  82. if [ "$TEDATEMONTH" = "Oct" ]; then
  83. TEDATEMONTH="10"
  84. fi
  85.  
  86. if [ "$TEDATEMONTH" = "Nov" ]; then
  87. TEDATEMONTH="11"
  88. fi
  89.  
  90. if [ "$TEDATEMONTH" = "Dec" ]; then
  91. TEDATEMONTH="12"
  92. fi
  93.  
  94. # ENDLICH - der Monat im Zahlenformat - kein Buchstabensalat mehr
  95. # NEUES DATUM
  96. NEWDATE=$(echo "$TEDATEDAY.$TEDATEMONTH.$TEDATEYEAR")
  97.  
  98. # Zeit aufbereiten - nur Zeile 1 bis 5 - ohne Sekunden
  99. TIME=$(echo $TETIME |cut -b 1-5)
  100. #
  101.  
  102. ## Windgeschwindigkeit - Durchschnitt 10 Minuten - bei 2 Minuten Intervall
  103. rm wspeeds.txt
  104. WSPEEDS=$(awk '{print $9}' $LOGFILE |tail -n5)
  105. echo $WSPEEDS > wspeeds.txt
  106. WS1=$(awk '{print $1}' wspeeds.txt)
  107. WS2=$(awk '{print $2}' wspeeds.txt)
  108. WS3=$(awk '{print $3}' wspeeds.txt)
  109. WS4=$(awk '{print $4}' wspeeds.txt)
  110. WS5=$(awk '{print $5}' wspeeds.txt)
  111. SUM=$(echo "scale=5 ; $WS1+$WS2+$WS3+$WS4+$WS5" | bc) # summe in m/s
  112. WFACTOR=3.6 ## m/s -> km/h wandeln
  113.  
  114. # Teiler fuer den Winddurchschnitt ermitteln
  115.  
  116. if [ ${WS1/.*} -gt 0 ]; then
  117. TEILER=1
  118. else
  119. TEILER=0
  120. fi
  121.  
  122. if [ ${WS2/.*} -gt 0 ]; then
  123. TEILER=$((TEILER + 1))
  124. fi
  125.  
  126. if [ ${WS3/.*} -gt 0 ]; then
  127. TEILER=$((TEILER + 1))
  128. fi
  129.  
  130. if [ ${WS4/.*} -gt 0 ]; then
  131. TEILER=$((TEILER + 1))
  132. fi
  133.  
  134. if [ ${WS5/.*} -gt 0 ]; then
  135. TEILER=$((TEILER + 1))
  136. fi
  137.  
  138. # Der Teiler darf nicht null werden
  139. if [ ${TEILER} -gt 0 ]; then
  140. echo "Teiler groesser 0"
  141. else
  142. TEILER=1
  143. fi
  144.  
  145. TEMP=$(echo "scale=5 ; $SUM*$WFACTOR" | bc)
  146. SUM=$TEMP
  147. WSPEEDAVG10=$(echo "($SUM)/($TEILER)" |bc)
  148. echo $WSPEEDAVG10 > wspeedavg.txt
  149.  
  150. ## Windrichtung - Durchschnitt 10 Minuten - bei 2 Minuten Intervall
  151. rm wdirs.txt
  152. WDIRS=$(awk '{print $10}' $LOGFILE |tail -n5|cut -b 1-3)
  153. echo $WDIRS > wdirs.txt
  154. WDIR1=$(awk '{print $1}' wdirs.txt)
  155. WDIR2=$(awk '{print $2}' wdirs.txt)
  156. WDIR3=$(awk '{print $3}' wdirs.txt)
  157. WDIR4=$(awk '{print $4}' wdirs.txt)
  158. WDIR5=$(awk '{print $5}' wdirs.txt)
  159. SUM=$(echo "scale=5 ; $WDIR1+$WDIR2+$WDIR3+$WDIR4+$WDIR5" | bc)
  160. WDIRAVG10=$(echo "$SUM/5" |bc)
  161. echo $WDIRAVG10 > wdiravg.txt
  162.  
  163. # wp_werte.txt schreiben
  164.  
  165. echo "%alwaysseppoint_on%" >> $CWD/wp_werte.txt;
  166. echo "(TCUR_ $TEOUTTEMP)" >> $CWD/wp_werte.txt;
  167.  
  168. echo "(TMIN_ - -)" >> $CWD/wp_werte.txt;
  169. echo "(TMAX_ - -)" >> $CWD/wp_werte.txt;
  170. echo "(TCH1_ - -)" >> $CWD/wp_werte.txt;
  171. echo "(TDM1_ - -)" >> $CWD/wp_werte.txt;
  172. echo "(T5MIN - -)" >> $CWD/wp_werte.txt;
  173. echo "(TCM30 - -)" >> $CWD/wp_werte.txt;
  174.  
  175. echo "(RHCUR $TEOUTHUMIDITY)" >> $CWD/wp_werte.txt
  176.  
  177. echo "(RRH2_ - -)" >> $CWD/wp_werte.txt;
  178. echo "(RRH6_ - -)" >> $CWD/wp_werte.txt;
  179. echo "(RRH12 - -)" >> $CWD/wp_werte.txt;
  180. echo "(RRD1_ - -)" >> $CWD/wp_werte.txt;
  181. echo "(RRM1_ - -)" >> $CWD/wp_werte.txt;
  182. echo "(RRY1_ - -)" >> $CWD/wp_werte.txt;
  183.  
  184. echo "(SUND1 - -)" >> $CWD/wp_werte.txt;
  185. echo "(SUNH1 - -)" >> $CWD/wp_werte.txt;
  186.  
  187. echo "(WCUR_ $TEWINDSPEED)" >> $CWD/wp_werte.txt
  188.  
  189. echo "(WCURA $WSPEEDAVG10)" >> $CWD/wp_werte.txt;
  190.  
  191. echo "(WDIR_ $TEWINDDIR)" >> $CWD/wp_werte.txt
  192.  
  193. echo "(WDIRA $WDIRAVG10)" >> $CWD/wp_werte.txt;
  194.  
  195. echo "(WMX__ - -)" >> $CWD/wp_werte.txt;
  196.  
  197. echo "(RRH1_ $TERAIN1H)" >> $CWD/wp_werte.txt
  198. echo "(RRH24 $TERAIN24H)" >> $CWD/wp_werte.txt
  199. echo "(PCUR_ $TEPRESSURE)" >> $CWD/wp_werte.txt
  200.  
  201. echo "(PCH1_ - -)" >> $CWD/wp_werte.txt;
  202. echo "(PCH3_ - -)" >> $CWD/wp_werte.txt;
  203. echo "(CLCNB - -)" >> $CWD/wp_werte.txt;
  204.  
  205. echo "(HGTNN 217)" >> $CWD/wp_werte.txt;
  206. echo "(DAONI - -)" >> $CWD/wp_werte.txt;
  207. echo "(SNHGT - -)" >> $CWD/wp_werte.txt;
  208. echo "(SNHTD - -)" >> $CWD/wp_werte.txt;
  209. echo "(SNL__ - -)" >> $CWD/wp_werte.txt;
  210. echo "(LXCUR - -)" >> $CWD/wp_werte.txt;
  211. echo "(LXMAX - -)" >> $CWD/wp_werte.txt;
  212.  
  213. echo "(TIME_ $TIME)" >> $CWD/wp_werte.txt
  214. echo "(DATE_ $NEWDATE)" >> $CWD/wp_werte.txt
  215. echo "(PLGNV 1.2)" >> $CWD/wp_werte.txt
  216.  
  217. # weather.txt fuers php-gd banner erstellen schreiben
  218. rm $CWD/weather.txt
  219. touch $CWD/weather.txt
  220.  
  221. echo "$TEOUTTEMP" >> $CWD/weather.txt;
  222. echo "$TEOUTHUMIDITY" >> $CWD/weather.txt;
  223. echo "$TEPRESSURE2" >> $CWD/weather.txt;
  224. echo "$TEWINDSPEED" >> $CWD/weather.txt;
  225. echo "$TEWINDDIR2" >> $CWD/weather.txt;
  226. echo "$TERAIN1H" >> $CWD/weather.txt;
  227. echo "$TEDATEDAY" >> $CWD/weather.txt;
  228. echo "$TEDATEMONTH" >> $CWD/weather.txt;
  229. echo "$TEDATEYEAR" >> $CWD/weather.txt;
  230. echo $TIME >> $CWD/weather.txt;
  231.  
  232. # kontrolle auf fehlfunktion der open2300 software bzw. der sensoren
  233. TEOUTINT=${TEOUTTEMP/.*}
  234. if [ $TEOUTINT -gt 65 ]; then
  235. rm $CWD/wp_werte.txt
  236. fi
  237.  
Add Comment
Please, Sign In to add comment