Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /bin/bash
- # open2300 weather_log.log logfile to wetterpool converter
- # author Oliver Deisenroth
- # v0.96
- ## WENN MAN WeatherOffice NICHT verwenden sollte, bitte die entsprechenden Stellen wie unten im WETTERPOOL Bereich angegeben ABAENDERN!
- ## BITTE DIE RICHTIGEN PFADE ANGEBEN
- # Aktuelles Arbeitsverzeichnis
- CWD=/var/www
- # Weatheroffice vorhanden - yes - no
- WEATHEROFFICE=yes
- # Wetterpool Rohdaten
- WETTERPOOL=wp_werte.txt
- # Homepagewetter Rohdaten
- HOMEPAGE=wetterdaten.txt
- # log2300 Logfile
- LOGFILE=${CWD}/weather_log.log
- ## BITTE STATIONSHOEHE EINTRAGEN in Metern
- STATIONSHOEHE=217
- ## BITTE DIE PFADE UEBERPRUEFEN
- # Rechte - chmod 775 auf den Ordner plugins und php-Scripte setzen
- FHPACHANGE60=${CWD}/weatheroffice/plugins/hpa_aenderung60.txt
- FHPACHANGE180=${CWD}/weatheroffice/plugins/hpa_aenderung180.txt
- FHPAMIN=${CWD}/weatheroffice/plugins/hpa_min.txt
- FHPAMAX=${CWD}/weatheroffice/plugins/hpa_max.txt
- FTEMPCHANGE60=${CWD}/weatheroffice/plugins/temp_aenderung60.txt
- FTEMPCHANGE30=${CWD}/weatheroffice/plugins/temp_aenderung30.txt
- FTEMPMIN=${CWD}/weatheroffice/plugins/temp_min.txt
- FTEMPMAX=${CWD}/weatheroffice/plugins/temp_max.txt
- FMAXWIND=${CWD}/weatheroffice/plugins/wind_maxheute.txt
- FRAINTODAY=${CWD}/weatheroffice/plugins/regenmenge_heute.txt
- FTENDENCY=${CWD}/weatheroffice/plugins/tendenz.txt
- FSUNRISE=${CWD}/weatheroffice/plugins/sonnenaufgang.txt
- FSUNDOWN=${CWD}/weatheroffice/plugins/sonnenuntergang.txt
- FSNOW=${CWD}/weatheroffice/plugins/schneefallgrenze.txt
- # clean
- rm ${CWD}/${WETTERPOOL}
- touch ${CWD}/${WETTERPOOL}
- ## TE - hier Kuerzel fuer temporaer
- # 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 - fuer spaeter
- TEMP=$(echo "scale=5 ; $TEWINDSPEED*$WFACTOR" | bc)
- TEWINDSPEED=$TEMP
- # Windrichtung auslesen
- TEWINDDIR=$(awk '{print $10}' ${LOGFILE} |tail -n1|cut -b 1-3)
- TEWINDDIRHP=$(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)
- TEPRESSUREHP=$(awk '{print $16}' ${LOGFILE} |tail -n1|cut -b 1-4)
- TEDIFFHPA60=$(awk '{print $1}' ${FHPACHANGE60} |tail -n1)
- TEDIFFHPA180=$(awk '{print $1}' ${FHPACHANGE180} |tail -n1)
- TEHPAMIN=$(awk '{print $1}' ${FHPAMIN} |tail -n1)
- TEHPAMAX=$(awk '{print $1}' ${FHPAMAX} |tail -n1)
- # Temperaturen auslesen
- TEDIFFTEMP60=$(awk '{print $1}' ${FTEMPCHANGE60} |tail -n1)
- TEDIFFTEMP30=$(awk '{print $1}' ${FTEMPCHANGE30} |tail -n1)
- TEMAXTEMP=$(awk '{print $1}' ${FTEMPMAX} |tail -n1)
- TEMINTEMP=$(awk '{print $1}' ${FTEMPMIN} |tail -n1)
- # Regenmenge von heute
- TERAINTODAY=$(awk '{print $1}' ${FRAINTODAY} |tail -n1)
- # Staerkster Wind von heute
- TEMAXWIND=$(awk '{print $1}' ${FMAXWIND} |tail -n1)
- # Sonnenaufgangszeit
- TESUNRISE=$(awk '{print $1}' ${FSUNRISE} |tail -n1)
- # Sonnenuntergangszeit
- TESUNDOWN=$(awk '{print $1}' ${FSUNDOWN} |tail -n1)
- TESNOW=$(awk '{print $1}' ${FSNOW} |tail -n1)
- TETENDENCY=$(awk '{print $1}' ${FTENDENCY} |tail -n1)
- ## Daten fuer wp_${HOMEPAGE} 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
- case ${TEDATEMONTH} in
- "Jan" )
- TEDATEMONTH="01"
- ;;
- "Feb" )
- TEDATEMONTH="02"
- ;;
- "Mar" )
- TEDATEMONTH="03"
- ;;
- "Apr" )
- TEDATEMONTH="04"
- ;;
- "May" )
- TEDATEMONTH="05"
- ;;
- "Jun" )
- TEDATEMONTH="06"
- ;;
- "Jul" )
- TEDATEMONTH="07"
- ;;
- "Aug" )
- TEDATEMONTH="08"
- ;;
- "Sep" )
- TEDATEMONTH="09"
- ;;
- "Oct" )
- TEDATEMONTH="10"
- ;;
- "Nov" )
- TEDATEMONTH="11"
- ;;
- "Dec" )
- TEDATEMONTH="12"
- ;;
- esac
- # ENDLICH - der Monat im Zahlenformat - kein Buchstabensalat mehr
- # NEUES DATUM FUER WETTERPOOL
- NEWDATE=$(echo "${TEDATEDAY}.${TEDATEMONTH}.${TEDATEYEAR}")
- # Zeit - nur Zeile 1 bis 5 ausgeben - ohne Sekunden
- TIME=$(echo ${TETIME} |cut -b 1-5)
- #
- ## Windgeschwindigkeit - Durchschnitt von 10 Minuten - 1 Minute Intervall
- rm ${CWD}/wspeeds.txt
- WSPEEDS=$(awk '{print $9}' ${LOGFILE} |tail -n10)
- echo ${WSPEEDS} > ${CWD}/wspeeds.txt
- WS1=$(awk '{print $1}' ${CWD}/wspeeds.txt)
- WS2=$(awk '{print $2}' ${CWD}/wspeeds.txt)
- WS3=$(awk '{print $3}' ${CWD}/wspeeds.txt)
- WS4=$(awk '{print $4}' ${CWD}/wspeeds.txt)
- WS5=$(awk '{print $5}' ${CWD}/wspeeds.txt)
- WS6=$(awk '{print $6}' ${CWD}/wspeeds.txt)
- WS7=$(awk '{print $7}' ${CWD}/wspeeds.txt)
- WS8=$(awk '{print $8}' ${CWD}/wspeeds.txt)
- WS9=$(awk '{print $9}' ${CWD}/wspeeds.txt)
- WS10=$(awk '{print $10}' ${CWD}/wspeeds.txt)
- SUM=$(echo "scale=5 ; $WS1+${WS2}+${WS3}+${WS4}+${WS5}+${WS6}+${WS7}+${WS8}+${WS9}+${WS10}" | bc) # Summe in m/s
- WFACTOR=3.6 ## m/s -> km/h wandeln
- if [ ${SUM} = 0 ]; then
- # Wenn kein Wind da ist, brauchen wir erst gar nicht zu rechnen
- WSPEEDAVG10=0
- else
- # Wenn doch Wind da ist... 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
- if [ ${WS6/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS7/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS8/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS9/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- if [ ${WS10/.*} -gt 0 ]; then
- TEILER=$((TEILER + 1))
- fi
- # Der Teiler darf nicht Null werden
- if [ ${TEILER} -gt 0 ]; then
- echo "Teiler ist schon groesser 0"
- else
- TEILER=1
- fi
- TEMP=$(echo "scale=5 ; $SUM*$WFACTOR" | bc)
- SUM=${TEMP}
- WSPEEDAVG10=$(echo "($SUM)/($TEILER)" |bc)
- fi
- ## Windrichtung - Durchschnitt 10 Minuten - bei 1 Minute Intervall
- rm ${CWD}/wdirs.txt
- WDIRS=$(awk '{print $10}' ${LOGFILE} |tail -n10|cut -b 1-3)
- echo ${WDIRS} > ${CWD}/wdirs.txt
- WDIR1=$(awk '{print $1}' ${CWD}/wdirs.txt)
- WDIR2=$(awk '{print $2}' ${CWD}/wdirs.txt)
- WDIR3=$(awk '{print $3}' ${CWD}/wdirs.txt)
- WDIR4=$(awk '{print $4}' ${CWD}/wdirs.txt)
- WDIR5=$(awk '{print $5}' ${CWD}/wdirs.txt)
- WDIR6=$(awk '{print $6}' ${CWD}/wdirs.txt)
- WDIR7=$(awk '{print $7}' ${CWD}/wdirs.txt)
- WDIR8=$(awk '{print $8}' ${CWD}/wdirs.txt)
- WDIR9=$(awk '{print $9}' ${CWD}/wdirs.txt)
- WDIR10=$(awk '{print $10}' ${CWD}/wdirs.txt)
- SUM=$(echo "scale=5 ; ${WDIR1}+${WDIR2}+${WDIR3}+${WDIR4}+${WDIR5}+${WDIR6}+${WDIR7}+${WDIR}8+${WDIR9}+${WDIR10}" | bc)
- if [ ${SUM} = 0 ]; then # Wenn kein Wind da ist, brauchen wir erst gar nicht zu rechnen
- WDIRAVG10=0
- else
- WDIRAVG10=$(echo "${SUM}/10" |bc) # ansonsten doch
- fi
- # Wetterpool schreiben
- echo "%alwaysseppoint_on%" >> ${CWD}/${WETTERPOOL};
- echo "(TCUR_ ${TEOUTTEMP})" >> ${CWD}/${WETTERPOOL};
- # Wenn WeatherOffice vorhanden ist
- if [ ${WEATHEROFFICE} = yes ]; then
- echo "(TMIN_ ${TEMINTEMP})" >> ${CWD}/${WETTERPOOL};
- echo "(TMAX_ ${TEMAXTEMP})" >> ${CWD}/${WETTERPOOL};
- echo "(TCH1_ ${TEDIFFTEMP60})" >> ${CWD}/${WETTERPOOL};
- echo "(TCM30 ${TEDIFFTEMP30})" >> ${CWD}/${WETTERPOOL};
- echo "(RRD1_ ${TERAINTODAY})" >> ${CWD}/${WETTERPOOL};
- echo "(WMX__ ${TEMAXWIND})" >> ${CWD}/${WETTERPOOL};
- echo "(PCH1_ ${TEDIFFHPA60})" >> ${CWD}/${WETTERPOOL};
- echo "(PCH3_ ${TEDIFFHPA180})" >> ${CWD}/${WETTERPOOL};
- echo "(SNL__ ${TESNOW})" >> ${CWD}/${WETTERPOOL};
- else
- # Wenn WeatherOffice nicht vorhanden ist
- echo "(TMIN_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(TMAX_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(TCH1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(TCM30 - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRD1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(WMX__ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(PCH1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(PCH3_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(SNL__ - -)" >> ${CWD}/${WETTERPOOL};
- fi
- echo "(HGTNN ${STATIONSHOEHE})" >> ${CWD}/${WETTERPOOL};
- echo "(WCUR_ ${TEWINDSPEED})" >> ${CWD}/${WETTERPOOL}
- echo "(WCURA ${WSPEEDAVG10})" >> ${CWD}/${WETTERPOOL};
- echo "(WDIR_ ${TEWINDDIR})" >> ${CWD}/${WETTERPOOL}
- echo "(WDIRA ${WDIRAVG10})" >> ${CWD}/${WETTERPOOL};
- echo "(RRH1_ ${TERAIN1H})" >> ${CWD}/${WETTERPOOL}
- echo "(RRH24 ${TERAIN24H})" >> ${CWD}/${WETTERPOOL}
- echo "(PCUR_ ${TEPRESSURE})" >> ${CWD}/${WETTERPOOL}
- echo "(RHCUR ${TEOUTHUMIDITY})" >> ${CWD}/${WETTERPOOL}
- echo "(TDM1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(T5MIN - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRH2_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRH6_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRH12 - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRM1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(RRY1_ - -)" >> ${CWD}/${WETTERPOOL};
- echo "(SUND1 - -)" >> ${CWD}/${WETTERPOOL};
- echo "(SUNH1 - -)" >> ${CWD}/${WETTERPOOL};
- echo "(CLCNB - -)" >> ${CWD}/${WETTERPOOL};
- echo "(DAONI - -)" >> ${CWD}/${WETTERPOOL};
- echo "(SNHGT - -)" >> ${CWD}/${WETTERPOOL};
- echo "(SNHTD - -)" >> ${CWD}/${WETTERPOOL};
- echo "(LXCUR - -)" >> ${CWD}/${WETTERPOOL};
- echo "(LXMAX - -)" >> ${CWD}/${WETTERPOOL};
- echo "(TIME_ ${TIME})" >> ${CWD}/${WETTERPOOL}
- echo "(DATE_ ${NEWDATE})" >> ${CWD}/${WETTERPOOL}
- echo "(PLGNV 1.2)" >> ${CWD}/${WETTERPOOL}
- # ${HOMEPAGE} fuers php-gd banner erstellen schreiben
- rm ${CWD}/${HOMEPAGE}
- touch ${CWD}/${HOMEPAGE}
- echo "${TEOUTTEMP}" >> ${CWD}/${HOMEPAGE};
- echo "${TEOUTHUMIDITY}" >> ${CWD}/${HOMEPAGE};
- echo "${TEPRESSUREHP}" >> ${CWD}/${HOMEPAGE};
- echo "${TEWINDSPEED}" >> ${CWD}/${HOMEPAGE};
- echo "${TEWINDDIRHP}" >> ${CWD}/${HOMEPAGE};
- echo "${TERAIN1H}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDATEDAY}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDATEMONTH}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDATEYEAR}" >> ${CWD}/${HOMEPAGE};
- echo "${TIME}" >> ${CWD}/${HOMEPAGE};
- echo "${TETENDENCY}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDIFFHPA60}" >> ${CWD}/${HOMEPAGE};
- echo "${TERAIN24H}" >> ${CWD}/${HOMEPAGE};
- echo "${TERAIN1H}" >> ${CWD}/${HOMEPAGE};
- echo "${TERAINTODAY}" >> ${CWD}/${HOMEPAGE};
- echo "${WSPEEDAVG10}" >> ${CWD}/${HOMEPAGE};
- echo "${TEMAXWIND}" >> ${CWD}/${HOMEPAGE};
- echo "${WDIRAVG10}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDIFFTEMP60}" >> ${CWD}/${HOMEPAGE};
- echo "${TESUNRISE}" >> ${CWD}/${HOMEPAGE};
- echo "${TESUNDOWN}" >> ${CWD}/${HOMEPAGE};
- echo "${TESNOW}" >> ${CWD}/${HOMEPAGE};
- echo "${TEMINTEMP}" >> ${CWD}/${HOMEPAGE};
- echo "${TEMAXTEMP}" >> ${CWD}/${HOMEPAGE};
- echo "${STATIONSHOEHE}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDIFFTEMP30}" >> ${CWD}/${HOMEPAGE};
- echo "${TEDIFFHPA180}" >> ${CWD}/${HOMEPAGE};
- echo "${TEHPAMIN}" >> ${CWD}/${HOMEPAGE};
- echo "${TEHPAMAX}" >> ${CWD}/${HOMEPAGE};
- # Kontrolle auf Fehlfunktion der open2300 Software bzw. der Sensoren
- TEOUTINT=${TEOUTTEMP/.*}
- if [ ${TEOUTINT} -gt 65 ]; then
- rm ${CWD}/${WETTERPOOL}
- fi
Add Comment
Please, Sign In to add comment