Wem das reicht und wo es passt, warum nicht.
Differenz ist hier bei 3-4 Grad.
Zwecks Cron ...
Code: Alles auswählen
@reboot /var/bin/dwdwetter.sh
*/15 * * * * /var/bin/dwdwetter.sh
Wem das reicht und wo es passt, warum nicht.
Code: Alles auswählen
@reboot /var/bin/dwdwetter.sh
*/15 * * * * /var/bin/dwdwetter.sh
Code: Alles auswählen
#!/bin/sh
while true
STADT=
KEY=
do
WETTER_URL="https://api.openweathermap.org/data/2.5/weather?q="$STADT",de&appid=$KEY&units=metric&lang=de&mode=html"
TMP_FILE="/tmp/wetter.xml"
wget -q -O - "$WETTER_URL" > $TMP_FILE
# Temperatur
echo -n "Temperatur in $STADT : " > /tmp/infobar.txt
echo -n `cat $TMP_FILE | grep "Temperature" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> /tmp/infobar.txt
echo -n " " >> /tmp/infobar.txt
# Wind
# echo -n ", Wind: " >> /tmp/infobar.txt
echo -n `cat $TMP_FILE | grep "Wind" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> /tmp/infobar.txt
rm -f $TMP_FILE
sleep 900
rm /tmp/infobar.txt
done
exit 0
Code: Alles auswählen
#!/bin/sh
OPENWEATHERMAP=0
TMP_FILE="/tmp/wetter.xml"
ZIEL="/tmp/infobar.txt"
if [ "$OPENWEATHERMAP" == "1" ]; then
STADT="Berlin Tempelhof"
LAND="DE"
KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
WETTER_URL="http://api.openweathermap.org/data/2.5/weather?q="$STADT",$LAND&units=metric&lang=de&appid=$KEY&mode=html"
wget -q -O - "$WETTER_URL" > $TMP_FILE
# Temperatur
echo -n "$STADT aktuell: " > $ZIEL
echo -n `cat $TMP_FILE | grep " Temperature" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> $ZIEL
# Luftfeuchtigkeit
echo -n ", " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Humidity" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | sed "s/Humidity/Luftfeuchtigkeit/"` >> $ZIEL
# Wind
echo -n ", " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Wind" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | sed "s/Wind/Wind/"` >> $ZIEL
# Luftdruck
echo -n ", " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Pressure" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | sed "s/Pressure/Luftdruck/"` >> $ZIEL
else
WETTER_URL="https://www.dwd.de/DE/wetter/wetterundklima_vorort/berlin-brandenburg/berlin_tempelhof/_node.html"
wget -q -O - "$WETTER_URL" > $TMP_FILE
# Temperatur
echo -n "Berlin (Tempelhof) aktuell: " > $ZIEL
echo -n `cat $TMP_FILE | grep " Grad" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " °C" >> $ZIEL
# Luftfeuchtigkeit
echo -n ", Luftfeuchtigkeit: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Prozent" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " %" >> $ZIEL
# Wind
echo -n ", Wind: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Kilometer" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> $ZIEL
echo -n " km/h" >> $ZIEL
# Luftdruck
echo -n ", Luftdruck: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Hektopascal" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " hPa" >> $ZIEL
fi
rm -f $TMP_FILE
Code: Alles auswählen
chmod 600 /var/spool/cron/crontabs/*
crond -b -c /var/spool/cron/crontabs
Wenn jemand keinen Key hat, finde ich die Lösung gut.Mal das Script erweitert, wahlweise openWeatherMap oder DWD. bei openWeatherMap ist noch die Stadt und der Key erforderlich, bei DWD weiterhin die passende URL.
Code: Alles auswählen
#!/bin/sh
OPENWEATHERMAP=0
TMP_FILE="/tmp/wetter.xml"
ZIEL="/tmp/infobar.txt"
#ZIEL="/dev/stdout"
if [ "$OPENWEATHERMAP" == "1" ]; then
STADT="Berlin Tempelhof"
LAND="DE"
KEY="XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
WETTER_URL="http://api.openweathermap.org/data/2.5/weather?q="$STADT",$LAND&units=metric&lang=de&appid=$KEY&mode=html"
wget -q -O - "$WETTER_URL" > $TMP_FILE
# Bild-URL
# echo `cat $TMP_FILE | grep "url("http" | head -n 1 | cut -d "(" -f2 | cut -d ";" -f2 | cut -d "&" -f1`
# Temperatur
echo -n "$STADT aktuell: " > $ZIEL
echo -n `cat $TMP_FILE | grep " Temperature" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> $ZIEL
# Luftfeuchtigkeit
echo -n ", " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Humidity" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | sed "s/Humidity/Luftfeuchtigkeit/"` >> $ZIEL
# Wind
echo -n ", Wind: " >> $ZIEL
echo -n `awk -v "a=$(cat $TMP_FILE | grep "Wind" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | cut -d " " -f2)" -v "b=3.6" 'BEGIN {printf "%.1f", a*b}'` >> $ZIEL
echo -n " km/h" >> $ZIEL
# Luftdruck
echo -n ", " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Pressure" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2 | sed "s/Pressure/Luftdruck/"` >> $ZIEL
else
WETTER_URL="https://www.dwd.de/DE/wetter/wetterundklima_vorort/berlin-brandenburg/berlin_tempelhof/_node.html"
wget -q -O - "$WETTER_URL" > $TMP_FILE
# Bild-URL
# echo `echo -n "https://www.dwd.de" && cat $TMP_FILE | grep "piktogram" | head -n 1 | cut -d "\"" -f4 | cut -d ";" -f2 | cut -d "?" -f1`
# Temperatur
echo -n "Berlin (Tempelhof) aktuell: " > $ZIEL
echo -n `cat $TMP_FILE | grep " Grad" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " °C" >> $ZIEL
# Luftfeuchtigkeit
echo -n ", Luftfeuchtigkeit: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Prozent" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " %" >> $ZIEL
# Wind
echo -n ", Wind: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Kilometer" | head -n 1 | cut -d "<" -f2 | cut -d ">" -f2` >> $ZIEL
echo -n " km/h" >> $ZIEL
# Luftdruck
echo -n ", Luftdruck: " >> $ZIEL
echo -n `cat $TMP_FILE | grep "Hektopascal" | head -n 1 | cut -d " " -f1 | cut -d ">" -f2` >> $ZIEL
echo -n " hPa" >> $ZIEL
fi
[ "$ZIEL" == "/dev/stdout" ] && echo ""
rm -f $TMP_FILE