topic title: Weather in Conky
Posts: 452
Jerry
Joined: 12 Sep 2007
#1
I tend to like more basic info than probably many other people, so was really glad to get this simple weather package working:


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://conky.sourceforge.net/weather.tar.gz"
linktext was:"http://conky.sourceforge.net/weather.tar.gz"
====================================


Requirements:
  • Place the two scripts in the same location
  • Adjust the parameters for your local situation
  • Install curl from the repos
. Here are the only changed parts of my weather.sh script:

Code: Select all

# s=standard units, m=metric units
UNITS=s

# where this script and the XSLT lives
RUNDIR=/home/jb/scripts
I didn't want any forecast, so omitted the Tomorrow entry from the XLST script, which I have now corrected so the"feels like" feature runs correctly:

Code: Select all

<xsl:text>  Temperature: </xsl:text><xsl:value-of select="tmp"/><xsl:value-of select="/weather/head/ut"/>
<xsl:if test="tmp != /weather/cc/flik">
<xsl:text>
  Feels Like: </xsl:text><xsl:value-of select="flik"/><xsl:value-of select="/weather/head/ut"/>
</xsl:if>
<xsl:text>
  Conditions: </xsl:text><xsl:value-of select="t"/>
<xsl:text>
  Wind: </xsl:text>
<xsl:choose>
    <xsl:when test="wind/s = 'calm'"><xsl:text>0</xsl:text></xsl:when>
    <xsl:otherwise><xsl:value-of select="wind/s"/></xsl:otherwise>
</xsl:choose>
<xsl:value-of select="/weather/head/us"/> 
<xsl:choose>
    <xsl:when test="wind/s = 'calm'"><xsl:text>(0mph)</xsl:text></xsl:when>
    <xsl:otherwise><xsl:text> (</xsl:text><xsl:value-of select="round(wind/s * 0.6214)"/><xsl:text>mph)</xsl:text></xsl:otherwise>
</xsl:choose>
<xsl:text> (</xsl:text><xsl:value-of select="wind/t"/>
<xsl:text>)</xsl:text>
    </xsl:template>

    <xsl:template match="dayf/day[@d='1']">
<xsl:text>
And finally here is the entry in my conkyrc:

Code: Select all

${color white}Weather:
${color green}${execi 1800 /home/jb/scripts/weather.sh 14456}
Image[/code][/list]
Last edited by Jerry on 19 May 2008, 13:08, edited 1 time in total.
Posts: 1,520
eriefisher
Joined: 07 Oct 2007
#2
Can you post your whole conkyrc file?

eriefisher
Posts: 452
Jerry
Joined: 12 Sep 2007
#3
Sure, but it's pretty boring compared to what I have seen around here and elsewhere. Also, I have divided it up into sections so I could get around more easily:

Code: Select all

#This Conky configuration file has 5 sections:
##BASE SETTINGS##
##STYLE VARIABLES##
##CONTENT VARIABLES##
##EXAMPLES##
##OUTPUT##
----------
##BASE SETTINGS##
----------
# set to yes if you want Conky to be forked in the background
background yes

cpu_avg_samples 2
net_avg_samples 2

out_to_console no
----------
##STYLE VARIABLES##
----------
# X font when Xft is disabled, you can pick one with program xfontsel
#font 7x12
#font 6x10
#font 7x13
 font 8x12
#font 7x12
#font *mintsmild.se*
#font -*-*-*-*-*-*-34-*-*-*-*-*-*-*
#font -artwiz-snap-normal-r-normal-*-*-100-*-*-p-*-iso8859-1

# Use Xft?
use_xft no

# Xft font when Xft is enabled
xftfont Kristen ITC-7

own_window_transparent yes
own_window_colour hotpink

# Text alpha when using Xft
xftalpha 0.8

#on_bottom no

# mail spool
mail_spool $MAIL

# Update interval in seconds
update_interval 1

# Create own window instead of using desktop (required in nautilus)
own_window no

# Use double buffering (reduces flicker, may not work for everyone)
double_buffer yes

# Minimum size of text area
minimum_size 5 5
maximum_width 200

# Draw shades?
draw_shades no

# Draw outlines?
draw_outline no

# Draw borders around text
draw_borders no

# Stippled borders?
stippled_borders 0

# border margins
border_margin 10

# border width
border_width 1

# Default colors and also border colors
default_color white
default_shade_color white
default_outline_color white

# Text alignment, other possible values are commented
alignment top_left
#alignment top_right
#alignment bottom_left
#alignment bottom_right

# Gap between borders of screen and text

gap_x 10
gap_y 10

# Add spaces to keep things from moving about?  This only affects certain objects.
use_spacer yes

# Subtract file system buffers from used memory?
no_buffers yes

# set to yes if you want all text to be in uppercase
uppercase no

# boinc (seti) dir
# seti_dir /opt/seti

#For details, see http://conky.sourceforge.net/config_settings.html
----------
##CONTENT VARIABLES##
----------
# Possible variables to be used:
#
#      Variable         Arguments                  Description                
#  acpiacadapter                     ACPI ac adapter state.                   
#  acpifan                           ACPI fan state                           
#  acpitemp                          ACPI temperature.                        
#  adt746xcpu                        CPU temperature from therm_adt746x       
#  adt746xfan                        Fan speed from therm_adt746x             
#  battery           (num)           Remaining capasity in ACPI or APM        
#                                    battery. ACPI battery number can be      
#                                    given as argument (default is BAT0).     
#  buffers                           Amount of memory buffered                
#  cached                            Amount of memory cached                  
#  color             (color)         Change drawing color to color            
#  cpu                               CPU usage in percents                    
#  cpubar            (height)        Bar that shows CPU usage, height is      
#                                    bar's height in pixels                   
#  downspeed         net             Download speed in kilobytes              
#  downspeedf        net             Download speed in kilobytes with one     
#                                    decimal                                  
#  exec              shell command   Executes a shell command and displays    
#                                    the output in torsmo. warning: this      
#                                    takes a lot more resources than other    
#                                    variables. I'd recommend coding wanted   
#                                    behaviour in C and posting a patch :-).  
#  execi             interval, shell Same as exec but with specific interval. 
#                    command         Interval can't be less than              
#                                    update_interval in configuration.        
#  fs_bar            (height), (fs)  Bar that shows how much space is used on 
#                                    a file system. height is the height in   
#                                    pixels. fs is any file on that file      
#                                    system.                                  
#  fs_free           (fs)            Free space on a file system available    
#                                    for users.                               
#  fs_free_perc      (fs)            Free percentage of space on a file       
#                                    system available for users.              
#  fs_size           (fs)            File system size                         
#  fs_used           (fs)            File system used space                   
#  hr                (height)        Horizontal line, height is the height in 
#                                    pixels                                   
#  i2c               (dev), type, n  I2C sensor from sysfs (Linux 2.6). dev   
#                                    may be omitted if you have only one I2C  
#                                    device. type is either in (or vol)       
#                                    meaning voltage, fan meaning fan or temp 
#                                    meaning temperature. n is number of the  
#                                    sensor. See /sys/bus/i2c/devices/ on     
#                                    your local computer.                     
#  kernel                            Kernel version                           
#  loadavg           (1), (2), (3)   System load average, 1 is for past 1     
#                                    minute, 2 for past 5 minutes and 3 for   
#                                    past 15 minutes.                         
#  machine                           Machine, i686 for example                
#  mails                             Mail count in mail spool. You can use    
#                                    program like fetchmail to get mails from 
#                                    some server using your favourite         
#                                    protocol. See also new_mails.            
#  mem                               Amount of memory in use                  
#  membar            (height)        Bar that shows amount of memory in use   
#  memmax                            Total amount of memory                   
#  memperc                           Percentage of memory in use              
#  new_mails                         Unread mail count in mail spool.         
#  nodename                          Hostname                                 
#  outlinecolor      (color)         Change outline color                     
#  pre_exec          shell command   Executes a shell command one time before 
#                                    torsmo displays anything and puts output 
#                                    as text.                                 
#  processes                         Total processes (sleeping and running)   
#  running_processes                 Running processes (not sleeping),        
#                                    requires Linux 2.6                       
#  shadecolor        (color)         Change shading color                     
#  stippled_hr       (space),        Stippled (dashed) horizontal line        
#                    (height)        
#  swapbar           (height)        Bar that shows amount of swap in use     
#  swap                              Amount of swap in use                    
#  swapmax                           Total amount of swap                     
#  swapperc                          Percentage of swap in use                
#  sysname                           System name, Linux for example           
#  time              (format)        Local time, see man strftime to get more 
#                                    information about format                 
#  totaldown         net             Total download, overflows at 4 GB on     
#                                    Linux with 32-bit arch and there doesn't 
#                                    seem to be a way to know how many times  
#                                    it has already done that before torsmo   
#                                    has started.                             
#  totalup           net             Total upload, this one too, may overflow 
#  updates                           Number of updates (for debugging)        
#  upspeed           net             Upload speed in kilobytes                
#  upspeedf          net             Upload speed in kilobytes with one       
#                                    decimal                                  
#  uptime                            Uptime                                   
#  uptime_short                      Uptime in a shorter format               
#
#  seti_prog                         Seti@home current progress
#  seti_progbar      (height)        Seti@home current progress bar
#  seti_credit                       Seti@hoome total user credit

For more details, see http://conky.sourceforge.net/variables.html

----------
##EXAMPLES##
----------
## antiX additives examples.Add to below Text##
##${color blue}battery: ${color white}$acpiacadapter, ${battery_percent BAT1}% 
##Witeless example##
#${color white}Wireless:
#${color green}essid: ${wireless_essid wlan0}
#${color red}IP:${color white} ${addr wlan0}
#${color red}speed: ${color white} ${wireless_bitrate wlan0}
#${color red}link strength: ${color white} ${wireless_link_bar 7,50 wlan0}

# stuff after 'TEXT' will be formatted on screen
----------
##OUTPUT##
----------
TEXT
${color white}$sysname $kernel
${color green}Uptime: $uptime
${color red}${time %a %d %b %k:%M}

${color white}System monitors:
${color green}cpu: ${color green}${cpu}%
${color red}ram : ${color white}$mem${color white}/${color white}$memmax ${color white}- ${color green}$memperc%
${color red}swap: ${color white}$swap${color white}/${color white}$swapmax ${color white}- ${color green}$swapperc%
${color red}processes: ${color white}$processes${color white} running: ${color green}$running_processes
${color red}free space:${color white} ${fs_free /} ${color green}= ${fs_free_perc /}%
${color red}battery state:${color white} ${battery}
${color red}battery strength:${color green} ${battery_bar 7,50}

${color white}Wireless:
${color green}essid: ${wireless_essid wlan0}
${color red}IP:${color white} ${addr wlan0}
${color red}link strength: ${color white} ${wireless_link_bar 7,50 wlan0}

${color white}Weather:
${color green}${execi 1800 /home/jb/scripts/weather.sh 14456}
Posts: 452
Jerry
Joined: 12 Sep 2007
#4
Finally got the"feels like" correct in this script. This line should read

Code: Select all

<xsl:if test="tmp != /weather/cc/flik">
which provides the script with the complete path for the variable. I have edited my original post to correct for this.

Today when the wind is 25mph and the temperature is 42F, that"feels like" carries an important: dress warmly!
Posts: 128
Hannes Worst
Joined: 31 Jan 2009
#5
I know this is an old thread, but I thought: 'Let's give it a try', but so far I didn't succeed. In Conky I get the message: 'Invalid Partner Code'. What am I doing wrong? Do you have to sign up with xoap weather services? That didn't work for me ..
I defined my location in weather.sh as:
LOCID=$NLXX0017

In my .conkyrc I stated:
${color green}${execi 1800 /home/strijards/scripts/weather.sh NLXX0017}

It's a small problem, but I can't get it to work so far. Anyone with the same experience, and a solution perhaps? __{{emoticon}}__
Posts: 1,228
secipolla
Joined: 15 Jun 2008

19 Jul 2009, 21:38 #6

Hannes Worst, just pointing that without curl the weather wont show up.
EDIT - sorry, I didn't pay attention to the message. What may be happening is that maybe you shouldn't edit weather.sh (I never tried this script, so this is just a guess), just add the location code to your .conkyrc
One other possibility is that you may have to put the location code inside quotes

Code: Select all

${color green}${execi 1800 /home/strijards/scripts/weather.sh"NLXX0017"}
in accuweather.com, for instance, that is the case when the location is outside the US.
Posts: 128
Hannes Worst
Joined: 31 Jan 2009
#7
Secipolla, thanks for your reaction. I tried out what you suggested, but no luck so far.. I'll keep on searching on the internet though, what it means: 'Invalid Partner Code'
Posts: 516
oldhoghead
Site Admin
Joined: 01 Oct 2007
#8
Hannes Worst,

Here is a link to one of Masinick's scripts for weather,


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://www.mepislovers.org/forums/showthread.php?t=20546&highlight=weather"
linktext was:"http://www.mepislovers.org/forums/showt ... ht=weather"
====================================
" onclick="window.open(this.href);return false

Have a look, maybe what you want.

cheers,
oldhoghead
Posts: 1,228
secipolla
Joined: 15 Jun 2008
#9
Make sure that everything else is pointing to the right place (like 'CURLCMD=/usr/bin/curl', 'XSLTCMD=/usr/bin/xsltproc' etc.)
and you must have 'curl' and this 'xsltproc' thing.

HW, I've tried those codes in the browser and I suspect it's a 'problem' with weather.com since they don't work. You may keep those scripts and change the URL to fetch the weather to other ones like rss.accuweather.com in CURLURL="" (either search the the net or later I'll see the one I have in antiX in VirtualBox), and the location code must also be changed accordingly.
Posts: 128
Hannes Worst
Joined: 31 Jan 2009
#10
So far I've tried all kinds of weather.pl and weather.sh and weatherscript.py. Non of them worked, partially because they work with zipcodes and locationcodes that only work for the American continent and the UK. However I found a simple solution based on this thread:
========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"http://ubuntuforums.org/showthread.php?p=7587652"
linktext was:"http://ubuntuforums.org/showthread.php?p=7587652"
====================================
" onclick="window.open(this.href);return false, and based on Secipolla's referal to rss.accuweather.com. It only requires a simple extra script in my .conky.rc. The result is a simple weatherdescription in Conky, but that is all I need.
Thanks for your advice!
Posts: 1
birkopf
Joined: 26 Jun 2011
#11
Hi Jerry, Hannes and rest.
I would like to ask for your help as I am FED UP with weather problems ins conky. Seriously. I am not a novice. since 1 week I tried over 10 different configurations. Most doesn't work. One that works is a standard and looks rubbish.

This topic started by Jerry was great relief as it was clear and methodical but I get the same error as Hannes : 'Invalid Partner Code'. I want to get if for my city in France, but will settle even for Paris. All components (curls, etc) are installed and in right places - checked 3 times. My location code is FRXX2284

I agree that something is wrong with url for curl as after extensive search it came back to me that server is not responding.

Please have a look at my code. Maybe some ideas will come.

Code: Select all

###############
# - WEATHER - #
###############
${voffset 4}${font Droid Sans:style=Bold:size=8}CLIMA $stippled_hr${font}

${execi 1800 /home/rich/.conkycolors/scripts/weather/weather.sh"FRXX2284"}
Help me to replace this topics url with weather __{{emoticon}}__
I tried everything...

My weather.sh

Code: Select all

#!/bin/sh
# your Location ID: use http://xoap.weather.com/search/search?where=[yourcity] to find it 
# U.S. users can just use their zip code; doubt that works for anyone else though (YMMV)
LOCID=$"FRXX2284"

# s=standard units, m=metric units
UNITS=m

# where this script and the XSLT lives
RUNDIR=/home/rich/.conkycolors/scripts/

# there's probably other stuff besides CURL that will work for this, but i haven't 
# tried any others. 
# you can get curl at http://curl.haxx.se/
CURLCMD=/usr/bin/curl

# get it at http://xmlsoft.org/XSLT/
XSLTCMD=/usr/bin/xsltproc

# you probably don't need to modify anything below this point....

# CURL url. Use cc=* for current forecast or dayf=10 to get a multi-day forecast
CURLURL="http://xoap.weather.com/weather/local/$LOCID?cc=*&unit=$UNITS&dayf=2"

# The XSLT to use when translating the response from weather.com
# You can modify this xslt to your liking 
XSLT=$RUNDIR/weather.xslt 

#filter (if you want to convert stuff to lower-case or upper case or something)
#FILTER="|gawk '{print(tolower(\$0));}'"
#####
eval"$CURLCMD \"$CURLURL\" 2>/dev/null| $XSLTCMD $XSLT - $FILTER"
Posts: 4,164
rokytnji
Joined: 20 Feb 2009
#12
Up late. bleary eyed as usual, bored, so



My .weather.sh sits in /home/harry/.weather.sh

Stole this idea from Arch Forum because I like their simple approach to stuff verses Ubuntu conkys.


========= SCRAPER REMOVED AN EMBEDDED LINK HERE ===========
url was:"https://bbs.archlinux.org/viewtopic.php?id=37381"
linktext was:"https://bbs.archlinux.org/viewtopic.php?id=37381"
====================================

Code: Select all

#!/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 <79772>"
    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"; }'

It is executable. You need perl and curl installed from synaptic or apt-get.

My .conkyrc

Code: Select all

#avoid flicker
double_buffer yes

#own window to run simultanious 2 or more conkys
own_window  yes
own_window_transparent yes
own_window_type normal
own_window_hints undecorate,sticky,skip_taskbar,skip_pager 

#borders
#shades
draw_shades no

#position
gap_x 0
gap_y 4
alignment top_left

#behaviour
update_interval 1

#colour
default_color  green yellow
#default_shade_color 000000
own_window_colour 262729

#font
use_xft yes
xftfont sans:size=8

# Force UTF8? note that UTF8 support required XFT
override_utf8_locale yes

#to prevent window from moving
use_spacer none
minimum_size 1024 0

#mpd
#mpd_host localhost
#mpd_port 6600

TEXT
Date: ${color e0e0e0}${time %d/%m/%y} ${color} Time: ${color e0e0e0}${time %H:%M}${color}  |  Kernel: ${color e0e0e0}$kernel${color}  |  Cpu: ${color e0e0e0}${cpu}%${color}  Ram: ${color e0e0e0} $memperc% ${color} Swap: ${color e0e0e0} $swapperc% ${color} Disk: ${color e0e0e0}${fs_used_perc /}%${color} Home: ${color e0e0e0}${fs_used_perc /home}%${color}  |   Cpu: ${color e0e0e0}${acpitemp}°C${color}  | Signal: ${wireless_link_bar 7,50 wlan0} | ${color}Batt: ${color}$acpiacadapter, ${battery_bar BAT0}

$memmax         ${execi 300 /home/harry/.weather.sh 79772} 

 

Too tired and bleary eyed to try and figure out .weather.sh to forecast weather yet for next few days in a straight line and keep it simple (though the weather is boring here. Always hot and no rain). As you guys know. I am not a coder per se but just a biker. I'll have to dig some more to try and keep this clean and slim without icons. Don't expect much help from me on this as I am in virgin territory also. Goodnight Bros.