Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- # open2300 weather_log.log logfile to wetterpool converter
- # written by oliver deisenroth 09.02.2009
- # v0.9 edited 11.03.2009
- CWD=/var/www # current working directory
- LOGFILE=$CWD/weather_log.log
- rm $CWD/wp_werte.txt
- touch $CWD/wp_werte.txt
- ## TE soll f�r TEMP stehen
- # Datum auslesen
- TEDATE=$(awk '{print $2}' $LOGFILE |tail -n1)
- # Uhrzeit direkt ohne Minuten auslesen
- TETIME=$(awk '{print $3}' $LOGFILE |tail -n1)
- # Aussentemperatur auslesen
- TEOUTTEMP=$(awk '{print $5}' $LOGFILE |tail -n1)
- # Aussenfeuchte auslesen
- TEOUTHUMIDITY=$(awk '{print $8}' $LOGFILE |tail -n1)
- # Windgeschwindigkeit auslesen
- TEWINDSPEED=$(awk '{print $9}' $LOGFILE |tail -n1)
- WFACTOR=3.6 ## m/s -> km/h wandeln
- TEMP=$(echo "scale=5 ; $TEWINDSPEED*$WFACTOR" | bc)
- TEWINDSPEED=$TEMP
- # Windrichtung auslesen
- TEWINDDIR=$(awk '{print $10}' $LOGFILE |tail -n1|cut -b 1-3)
- TEWINDDIR2=$(awk '{print $11}' $LOGFILE |tail -n1)
- # Regen in einer Stunde auslesen
- TERAIN1H=$(awk '{print $13}' $LOGFILE |tail -n1)
- # Regen in 24 Stunden auslesen
- TERAIN24H=$(awk '{print $14}' $LOGFILE |tail -n1)
- # Luftdruck auslesen
- TEPRESSURE=$(awk '{print $16}' $LOGFILE |tail -n1)
- TEPRESSURE2=$(awk '{print $16}' $LOGFILE |tail -n1|cut -b 1-4)
- ## Daten fuer wp_weather.txt aufbereiten
- # Datum verarbeiten
- TEDATEDAY=$(echo $TEDATE|cut -b 10-11)
- TEDATEMONTH=$(echo $TEDATE|cut -b 6-8)
- TEDATEYEAR=$(echo $TEDATE|cut -b 1-4)
- # Monatsangabe in 2 stellige Zahl umwandeln
- if [ "$TEDATEMONTH" = "Jan" ]; then
- TEDATEMONTH="01"
- fi
- if [ "$TEDATEMONTH" = "Feb" ]; then
- TEDATEMONTH="02"
- fi
- if [ "$TEDATEMONTH" = "Mar" ]; then
- TEDATEMONTH="03"
- fi
- if [ "$TEDATEMONTH" = "Apr" ]; then
- TEDATEMONTH="04"
- fi
- if [ "$TEDATEMONTH" = "May" ]; then
- TEDATEMONTH="05"
- fi
- if [ "$TEDATEMONTH" = "Jun" ]; then
- TEDATEMONTH="06"
- fi
- if [ "$TEDATEMONTH" = "Jul" ]; then
- TEDATEMONTH="07"
- fi
- if [ "$TEDATEMONTH" = "Aug" ]; then
- TEDATEMONTH="08"
- fi
- if [ "$TEDATEMONTH" = "Sep" ]; then
- TEDATEMONTH="09"
- fi
- if [ "$TEDATEMONTH" = "Oct" ]; then
- TEDATEMONTH="10"
- fi
- if [ "$TEDATEMONTH" = "Nov" ]; then
- TEDATEMONTH="11"
- fi
- if [ "$TEDATEMONTH" = "Dec" ]; then
- TEDATEMONTH="12"
- fi
- # ENDLICH - der Monat im Zahlenformat - kein Buchstabensalat mehr
- # NEUES DATUM
- NEWDATE=$(echo "$TEDATEDAY.$TEDATEMONTH.$TEDATEYEAR")
- # Zeit aufbereiten - nur Zeile 1 bis 5 - ohne Sekunden
- TIME=$(echo $TETIME |cut -b 1-5)
- #
- ## Windgeschwindigkeit - Durchschnitt 10 Minuten - bei 2 Minuten Intervall
- rm wspeeds.txt
- WSPEEDS=$(awk '{print $9}' $LOGFILE |tail -n5)
- echo $WSPEEDS > wspeeds.txt
- WS1=$(awk '{print $1}' wspeeds.txt)
- WS2=$(awk '{print $2}' wspeeds.txt)
- WS3=$(awk '{print $3}' wspeeds.txt)
- WS4=$(awk '{print $4}' wspeeds.txt)
- WS5=$(awk '{print $5}' wspeeds.txt)
- SUM=$(echo "scale=5 ; $WS1+$WS2+$WS3+$WS4+$WS5" | bc) # summe in m/s
- WFACTOR=3.6 ## m/s -> km/h wandeln
- # Teiler fuer den Winddurchschnitt ermitteln
- if [ ${WS1/.*} -gt 0 ]; then
- TEILER=1
- else
- TEILER=0
- fi
- if [ ${WS2/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS3/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS4/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS5/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- # Der Teiler darf nicht null werden
- if [ ${TEILER} -gt 0 ]; then
- echo "Teiler groesser 0"
- else
- TEILER=1
- fi
- TEMP=$(echo "scale=5 ; $SUM*$WFACTOR" | bc)
- SUM=$TEMP
- WSPEEDAVG10=$(echo "($SUM)/($TEILER)" |bc)
- echo $WSPEEDAVG10 > wspeedavg.txt
- ## Windrichtung - Durchschnitt 10 Minuten - bei 2 Minuten Intervall
- rm wdirs.txt
- WDIRS=$(awk '{print $10}' $LOGFILE |tail -n5|cut -b 1-3)
- echo $WDIRS > wdirs.txt
- WDIR1=$(awk '{print $1}' wdirs.txt)
- WDIR2=$(awk '{print $2}' wdirs.txt)
- WDIR3=$(awk '{print $3}' wdirs.txt)
- WDIR4=$(awk '{print $4}' wdirs.txt)
- WDIR5=$(awk '{print $5}' wdirs.txt)
- SUM=$(echo "scale=5 ; $WDIR1+$WDIR2+$WDIR3+$WDIR4+$WDIR5" | bc)
- WDIRAVG10=$(echo "$SUM/5" |bc)
- echo $WDIRAVG10 > wdiravg.txt
- # wp_werte.txt schreiben
- echo "%alwaysseppoint_on%" >> $CWD/wp_werte.txt;
- echo "(TCUR_ $TEOUTTEMP)" >> $CWD/wp_werte.txt;
- echo "(TMIN_ - -)" >> $CWD/wp_werte.txt;
- echo "(TMAX_ - -)" >> $CWD/wp_werte.txt;
- echo "(TCH1_ - -)" >> $CWD/wp_werte.txt;
- echo "(TDM1_ - -)" >> $CWD/wp_werte.txt;
- echo "(T5MIN - -)" >> $CWD/wp_werte.txt;
- echo "(TCM30 - -)" >> $CWD/wp_werte.txt;
- echo "(RHCUR $TEOUTHUMIDITY)" >> $CWD/wp_werte.txt
- echo "(RRH2_ - -)" >> $CWD/wp_werte.txt;
- echo "(RRH6_ - -)" >> $CWD/wp_werte.txt;
- echo "(RRH12 - -)" >> $CWD/wp_werte.txt;
- echo "(RRD1_ - -)" >> $CWD/wp_werte.txt;
- echo "(RRM1_ - -)" >> $CWD/wp_werte.txt;
- echo "(RRY1_ - -)" >> $CWD/wp_werte.txt;
- echo "(SUND1 - -)" >> $CWD/wp_werte.txt;
- echo "(SUNH1 - -)" >> $CWD/wp_werte.txt;
- echo "(WCUR_ $TEWINDSPEED)" >> $CWD/wp_werte.txt
- echo "(WCURA $WSPEEDAVG10)" >> $CWD/wp_werte.txt;
- echo "(WDIR_ $TEWINDDIR)" >> $CWD/wp_werte.txt
- echo "(WDIRA $WDIRAVG10)" >> $CWD/wp_werte.txt;
- echo "(WMX__ - -)" >> $CWD/wp_werte.txt;
- echo "(RRH1_ $TERAIN1H)" >> $CWD/wp_werte.txt
- echo "(RRH24 $TERAIN24H)" >> $CWD/wp_werte.txt
- echo "(PCUR_ $TEPRESSURE)" >> $CWD/wp_werte.txt
- echo "(PCH1_ - -)" >> $CWD/wp_werte.txt;
- echo "(PCH3_ - -)" >> $CWD/wp_werte.txt;
- echo "(CLCNB - -)" >> $CWD/wp_werte.txt;
- echo "(HGTNN 217)" >> $CWD/wp_werte.txt;
- echo "(DAONI - -)" >> $CWD/wp_werte.txt;
- echo "(SNHGT - -)" >> $CWD/wp_werte.txt;
- echo "(SNHTD - -)" >> $CWD/wp_werte.txt;
- echo "(SNL__ - -)" >> $CWD/wp_werte.txt;
- echo "(LXCUR - -)" >> $CWD/wp_werte.txt;
- echo "(LXMAX - -)" >> $CWD/wp_werte.txt;
- echo "(TIME_ $TIME)" >> $CWD/wp_werte.txt
- echo "(DATE_ $NEWDATE)" >> $CWD/wp_werte.txt
- echo "(PLGNV 1.2)" >> $CWD/wp_werte.txt
- # weather.txt fuers php-gd banner erstellen schreiben
- rm $CWD/weather.txt
- touch $CWD/weather.txt
- echo "$TEOUTTEMP" >> $CWD/weather.txt;
- echo "$TEOUTHUMIDITY" >> $CWD/weather.txt;
- echo "$TEPRESSURE2" >> $CWD/weather.txt;
- echo "$TEWINDSPEED" >> $CWD/weather.txt;
- echo "$TEWINDDIR2" >> $CWD/weather.txt;
- echo "$TERAIN1H" >> $CWD/weather.txt;
- echo "$TEDATEDAY" >> $CWD/weather.txt;
- echo "$TEDATEMONTH" >> $CWD/weather.txt;
- echo "$TEDATEYEAR" >> $CWD/weather.txt;
- echo $TIME >> $CWD/weather.txt;
- # kontrolle auf fehlfunktion der open2300 software bzw. der sensoren
- TEOUTINT=${TEOUTTEMP/.*}
- if [ $TEOUTINT -gt 65 ]; then
- rm $CWD/wp_werte.txt
- fi
Add Comment
Please, Sign In to add comment