You are not logged in.

#1 2016-07-04 08:53:43

loutch
Member
Registered: 2015-12-12
Posts: 393

openweathermap and wunderground weather

ok i try it but i have some think wrong

in konsole i have many errors and in the conky nothing .

[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: forked to background, pid is 12718
[loutch@localhost ~]$ 
Conky: desktop window (2400295) is subwindow of root window (34c)
Conky: window type - normal
Conky: drawing to created window (0x4c00003)
Conky: drawing to double buffer
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 100 : printf: 7.07: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 101 : printf: 49.11: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 103 : printf: 24.04: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 106 : printf: 26.11: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 116 : printf: 9.6: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 120 : printf: 24.04: nombre non valable
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)

here my lua-weather.lua i just modify the datafile =

    lua_load /path/to/lua-weather.lua
    lua_draw_hook_pre conky_main

In the conky, get the weather data from lua-weather.sh with

TEXT
${execi <interval> /path/to/lua-weather.sh}

---------------------------------------------]]

require 'cairo'

-- set default font
--fontface="Dustismo"
fontface="GE Inspira"

function conky_main()
    if conky_window==nil then return end
    cs=cairo_xlib_surface_create(conky_window.display,
                                        conky_window.drawable,
                                        conky_window.visual,
                                        conky_window.width,
                                        conky_window.height)
    cr=cairo_create(cs)
    
    xW=160      -- x pos wind dial centre
    yW=90       -- y pos wind dial centre
    radiusW=60  -- radiusW wind dial
    xT=30       -- x pos temp bar (top)
    yT=10       -- y pos temp bar (top)
    wT=6        -- width temp bar
    hT=150      -- height temp bar
    xSun=340    -- x pos sun dial centre
    ySun=90     -- y pos sun dial centre
    radiusSun=60-- radius sun dial
    datafile="/home/loutch/2b_Wunderground_API/weather.txt"  -- textfile to hold lua-weather.sh output
    
    direction,windS,temperature,sunrise,sunset,loc,wx = get_vals() 

and the lua-weather.sh i with wunderground api

#### User configurables:  ##############################################

# Get API KEY by registering for one at http://openweathermap.org/api
api="XXXXXXXXXXXXXXX"

# Either set the location manually here, or by passing it as a script parameter in the Conky.
# "yourlocation" must be a name (which doesn't have spaces), or a numeric id.
#
# id's can be obtained from http://bulk.openweathermap.org/sample/city.list.json.gz
# Download and extract the json file, then simply search for an id with grep. 
#   For example:   grep "New York" city.list.json
#
# If $place is not set, then the script attempts to get a geolocation from the IP address.

#place="$1"              # Get $place from script parameter.
place="Sarreguemines"   # Uncomment and add name or id. NB If the name has spaces, then you must use the id.

# Choose fahrenheit/Imperial or Celcius/metric:

here the weather.text

null
0,0 kn


0,0
null
null

I precise you with openweather i don't have anythink in conky and no weather.txt

Last edited by loutch (2016-07-05 17:59:51)


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#2 2016-07-04 09:29:48

Sector11
Conky 1.9er Mod Squid
From: Upstairs
Registered: 2015-08-20
Posts: 6,049

Re: openweathermap and wunderground weather

Oh I'm going to try and use Teo's moon script with that as well.

KUDOS damo!


The sun will never set if you keep walking towards it. - my son
Being positive doesn't understand physics.

Online

#3 2016-07-04 13:07:04

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

@loutch

I think you misunderstood me - I didn't mean that you could just swap to a different url for the weather data. What I meant was that you can get a value for eg windspeed any way you like, and pass it to the lua script.

'lua-weather.sh' gets the values by parsing json-formatted data, using 'jq' - I doubt very much that the wunderground data is in the same format.

Either you need to use a different script to pass the values to lua-weather.lua, or add the various widget functions to whichever lua script you are using now (changing the data variable names appropriately).


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#4 2016-07-04 17:13:26

Sector11
Conky 1.9er Mod Squid
From: Upstairs
Registered: 2015-08-20
Posts: 6,049

Re: openweathermap and wunderground weather

^ Yea, Teo's wunderground script is a bash file that saves data in a plain text file.  Not the same at all.

Still I wanna play with it.  smile


The sun will never set if you keep walking towards it. - my son
Being positive doesn't understand physics.

Online

#5 2016-07-04 18:58:12

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

Sector11 wrote:

^ Yea, Teo's wunderground script is a bash file that saves data in a plain text file.  Not the same at all.

Still I wanna play with it.  smile

Well, to be pedantic, my script is a bash script that saves data in a plain text file tongue  ^^ But the point is that the data source is formatted differently, and so needs extracting differently.

I've never looked at Teo's wunderground script (aka TWS, henceforth), but that was going to be my next step, see how  the data is extract etc. Still, if you get there first..... smile


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#6 2016-07-05 07:42:06

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

hello guys

i have any api keys from openweather and launch the conky and there is noting .

this morning i have any weather.txt like this:

270
0,0 kn
0534
2138
0,0
Sarreguemines
broken clouds

and konsole give me this:

[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: llua_load: /home/loutch/2b_Wunderground_API/scripts/lua-weather.lua:514: function arguments expected near 'code'
Conky: forked to background, pid is 19319
[loutch@localhost ~]$
[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: llua_load: /home/loutch/2b_Wunderground_API/scripts/lua-weather.lua:514: function arguments expected near 'code'
Conky: forked to background, pid is 20272
[loutch@localhost ~]$
Conky: desktop window (240029d) is subwindow of root window (34c)
Conky: window type - normal
Conky: drawing to created window (0x5000003)
Conky: drawing to double buffer
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 100 : printf: 7.07: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 101 : printf: 49.11: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 103 : printf: 17.91: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 106 : printf: 19.44: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 116 : printf: 7.7: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 120 : printf: 17.91: nombre non valable
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value
Conky: llua_do_call: function conky_main execution failed: attempt to call a nil value

Last edited by loutch (2016-07-05 07:50:49)


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#7 2016-07-05 14:34:59

Sector11
Conky 1.9er Mod Squid
From: Upstairs
Registered: 2015-08-20
Posts: 6,049

Re: openweathermap and wunderground weather

@loutch

damo's openweather and Teo's wunderground scripts do things differently.  I'm sure they can be merged to work together though.

Can you please post:
1. the conky you are using for this.
2. the 'complete' lua-weather.sh script complete with path to it.
3. the weather.lua script - compleat with path to it.

I'll see what I can do.


The sun will never set if you keep walking towards it. - my son
Being positive doesn't understand physics.

Online

#8 2016-07-05 16:17:16

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

hello S11

here the conkyrc

 
background yes
use_xft yes
xftfont URW Chancery L:style=Bold:size=10
xftalpha 1
update_interval 1.0
total_run_times 0
own_window yes
own_window_transparent yes
own_window_argb_visual yes
own_window_type normal
own_window_hints undecorated,below,skip_taskbar,skip_pager
double_buffer yes
minimum_size 640 600
maximum_width 640
text_buffer_size 2048
draw_shades no
draw_outline no
draw_borders yes
draw_graph_borders no
default_color ffffff
color0 A9A9A9 #DarkGray
color1 778899 #LightSlateGray
color2 F5F5DC #Beige
color3 87CEFA #LightSkyBlue
color4 48D1CC #MediumTurquoise
color5 FFDEAD #NavajoWhite
color6 00BFFF #DeepSkyBlue
color7 B0E0E6 #PowderBlue
color8 FFD700 #Gold
color9 ff0000 #LightSalmon
default_outline_color black
alignment tr
gap_x 40
gap_y 100
no_buffers yes
uppercase no
cpu_avg_samples 2
override_utf8_locale yes
# Fonctionne uniquement avec les polices Fixes
#use_spacer yes
imlib_cache_size 0 
 uppercase no
 
 lua_load ~/2b_Wunderground_API/scripts/lua-weather.lua
    lua_draw_hook_pre conky_main
 

TEXT

${execi 300 ~/2b_Wunderground_API/scripts/lua-weather.sh}

lua-weather.sh

 
#!/bin/bash
#
## lua-weather.sh by <damo> July 2016
## Adapted from bunsenweather.sh, which was based on ideas from 
## weatherbang.sh version 1.0, 2013 by Ryan Fantus
##
## Requires:
##          'jq' (sudo apt-get install jq);
##          API Key from http://openweathermap.org/api
##
## USAGE: Call this script from Conky with ( replace "<t>" with the update interval)
##          ${execpi <t> /path/to/lua-weather.sh [location]}


#### User configurables:  ##############################################

# Get API KEY by registering for one at http://openweathermap.org/api
api="8cfXXXXXXXXXXXXXXeb4d376a99d"

# Either set the location manually here, or by passing it as a script parameter in the Conky.
# "yourlocation" must be a name (which doesn't have spaces), or a numeric id.
#
# id's can be obtained from http://bulk.openweathermap.org/sample/city.list.json.gz
# Download and extract the json file, then simply search for an id with grep. 
#   For example:   grep "New York" city.list.json
#
# If $place is not set, then the script attempts to get a geolocation from the IP address.

#place="$1"              # Get $place from script parameter.
place="2975964"   # Uncomment and add name or id. NB If the name has spaces, then you must use the id.

# Choose fahrenheit/Imperial or Celcius/metric:
#metric='imperial'
metric='metric'

# data file
datafile="/home/loutch/weather.txt"

#########################################################################
connectiontest() {
    local -i i attempts=${1-0}
    for (( i=0; i < attempts || attempts == 0; i++ )); do
        if wget -O - 'http://ftp.debian.org/debian/README' &> /dev/null; then
            return 0
        fi
        if (( i == attempts - 1 )); then # if last attempt
            return 1
        fi
    done
}

placeholder() {
    if (( $1 == 1 )) &>/dev/null;then
        echo "No internet connection"
        echo "Weather information unavailable"
    else
        echo "No API key"
        echo "Weather information unavailable"
    fi
}

if [[ $metric == metric ]] &>/dev/null;then
    scaleT="°C"
    scaleV="m/s"
else
    scaleT="°F"
    scaleV="mph"
fi

if [[ -z "$api" ]] &>/dev/null;then
    placeholder 0 && exit 1
else
    connectiontest 10
    
    # If latlong is preferred then don't set a value for $place
    if (( $? == 0 )) &>/dev/null;then
        if [[ -z $place ]] &>/dev/null;then
            # Geolocate IP:
            ipinfo=$(curl -s ipinfo.io)
            latlong=$(echo "$ipinfo" | jq -r '.loc')
            # Parse the latitude and longitude
            lat=${latlong%,*}
            long=${latlong#*,}
            location="lat=$lat&lon=$long"
        else
            # check if numeric id, or placename is being used
            [[ ${place##*[!0-9]*} ]] &>/dev/null && location="id=$place" || location="q=$place"
        fi

        # get json data from openweathermap:
        weather=$(curl -s http://api.openweathermap.org/data/2.5/weather\?APPID=$api\&"$location"\&units=$metric)
        city=$(echo "$weather" | jq -r '.name') # In case location has spaces in the name
        weather_desc=$(echo "$weather" | jq -r '.weather[0].description')   # In case description has spaces in the name

        # load values into array:
        all=($(echo "$weather" | jq -r '.coord.lon,.coord.lat,.weather[0].main,.main.temp,.main.pressure,.main.temp_min,.main.temp_max,.wind.speed,.wind.deg,.clouds.all,.sys.sunrise,.sys.sunset'))
        #                   ARRAY INDEX  0          1          2                3          4              5              6              7           8         9           10           11

        longitude=$(printf '%06.1f' ${all[0]})
        latitude=$(printf '%+.1f' ${all[1]})
        condition="${all[2]}"
        temperature=$(printf '%+.1f%s' ${all[3]} $scaleT)
        pressure=$(printf '%.f %s' ${all[4]} mb)
        temperature_min=$(printf '%+.1f%s' ${all[5]} $scaleT)
        temperature_max=$(printf '%+.1f%s' ${all[6]} $scaleT)
        cloud_cover=$(printf '%d%s' ${all[9]} %)
        sunrise=$(date -d @${all[10]} +"%R")
        sunset=$(date -d @${all[11]} +"%R")
        description="$weather_desc"
        winddir=$(printf '%3.f%s' ${all[8]} °)
        
        winddir=${all[8]}
        echo ${winddir%.*} > "$datafile"
        windspeed=$(echo ${all[7]}*1.9 | bc)
        windspeed=$(printf '%01.1f %s' "$windspeed" "kn")
        echo "$windspeed" >> "$datafile"
        echo "$sunrise" | sed 's/://' >> "$datafile"
        echo "$sunset" | sed 's/://'>> "$datafile"
        temp_degrees=$(printf '%.1f' ${all[3]})
        echo "$temp_degrees" >> "$datafile"
        echo "$city" >> "$datafile" 
        echo "$description" >> "$datafile"

    else
        placeholder 1
    fi
fi

exit

weather.lua

 
--[[ 
lua-weather.lua, written by <damo>, July 2016

---------------------------------------------
Use this in a conky with

    lua_load /path/to/lua-weather.lua
    lua_draw_hook_pre conky_main

In the conky, get the weather data from lua-weather.sh with

TEXT
${execi <interval> /path/to/lua-weather.sh}

---------------------------------------------]]

require 'cairo'

-- set default font
--fontface="Dustismo"
fontface="GE Inspira"

function conky_main()
    if conky_window==nil then return end
    cs=cairo_xlib_surface_create(conky_window.display,
                                        conky_window.drawable,
                                        conky_window.visual,
                                        conky_window.width,
                                        conky_window.height)
    cr=cairo_create(cs)
    
    xW=160      -- x pos wind dial centre
    yW=90       -- y pos wind dial centre
    radiusW=60  -- radiusW wind dial
    xT=30       -- x pos temp bar (top)
    yT=10       -- y pos temp bar (top)
    wT=6        -- width temp bar
    hT=150      -- height temp bar
    xSun=40    -- x pos sun dial centre
    ySun=90     -- y pos sun dial centre
    radiusSun=60-- radius sun dial
    datafile="/home/loutch/weather.txt"  -- textfile to hold lua-weather.sh output
    
    direction,windS,temperature,sunrise,sunset,loc,wx = get_vals() 
    
    local updates=conky_parse('${updates}')
    update_num=tonumber(updates)

-- Edit this for concentric dials ---------------------------------

    concentric = 0  --<-- Change to "1" to display concentric rings

    if ( concentric == 1 ) then
        xSun = 300
        ySun = 100
        radiusSun = 90
        xW = xSun
        yW = ySun
        radiusW = 0.7*radiusSun
    end
------------------------------------------------------------------------

    if update_num>1 then
        draw_widgets()
    end

    cairo_destroy(cr)
    cairo_surface_destroy(cs)
    cr=nil
end

--  Choose the widgets to be displayed:
function draw_widgets()
    draw_thermometer(cr,xT,yT,wT,hT)
    draw_wind_rose()
    draw_sun_ring()
end

-- read values from datafile
function get_vals()
    local path = datafile
    local file = io.open( path)
    local array = {}
    local i=0
    
    if (file) then
        -- read all contents of file into array
        for line in file:lines() do
            i=i+1
            array[i]=line
        end
        file:close()

        dir=tostring(array[1]) -- get wind direction, convert to value required
        winddir=-math.pi*(tonumber(dir))/180
        wind_speed=tostring(array[2])  -- windspeed knots
        temperature=tonumber(array[5])
        sunrise=array[3]
        sunset=array[4]
        location=array[6]
        weather=array[7]

        return winddir,wind_speed,temperature,sunrise,sunset,location,weather
    else
        print("datafile " .. datafile .. " not found")
    end
end

-- convert degree to rad 
function angle_to_position(start_angle, current_angle)
    local pos = start_angle + current_angle
    return pos * math.pi/180
end

function draw_sun_ring()
--    local hours=20
--    local mins=0
    
    local hours=os.date("%H")
    local mins=os.date("%M")
    current_time=(hours .. mins)

    mins_arc = 360/60*mins
    hours_arc = (360/24*hours + mins_arc/24) + 90
    
    start_angle = 90    -- south
    end_angle = 360
    start_arc = 0
    stop_arc = 0

    -- get times and angle position from function sun_rise_set()
    sunrise,sunset,sun_rise,sun_set = sun_rise_set()

    local border_pat=cairo_pattern_create_linear(xSun,ySun-radiusSun*1.25,xSun,ySun+radiusSun*1.25)
    
    cairo_pattern_add_color_stop_rgba(border_pat,0,1,1,0,0.3)
    cairo_pattern_add_color_stop_rgba(border_pat,0.4,0.9,0.9,0.2,0.2)
    cairo_pattern_add_color_stop_rgba(border_pat,0.55,0.9,0.2,0,0.2)
    cairo_pattern_add_color_stop_rgba(border_pat,0.7,0,0.1,1,0.3)
    cairo_set_source(cr,border_pat)
    -- draw ring, starting at south position ( = midnight/00hrs)
    cairo_arc(cr, xSun, ySun, radiusSun, angle_to_position(start_angle, 0), angle_to_position(start_angle, end_angle))
--  set width of ring
    cairo_set_line_width(cr,radiusSun*0.06)
    cairo_stroke(cr)
    cairo_pattern_destroy (pat)

    -- draw sun
    -- get position on circumference ( = time from midnight (south), 24hr clock)
    sun_pos=angle_to_position(start_angle,hours_arc)
    local sunx=xSun - (math.sin(-sun_pos)*radiusSun)
    local suny=ySun - (math.cos(-sun_pos)*radiusSun)
    -- set colour & alpha, for day/night
    if ( tonumber(current_time) > tonumber(sunrise) ) and ( tonumber(current_time) < tonumber(sunset) ) then
        r,g,b,a = 1,1,0,0.4 --day
    else
        r,g,b,a = 0.5,0.5,0.5,0.4 --night
    end
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_arc(cr,sunx,suny,radiusSun*0.09,0,360)
    cairo_fill(cr)
    
    local r,g,b,a = 1,1,0,0.5
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_set_line_width(cr,2)
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)

    -- draw sunrise mark
    local sunrise_x=xSun - (math.sin(-sun_rise)*radiusSun*1.05)
    local sunrise_y=ySun - (math.cos(-sun_rise)*radiusSun*1.05)
    local sunrise_xc=xSun - (math.sin(-sun_rise)*radiusSun*0.95)
    local sunrise_yc=ySun - (math.cos(-sun_rise)*radiusSun*0.95)
    cairo_move_to(cr,sunrise_x,sunrise_y)
    cairo_line_to(cr,sunrise_xc,sunrise_yc)
    cairo_stroke(cr)
    -- draw sunset mark
    local sunset_x=xSun - (math.sin(-sun_set)*radiusSun*1.05)
    local sunset_y=ySun - (math.cos(-sun_set)*radiusSun*1.05)
    local sunset_xc=xSun - (math.sin(-sun_set)*radiusSun*0.95)
    local sunset_yc=ySun - (math.cos(-sun_set)*radiusSun*0.95)
    local r,g,b,a = 1,0,0,0.5
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_move_to(cr,sunset_x,sunset_y)
    cairo_line_to(cr,sunset_xc,sunset_yc)
    cairo_stroke(cr)
--  print sunrise/sunset text
    sun_text(sunrise_x,sunrise_y,sunset_x,sunset_y)
end

function sun_text(xr,yr,xs,ys)
    -- display sunrise time
    local r,g,b,a = 1,1,0,0.5
    cairo_set_source_rgba (cr,r,g,b,a)
    print_text(cr,sunrise,xr-4,yr,4,10)
    print_text(cr,"sunrise",xr-4,yr+8,4,8)
    
    -- display sunset time
    local r,g,b,a = 1,0,0,0.5
    cairo_set_source_rgba (cr,r,g,b,a)
    print_text(cr,sunset,xs,ys+10,0,10)
    print_text(cr,"sunset",xs,ys+18,0,8)
    
--    print("concentric= " .. concentric)
    if ( concentric == 0 ) then
        -- display time
        local current_time = os.date("%H%M")
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.3
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
        cairo_set_font_size (cr,24)
        local xt,yt = position_text(cr,current_time,xSun,ySun-6,2)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,current_time)
        cairo_stroke (cr)
        
        -- display date
        local cal = os.date("%a %d %b")
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.3
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
        cairo_set_font_size (cr,12)
        local xt,yt = position_text(cr,cal,xSun,ySun+10,1)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,cal)
        cairo_stroke (cr)
        
    --  print location
        local fontface="Dustismo"
        local r,g,b,a = 1,1,1,0.4
        cairo_set_source_rgba (cr,r,g,b,a)
        cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
        cairo_set_font_size (cr,10)
        local xt,yt = position_text(cr,loc,xSun,ySun+25,1)
        cairo_move_to (cr,xt,yt)
        cairo_show_text (cr,loc)
        cairo_stroke (cr)
    else
        print_location_text(xSun,ySun+1.4*radiusSun)
    end

end

function print_location_text(x,y)
   -- display time
    local current_time = os.date("%H%M")
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.3
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,24)
    local xt,yt = position_text(cr,current_time,x,y,2)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,current_time)
    cairo_stroke (cr)
    
    -- display date
    local cal = os.date("%a %d %b")
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.3
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,12)
    local xt,yt = position_text(cr,cal,x,y+10,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,cal)
    cairo_stroke (cr)
    
--  print location
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.4
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr,10)
    local xt,yt = position_text(cr,loc,x,y+25,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,loc)
    cairo_stroke (cr)
end

function sun_rise_set()
    sunupH = string.sub(sunrise,1,2)
    sunupM = string.sub(sunrise,3,4)
    sundownH = string.sub(sunset,1,2)
    sundownM = string.sub(sunset,3,4)

    minSR_arc = 360/60*sunupM
    hourSR_arc = (360/24*sunupH + minSR_arc/24) + 90
    pos_SR = angle_to_position(start_angle,hourSR_arc)

    minSS_arc = 360/60*sundownM
    hourSS_arc = (360/24*sundownH + minSS_arc/24) + 90
    pos_SS = angle_to_position(start_angle,hourSS_arc)

    return sunrise,sunset,pos_SR,pos_SS
end

function draw_thermometer(cr,x,y,wT,hT)
    local alpha=0.5
    HT = y+hT
    pat = cairo_pattern_create_linear (x,y,wT,HT)
    cairo_pattern_add_color_stop_rgba (pat, 1,   0,  0, 1, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0.4, 1,0.8, 0, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0.3, 1,0.3, 0, alpha)
    cairo_pattern_add_color_stop_rgba (pat, 0, 1,0, 0, alpha)

    cairo_rectangle (cr, x,y,wT,HT)
    cairo_set_source (cr, pat)
    cairo_fill (cr)
    cairo_pattern_destroy (pat)

    draw_temperature(cr,x,y,hT,temperature)
end

function draw_temperature(cr,x,y,hT,Tdegrees)
    local range=hT/100
    local zero = y + range*60
    local T = Tdegrees*range
    t = tostring(Tdegrees)
    t = ( t .. "°C" )
    cairo_set_source_rgba (cr,1,1,1,0.5)
    cairo_set_line_width(cr,1)

    for i = 0,100,10 do -- draw 10 degree marks
        local l = 3
        local xT = x-1
        if ( i == 60 ) then -- longer mark for freezing point
            xT = x-6
            l = -12
        end
        cairo_move_to (cr,xT,y)
        cairo_rel_line_to (cr,-l,0)
        cairo_stroke (cr)
        y = y + range*10
    end

    cairo_set_source_rgba (cr,1,1,1,0.5)
    cairo_set_line_width(cr,3)
    cairo_set_line_cap(cr, CAIRO_LINE_CAP_ROUND)
    cairo_move_to(cr,x-1,zero-T)    -- temperature indicator
    cairo_rel_line_to(cr,10,0)

    -- temperature text
    print_text(cr,t,x+28,zero-T,1,10)
    -- zero degrees text
    print_text(cr,"0",x-12,zero,1,12)
end

function draw_wind_rose()
    draw_marks(cr,xW,yW,radiusW)
    draw_WindArrow(cr,xW,yW,50,direction,radiusW-8)
    draw_NESW(cr,xW,yW,radiusW,10)
    
--  print windspeed
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.4
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_BOLD)
    cairo_set_font_size (cr,16)
    local xt,yt = position_text(cr,windS,xW,yW,2)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,windS)
    cairo_stroke (cr)

--  print weather conditions
    local fontface="Dustismo"
    local r,g,b,a = 1,1,1,0.4
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_select_font_face(cr,fontface,CAIRO_FONT_SLANT_NORMAL,CAIRO_FONT_WEIGHT_NORMAL)
    cairo_set_font_size (cr,10)
    local xt,yt = position_text(cr,wx,xW,yW+10,1)
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,wx)
    cairo_stroke (cr)
end

function draw_WindArrow(cr,x, y, length, bearing,radiusW)
    -- startpoint x, startpoint y, length of side, compass bearing
    local head_ratio = 1.05 -- ratio of side to overall length
    local head_angle = 0.02 -- proportion 0 - 0.5 (straight, at right angle to direction)
    
    local x1=x- (math.sin(bearing)*radiusW)
    local y1=y- (math.cos(bearing)*radiusW)
    --arrow body
    local angle = bearing
    local x0 = x1 + (math.sin(angle) * length)
    local y0 = y1 + (math.cos(angle) * length)
    local xtext = x1 + (math.sin(angle) * 0.25*length)
    local ytext = y1 + (math.cos(angle) * 0.25*length)

    --arrow head left
    angle = bearing - (head_angle * math.pi)
    x2 = x0 - (math.sin(angle) * length * head_ratio)
    y2 = y0 - (math.cos(angle) * length * head_ratio)

    --arrow head right
    angle = bearing + (head_angle * math.pi)
    x3 = x0 - (math.sin(angle) * length * head_ratio)
    y3 = y0 - (math.cos(angle) * length * head_ratio)
    
    start_x=(x0+x2+x3)/3
    start_y=(y0+y2+y3)/3
    
    cairo_set_source_rgba (cr,1,1,1,0.5)
    cairo_move_to (cr,start_x,start_y)
    cairo_line_to (cr,x2,y2)
    cairo_line_to (cr,x1,y1) 
    cairo_line_to (cr,x3,y3) 
    cairo_close_path (cr)
    cairo_fill(cr)
    cairo_stroke (cr)
    
    return true
end

--  display compass points
function draw_NESW(cr,x,y,rt,font_size)
    local compass={0,90,180,270}
    local cpoints={"N","E","S","W"}
    radiusW=rt+12
    
    for i = 1,4,1 do
        compass_point=-math.pi*(tonumber(compass[i]))/180
        local x1=x - (math.sin(compass_point)*radiusW)
        local y1=y - (math.cos(compass_point)*radiusW)
        local t = cpoints[i]
        print_text(cr,t,x1,y1,1,font_size)
    end
end

--  draw compass rose graduations
function draw_marks(cr,x,y,r)
    local angle=0
    local inner=r-2
    local outer=r+2

    local r,g,b,a=1,1,1,0.5
    cairo_set_source_rgba (cr,r,g,b,a)
    cairo_set_line_width(cr, 1)

    for i = 0,36,1 do   -- draw small ticks, every 10 deg
        compass_arc=(-2*math.pi/360)*angle
        local x0 = x - (math.sin(compass_arc) * inner)
        local y0 = y - (math.cos(compass_arc) * inner)
        local endx = x - (math.sin(compass_arc) * outer)
        local endy = y - (math.cos(compass_arc) * outer)
        
        if ( (i/3) - math.floor(i/3) ~= 0 ) then -- don't draw every third tick
            cairo_move_to (cr,x0,y0)
            cairo_line_to(cr,endx,endy)
            cairo_stroke(cr)
        end
        angle=angle+10
    end
    
    angle=0 -- re-set angle
    
    for i = 0,12,1 do       -- draw large ticks, every 30 deg
        compass_arc=(-2*math.pi/360)*angle
        x0 = x - (math.sin(compass_arc) * (inner-5))
        y0 = y - (math.cos(compass_arc) * (inner-5))
        endx = x - (math.sin(compass_arc) * outer)
        endy = y - (math.cos(compass_arc) * outer)
        
        cairo_move_to (cr,x0,y0)
        cairo_line_to(cr,endx,endy)
        cairo_stroke(cr)
        angle=angle+30
    end
end

function print_text(cr,t,xT,yT,posT,font_size)
--  align text, using text area extents
    -- posT:        0 = none
    --              1 = align both
    --              2 = horizontal
    --              3 = vertical
    --              4 = left
    cairo_set_font_size (cr,font_size)
    if ( posT == 0 ) then
        xt = xT
        yt = yT
    else
        xt,yt = position_text(cr,t,xT,yT,posT)
    end
    cairo_move_to (cr,xt,yt)
    cairo_show_text (cr,t)
    cairo_stroke (cr)
end

function position_text(cr,t,text_x,text_y,pos)
    -- adjust text position
    -- get text area (x_bearing,y_bearing,width,height,x_advance,y_advance)
    te=cairo_text_extents_t:create()
    cairo_text_extents(cr,t,te)
    xtext = text_x
    ytext = text_y
    
    if ( pos == 1 ) then    -- centre text
        xtext = text_x - te.width/2
        ytext = text_y + te.height/2
    elseif ( pos == 2 ) then    -- horizontal align
        xtext = text_x - te.width/2
    elseif ( pos == 3 ) then    -- vertical align
        ytext = text_y + te.height/2
    elseif ( pos == 4 ) then    -- set right edge of text to pos
        xtext = text_x - te.width
    end

    return xtext,ytext
end
EDIT:  some code corrections

Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#9 2016-07-05 19:05:47

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

@loutch

[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: llua_load: /home/loutch/2b_Wunderground_API/scripts/lua-weather.lua:514: function arguments expected near 'code'

Look at the last line of the lua-weather.lua script (line #514). You have copied & pasted extra text from the post! Remove this...

EDIT:  some code corrections

Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#10 2016-07-05 19:38:02

Sector11
Conky 1.9er Mod Squid
From: Upstairs
Registered: 2015-08-20
Posts: 6,049

Re: openweathermap and wunderground weather

^  I caught that and it's not in the lua.weather.lua script here, but it's still not working.

I have:

/home/sector11/2b_Wunderground_API/loutch.weather.conky
/home/sector11/2b_Wunderground_API/scripts/lua-weather.lua
/home/sector11/2b_Wunderground_API/scripts/lua-weather.sh
/home/sector11/weather.txt - remains at 0 bytes

It's still not working.  The conky does not call any of Teo's work, the lua-weather.sh and lua-weather.lua are or see to be OK.

But loutch's conky does not work and mine does.

Which set of lines is correct:
Loutch has which doesn't work:

    direction,windS,temperature,sunrise,sunset,loc,wx = get_vals()

    local updates=conky_parse('${updates}')
    update_num=tonumber(updates)

-- Edit this for concentric dials ---------------------------------

    concentric = 0  --<-- Change to "1" to display concentric rings

    if ( concentric == 1 ) then
        xSun = 300
        ySun = 100
        radiusSun = 90
        xW = xSun
        yW = ySun
        radiusW = 0.7*radiusSun
    end
------------------------------------------------------------------------

I have these that works:

    direction,windS,temperature,sunrise,sunset,loc,wx = get_vals()
    concentric = 0

    local updates=conky_parse('${updates}')
    update_num=tonumber(updates)

-- Uncomment this for concentric dials ---------------------------------

    concentric = 1
    xSun = 300
    ySun = 100
    radiusSun = 90
    xW = xSun
    yW = ySun
    radiusW = 0.7*radiusSun

------------------------------------------------------------------------

For the life of me I cannot see why loutch's doesn't work, it's only a matter of being in a different directory structure.

loutch conky:

 lua_load ~/2b_Wunderground_API/scripts/lua-weather.lua
    lua_draw_hook_pre conky_main


TEXT

${execi 300 /home/sectot11/2b_Wunderground_API/scripts/lua-weather.sh}

/home/sectot11/2b_Wunderground_API/scripts/lua-weather.sh

datafile="/home/sector11/weather.txt"

/home/sector11/2b_Wunderground_API/scripts/lua-weather.lua

    datafile="/home/sector11/weather.txt"  -- textfile to hold lua-weather.sh output

2016_07_05_16_48_25_Scrot11.jpg


The sun will never set if you keep walking towards it. - my son
Being positive doesn't understand physics.

Online

#11 2016-07-05 19:58:03

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

@Sector11: those lines are from the earlier version - @loutch is using the edit I made (code is neater, and doesn't need commenting/uncommenting). Both versions are working fine for me - they are interchangeable.

Is this the right path?

${execi 300 /home/sectot11/2b_Wunderground_API/scripts/lua-weather.sh}

...or is there a "Sectot11" hiding in your house somewhere?


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#12 2016-07-05 20:00:25

hhh
Meep!
Registered: 2015-09-17
Posts: 9,309
Website

Re: openweathermap and wunderground weather

damo wrote:

...or is there a "Sectot11" hiding in your house somewhere?

Cheeky bugger. tongue Tie score.

Online

#13 2016-07-05 20:04:08

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

^ For the benefit of confused readers, this is a reference to some private one-upmanship going on big_smile


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#14 2016-07-05 22:07:02

Sector11
Conky 1.9er Mod Squid
From: Upstairs
Registered: 2015-08-20
Posts: 6,049

Re: openweathermap and wunderground weather

damo wrote:

...or is there a "Sectot11" hiding in your house somewhere?

WHERE'S MY !what_I_meant_to_type.deb"  I want it NOW!!!!!

cry cry cry   Fixed and the conky is working just fine.


The sun will never set if you keep walking towards it. - my son
Being positive doesn't understand physics.

Online

#15 2016-07-06 06:52:48

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

Guys tanks for helping

Sorry i had not seen this line . Here I removed it and now i have a column of color in conky.

konsole give me this

[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: forked to background, pid is 8151
[loutch@localhost ~]$ 
Conky: desktop window (240028b) is subwindow of root window (34c)
Conky: window type - normal
Conky: drawing to created window (0x4400003)
Conky: drawing to double buffer
(23) Failed writing body
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:320: attempt to perform arithmetic on local 'Tdegrees' (a nil value)

1467789788.png

Last edited by loutch (2016-07-06 07:23:11)


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#16 2016-07-06 10:39:38

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

@loutch

I notice that your weather.txt datafile is using "comma" instead of "fullstop" as the decimal indicator. I just tried it and I get

Conky: llua_do_call: function conky_main execution failed: /home/damo/.config/conky/LUA/lua-weather.lua:346: attempt to perform arithmetic on local 'Tdegrees' (a nil value)

Is the weather data the output from the script, or did you manually create it?

Last edited by damo (2016-07-06 10:50:18)


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#17 2016-07-06 21:01:08

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

@ damo

the weather data is the output from the script .


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#18 2016-07-06 21:11:40

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

loutch wrote:

@ damo

the weather data is the output from the script .

In that case it sounds like your system location setting is formatting it. You could use a sed command in lua-weather.sh to change the "," (comma) to "." (fullstop/dot)  and then write the data to the text file.

Try this in lua-weather.sh...

        echo "$windspeed" | sed 's/,/./' >> "$datafile"

Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#19 2016-07-07 08:00:16

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

Good morning

the data file before changing

null
0,0 kn
0536
2136
0,0
Sarreguemines
clear sky

with the change in weather.sh

null
0.0 kn
0536
2136
0,0
Sarreguemines
clear sky

konsole

[loutch@localhost ~]$ conky -c ~/2b_Wunderground_API/conkyrc1
Conky: forked to background, pid is 12815
[loutch@localhost ~]$ 
Conky: desktop window (240028b) is subwindow of root window (34c)
Conky: window type - normal
Conky: drawing to created window (0x5a00003)
Conky: drawing to double buffer
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 100 : printf: 7.07: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 101 : printf: 49.11: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 103 : printf: 16.66: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 105 : printf: 13.33: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 106 : printf: 20.56: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 111 : printf: null: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 116 : printf: 1.9: nombre non valable
/home/loutch/2b_Wunderground_API/scripts/lua-weather.sh: ligne 120 : printf: 16.66: nombre non valable
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:96: attempt to perform arithmetic on a nil value
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:96: attempt to perform arithmetic on a nil value
Conky: llua_do_call: function conky_main execution failed: ...e/loutch/2b_Wunderground_API/scripts/lua-weather.lua:96: attempt to perform arithmetic on a nil value
Conky: llua_do_call: function conky_main execution failed: ...e/lout

With the change in the script the column in color disappeared

Last edited by loutch (2016-07-07 08:05:18)


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#20 2016-07-07 08:08:26

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

If it is too much to complicate we leave fallen, maybe that on Mageia something is missing so that it don't works out of the box


@+


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#21 2016-07-07 08:39:07

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

loutch wrote:

If it is too much to complicate we leave fallen, maybe that on Mageia something is missing so that it don't works out of the box

No - you still have incorrect formatting AND wind direction is 'null' -  openweathermap wind direction has not been downloaded (this occasionally seems to happen with some weather stations).

1) Yesterday I put an error check in the script for the wind data, so use the new 'get_vals( )' function...https://forums.bunsenlabs.org/viewtopic … 585#p31585

2) Comment out the '${execi....}' line in the conkyrc, so you can investigate the weather.txt formatting. Change the "," to ".", as I already told you, and use an arbitrary wind direction. The file should now read

180
0.0 kn
0536
2136
0.0
Sarreguemines
clear sky

3) Restart the conky, and see if it displays OK. If so, uncomment the ${execi} line and try again.

If you are using the new get_vals( ) function, then even if wind direction = null, it should still load, but with "No wind data" displayed. At some time the data will come through again, but you can test by using another station with...

${execi 300 ~/2b_Wunderground_API/scripts/lua-weather.sh paris}

4) I don't yet know how to deal with your French-style decimal for the temperature data, so you will have to investigate that yourself.

4) Add this at the start of 'weather.sh', to enable the correct output:

LANG=en_GB.UTF-8

Last edited by damo (2016-07-07 14:33:52)


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#22 2016-07-07 19:33:22

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

Hello damo

i used your modification and the conky  work great for the moment and there is no errors in konsole.


1467919744.png

1467920298.png

i permice myself to modifie a little bit the weather.lua to have much colors in conky i change al "0.4" to "1", i call the script with this:

${execi 3600 ~/2b_Wunderground_API/scripts/lua-weather.sh 2975964}

I have just a question:

is that possible to convert kn in kms?

thanks

Last edited by loutch (2016-07-07 19:38:16)


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#23 2016-07-07 19:54:50

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

Glad you have it sorted out smile

loutch wrote:

...
I have just a question:

is that possible to convert kn in kms?

thanks

openweather provides the metric speed in metres/second, so just change the multiply factor, and change "kn" to "kph",  in lua-weather.sh:

        windspeed=$(echo ${all[7]}*1.9 | bc)
        windspeed=$(printf '%01.1f %s' "$windspeed" "kn")

(m/s)*1.9 -> knots

Work it out yourself for km/hr tongue


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

#24 2016-07-07 20:10:27

loutch
Member
Registered: 2015-12-12
Posts: 393

Re: openweathermap and wunderground weather

Thanks you for helping and

GREAT WORK


Linuxmint 19.1 Tessa cinnamon & mageia 7 mate on ssd hp pavilion g7
Xubuntu 18.04 lts & 19.04 xfce on ASUS Rog STRIX

Offline

#25 2016-07-07 20:19:16

damo
....moderator....
Registered: 2015-08-20
Posts: 5,835

Re: openweathermap and wunderground weather

loutch wrote:

Thanks you for helping and

GREAT WORK

angel  smile


Be Excellent to Each Other...
The Bunsenlabs Lithium Desktop » Here
FORUM RULES and posting guidelines «» Help page for forum post formatting
Artwork on DeviantArt  «» BunsenLabs on DeviantArt

Online

Board footer

Powered by FluxBB