4 votos

¿Cómo puedo hacer que Conky muestre el clima?

He sido strugling para obtener conky para mostrar el clima, la acabo de instalar y enteré de que yahoo suspendió el api url que era la que el conky tema estaba usando (http://weather.yahooapis.com/forecastrss?w=1103816&u=c), he intentado cambiar la dirección url de accuweather y openweather queridos y nada. Yo no entiendo cómo funciona esto en absoluto y no tengo ni idea de cómo hacer que funcione correctamente, este es el código:

##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://rss.accuweather.com/rss/liveweather_rss.asp\?metric\=${METRIC}#\&locCode\=$LOCCOD" -o #~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep #"yweather:condition" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | #grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}#${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o #"code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image #~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla

por cierto, no he encontrado nada en internet que podría ayudarme... gracias de antemano :)

Edit1: Aquí es la api que el conky tema guarda en el cache/weather.xml http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568 Estoy poco a poco la comprensión de cómo funciona

Edit2: Esta es la forma en que el código se ve ahora, me di cuenta de que yo no haya escrito algunos # tratando de comentarios todo el tiempo parte. Yo no entiendo cómo conky lee xml (no sé cómo leer xml mí, pero supongo que puedo resolver que con un par de guías de xml :P)

##Weather
${image .jelly-weather-icons/conky_icons/circle2.png -s 190x190}
${texeci 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" -o ~/.cache/weather.xml}
${voffset -110}${offset 425}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 grep "weather:description" ~/.cache/weather.xml | grep -o "temp=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*"}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 14}${font}${color1}
${execi 1300 cp -f .weather-icons/$(grep "yweather:condition" ~/.cache/weather.xml | grep -o "code=\"[^\"]*\"" | grep -o "\"[^\"]*\"" | grep -o "[^\"]*").png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,23 -s 35x35}
${offset 420}${voffset -105}${font ITC Avant Garde Gothic Pro:size=14} Sevilla

Edit3: Así que finalmente consiguió trabajo gracias a @WinEunuuchs2Unix y @steeldriver , esta es la forma en que el código finalmente busca alguien que quiere usar en su conky código:

##Weather

${voffset -80}${offset 435}${font ITC Avant Garde Gothic Pro:bold:size=20}${execi 1300 curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].main.temp' | awk '{printf("%.0f\n", $1)}'}${font ITC Avant Garde Gothic Pro:bold:size=8}${voffset -16}o${voffset 24}${font}${color1}
${execi 1300 cp -f .iconos/$(curl -s "http://api.openweathermap.org/data/2.5/forecast?id=6361046&APPID=6be5e3a6e62680c28044791e8fc7b568&units=metric" | jq -r '.list[0].weather[].icon').png ~/.cache/weather.png}${image ~/.cache/weather.png -p 425,20 -s 60x60}
${offset 420}${voffset -115}${font ITC Avant Garde Gothic Pro:bold:size=14} Sevilla

Básicamente lo que hace es leer un json desde el openweather url usando curl, y con jq búsqueda de los valores de .list[0].weather[].icon y .list[0].main.temp como para que la temperatura se genera un valor de 2 dígitos decimales que corté por preferencias personales usando awk '{printf("%.0f\n", $1)}' el resto del código es sólo conky la manera de entender de dónde quieras y cómo quieras. Si desea utilizar por sí mismo, sólo cambian Sevilla de tu ciudad, y cambio curl -s "...your location api url..." tenga en cuenta que si utiliza un sitio diferente para su api url cambie jq para adaptarse a los nuevos datos en json. También tenga en cuenta que usted tendrá que crear una carpeta con todos los iconos de este icono de la lista o utiliza sus propios iconos pero recuerde que debe utilizar la misma nomenclatura (01d.png, 02d.png, ...) y también no se olvide de editar este ${execi 1300 cp -f .iconos/$(curl -s "http:/... y reemplace .iconos/ con el directorio de la carpeta.

Aquí si desea probar el conky tema

3voto

WinEunuuchs2Unix Puntos 1032

El clima es demasiada información para meterse en mi conky de la pantalla que ya está bastante lleno. Así que en lugar de que lo puse en mi terminal la pantalla de presentación:

terminal splash screen.png

Usted puede obtener la misma información desde la línea de comandos que se puede llamar de conky:

$ curl wttr.in/Edmonton?0 --silent --max-time 3

Weather report: Edmonton

     \   /     Clear
      .-.      7..8 °C        
   ― (   ) ―   → 6 km/h       
      `-'      10 km          
     /   \     0.0 mm         

Para obtener su nombre de la ciudad de wttr.in ver:


Mostrar una imagen en conky

He guardado una foto de hoy en día el clima de darksky.net y se muestra en conky con la ${image} comando:

Weather in conky.png

La correspondiente conky comandos son:

#------------+
# Brightness |
#------------+
${color orange}${voffset 2}${hr 1}
${color1}${goto 5}Rise: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunrise} ${goto 155}${color1}Set: ${color green}${execpi 300 cat /usr/local/bin/.eyesome-sunset} ${alignr}${color1}Level: ${color green}${execpi 10 cat /sys/class/backlight/intel_backlight/brightness}







#------------+
# Image      |
#------------+
${image /home/rick/Pictures/Weather.png -p 0,1080 -s 400x120}
  • He incluido la sección justo antes de referencia
  • Aviso todas las líneas en blanco para hacer conky ventana más alto para caber en la imagen
  • Ver: Variables en Conky para más detalles sobre ${image} comando.

1voto

Organic Marble Puntos 1639

Descargo de responsabilidad: no recuerdo de dónde saqué esto.

Tengo un pequeño script weather.sh

 #!/bin/sh
#AccuWeather (r) RSS weather tool for conky
#
#USAGE: weather.sh <locationcode>
#
#(c) Michael Seiler 2007

METRIC=0 #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"; }'
 

Luego en el .conkyrc tienes

${exec [location of script]/weather.sh [zip code]}

El resultado final es

ingrese la descripción de la imagen aquí

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: