Natürlich 😛 https://lh3.googleusercontent.com/-F6DzvEAm0IQ/UrInqUSzrQI/AAAAAAAABDg/SSKo1nGSEmc/w1920-h1080/486905_1920x1080.jpgshibumi schriebEDIT: An FirstZero hast du einen Link zu deinem Steins;gate wallpaper? 🙂
Zeigt her eure Conkys!
[gelöscht]
Dem schliesse ich mich an. Insbesondere Dein Screenshot hat mich bass erstaunt. 😛shibumi schriebErstmal ein Lob an alle die conkyrc UND screenshots posten! Danke.
6 Tage später
[gelöscht]
Habe das Wetterscript mal ausprobiert,Dirk schrieb Wetterscript
allerdings wird bei mir lediglich der Zustand, aber nicht die Temperatur ausgegeben.
Das sieht dann so aus:
leicht bewölktkeine Verbundung
Woran kann das liegen? Ich habe das script zum Testen 1:1 übernommen.Anna-Lena schriebHabe das Wetterscript mal ausprobiert,Dirk schrieb Wetterscript
allerdings wird bei mir lediglich der Zustand, aber nicht die Temperatur ausgegeben.
Das sieht dann so aus:Woran kann das liegen? Ich habe das script zum Testen 1:1 übernommen.leicht bewölktkeine Verbundung
Versuch sonst mal das wetterscript was ich nutze:
#!/bin/sh
#AccuWeather (r) RSS weather tool for conky
#
#USAGE: weather.sh <locationcode>
#
#(c) Michael Seiler 2007
METRIC=1 #Should be 0 or 1; 0 for F, 1 for C
if [ -z $1 ]; then
echo
echo "USAGE: weather.sh <locationcode>"
echo
exit 0;
fi
curl -s http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}\&locCode\=$1 | perl -ne 'if (/Currently/) {chomp;/\<title\>Currently: (.*)?\<\/title\>/; print "$1"; }'
Aufruf in der conkyrc sieht dann zb so aus:${execi 300 /usr/bin/weather "EUR|DE|GMXX6207|Clausthal"}
Deinen Locationcode kriegst du hier -> http://edg3.co.uk/snippets/weather-location-codes/[gelöscht]
Danke. Das Schöne an Dirks Script, bzW. wetter.com ist, das man relativ fein granuliert das Wetter abfragen kann, also stadtteilspezifisch.shibumi schrieb Versuch sonst mal das wetterscript was ich nutze:
Ich habe mir jetzt erstmal mit einer kleinen Änderung geholfen indem ich nach degree-in greppe und tempround entfernt habe.
…
temp=$(grep -A1 "class=\"degree-in\"" "${T}" | tail -n1 | awk '{print $1}')
# tempround=$(printf %.0f ${temp} | sed s/"-0"/"0"/g)
…
res=$(echo "${cond}, ${temp} °C" | sed s/", 0°C"/"keine Verbindung"/g)
Jetzt gibt er die Temperatur zwar genauer als man's wissen muß aus, aber immerhin sehe ich was.Darum habe ich es gerundet. Ganz ehrlich, den unterschied zwischen 10,7 Grad und 11 Grad kann ich nicht ausmachen, mir reicht nur ’ne grobe Richtung. Was mir übrigens vor einiger Zeit aufgefallen ist, das mit dem „keine Verbindung“ muss angepasst werden: … sed s/"$, 0°C^"/"keine Verbindung"/g …, sonst wird das zum Beispiel „wolkigkeine Verbindung“, weil das sed nicht von Anfang an prüft, sondern auch mitten im String.Anna-Lena schriebJetzt gibt er die Temperatur zwar genauer als man's wissen muß aus, aber immerhin sehe ich was.
[gelöscht]
Hm, jetzt sind's immer 0°CDirk schriebdas mit dem „keine Verbindung“ muss angepasst werden: … sed s/"$, 0°C^"/"keine Verbindung"/g …,
7 Tage später
[gelöscht]
Ich würde ja behaupten, dass das an der fehlerhaftenAnna-Lena schriebHm, jetzt sind's immer 0°CDirk schriebdas mit dem „keine Verbindung“ muss angepasst werden: … sed s/"$, 0°C^"/"keine Verbindung"/g …,
tempround=$(printf %.0f ${temp} | sed s/"-0"/"0"/g)
Zeile liegt.Vielleicht ist Dirk ja so nett und zeigt nochmal sein Script, so wie es bei ihm funktioniert?
Gruß H.
- Bearbeitet
was spricht gegen awk?
wget -q "http://www.wetter.com/wetter_aktuell/aktuelles_wetter/deutschland/hamburg/bramfeld/DE0004130064.html" -O - \
| awk '/degree-in/{getline;printf("%d %s\n",$1 + 0.5,$2)}'
Ok da hat es keine Fehlerbehandlung, was spricht gegen ping?
ping -c1 www.wettsdfr.com >/dev/null 2>&1 || exit 1
Bei uns regnet es sowieso immer, darum habe ich auch kein Conky :p <- das heisst ich habe keine Ahnung wovon ich spreche und die Reihenfolge ist auch verkehrt.Hier nochmal in komplett 🙂
#!/bin/bash
T=$(mktemp)
wget -q "http://www.wetter.com/wetter_aktuell/aktuelles_wetter/deutschland/hamburg/bramfeld/DE0004130064.html" -O ${T}
temp=$(grep -A1 "class=\"degree-in\"" "${T}" | tail -n1 | awk '{print $1}')
tempround=$(printf %.0f ${temp} | sed s/"-0"/"0"/g)
cond=$(grep -A1 "class=\"status\"" "${T}" \
| tail -n1 \
| sed 's/^ *//g' \
| sed 's/,/\n${alignr}/g' \
| sed 's/leichter Regen-schauer/leichte Regenschauer/g')
if [ "$(date +%H)" -ge 21 ]; then
cond=$(echo $cond | sed s/"sonnig"/"klar"/g)
fi
res=$(echo "${cond}, ${tempround}°C" | sed s/"$, 0°C^"/"keine Verbindung"/g)
echo -ne "${res}"
rm ${T}
… nur eben hässlich, null fehlertolerant, und eigentlich nur ’ne Notlösung 🙂[gelöscht]
Hi Dirk,
danke für das Script!
Leider wirft er bei mir nun diesen Fehler:
danke für das Script!
Leider wirft er bei mir nun diesen Fehler:
[anna@teachme ~] sh .scripts/wetter
.scripts/wetter: line 8: printf: 6,5: invalid number
klar 0°C%
Ich bin ratlos, zumal es bei Dir ja funktioniert.bash, nicht sh.
[gelöscht]
Danke, leider köappt's trotzdem nicht.Dirk schriebbash, nicht sh.
[anna@teachme ~] bash .scripts/wetter
.scripts/wetter: line 8: printf: 6,5: invalid number
klar 0°C%
Ich benutze als shell zsh, aber auch wenn ich in bash wechsle und dort das Script ausführe (wie oben) erscheint die selbe Fehlermeldung.Könnte etwas an meinem System falsch konfiguriert sein?
@Anna-Lena
Das Script von Dirk funktioniert hier fehlerfrei.
Hast du auch das Script in UTF-8 abgespeichert und die Bash steht ebenfalls bei Default character encoding auf UTF-8.
Das Script von Dirk funktioniert hier fehlerfrei.
Hast du auch das Script in UTF-8 abgespeichert und die Bash steht ebenfalls bei Default character encoding auf UTF-8.
[gelöscht]
Hm. Gute Frage, Ich habe es kopiert, in vim eingefügt und abgespeichert. Wie ermittle ich denn das Default character encoding?Henrikx schrieb@Anna-Lena
Hast du auch das Script in UTF-8 abgespeichert und die Bash steht ebenfalls bei Default character encoding auf UTF-8.
$ locale -a
C
POSIX
de_DE.utf8
en_DK.utf8
en_US.utf8
Für vim , glaube ich, (Ich habe vim nicht installiert) lautet der Befehl : vim "+set encoding=utf-8"
(dann solltest du das Script aber noch mal neu von hier rein kopieren)
Sonst wüsste ich auch keine Fehlerquelle außer einem Formatierungs-- bzw. Zeichensatzfehler.
(dann solltest du das Script aber noch mal neu von hier rein kopieren)
Sonst wüsste ich auch keine Fehlerquelle außer einem Formatierungs-- bzw. Zeichensatzfehler.
Gibt es überhaupt auf einem „normalen“ System etwas anderes als UTF-8? Immerhin haben wir 2014 🙂
Müsste eigentlich so sein.
Die einzig optionale Komponente in deinem Script ist wget.
Also was kann der Fehler sein bei Anna-Lena?
Mir fällt da außer Zeichensatz-Konvertierungs-Fehler nichts ein..nach meiner Meinung hier irgendwo.....
temp=$(grep -A1 "class=\"degree-in\"" "${T}" | tail -n1 | awk '{print $1}')
(printf %.0f ${temp} | sed s/"-0"/"0"/g).
Die einzig optionale Komponente in deinem Script ist wget.
Also was kann der Fehler sein bei Anna-Lena?
Mir fällt da außer Zeichensatz-Konvertierungs-Fehler nichts ein..nach meiner Meinung hier irgendwo.....
temp=$(grep -A1 "class=\"degree-in\"" "${T}" | tail -n1 | awk '{print $1}')
(printf %.0f ${temp} | sed s/"-0"/"0"/g).
Kann es daran liegen, dass bei der Gradzahl die Nachkommastellen mit einem Komma getrennt werden, printf aber einen Punkt erwartet (bzw. andersrum)?
$ bash -c 'printf %.0f 6,5'
6
$ bash -c 'printf %.0f 6.5'
bash: Zeile 0: printf: 6.5: Ungültige Zahl.
0
[gelöscht]
Jawoll- daran lag's!feuri schriebKann es daran liegen, dass bei der Gradzahl die Nachkommastellen mit einem Komma getrennt werden, printf aber einen Punkt erwartet (bzw. andersrum)?
Wenn ich die Zeile ändere in:
temp=$(grep -A1 "class=\"degree-in\"" "${T}" | tail -n1 | awk '{print $1}' | sed s/,/./g)
dann ist alles gut. Danke! Bleibt natürlich noch zu klären, warum's bei mir ohne diese Änderung nicht läuft, bei den anderen aber ja.