Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1751 Le 29/12/2012, à 11:17

Christophe C

Re : [Conky] Alternative à weather.com (2)

Bonjour,

je reconnais que je n'ai pas le courage de lire les 70 pages, mais comment faire marcher le script météo proprement dit ? Je ne parle pas de le lancer, j'ai créé un lanceur dans .autostart (je suis sous xubuntu 12.04.1 voyager). Je parle de définir la ville.

J'ai essayer de saisir des noms de ville dans la zone idoine, genre :

##### ville #####
${voffset -10}${goto 5}${color ffe595}${template1 lyon}

Mais rien.

En fait il manque quelques lignes sur la 1er pages (ou un fichier d'aide dans le pack) pour expliquer :
- où on met le pack,
- comment on lance le script
- comment on définit la ville

Pour les points 1 et 2 je connaissais, mais pour le point 3...

Dernière modification par Christophe C (Le 29/12/2012, à 11:20)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#1752 Le 29/12/2012, à 12:24

Didier-T

Re : [Conky] Alternative à weather.com (2)

Christophe C a écrit :

Bonjour,

je reconnais que je n'ai pas le courage de lire les 70 pages, mais comment faire marcher le script météo proprement dit ? Je ne parle pas de le lancer, j'ai créé un lanceur dans .autostart (je suis sous xubuntu 12.04.1 voyager). Je parle de définir la ville.

J'ai essayer de saisir des noms de ville dans la zone idoine, genre :

##### ville #####
${voffset -10}${goto 5}${color ffe595}${template1 lyon}

Mais rien.

En fait il manque quelques lignes sur la 1er pages (ou un fichier d'aide dans le pack) pour expliquer :
- où on met le pack,
- comment on lance le script
- comment on définit la ville

Pour les points 1 et 2 je connaissais, mais pour le point 3...

pour définir la ville il faut modifier meteo.cfg

Je te laisse regarder, si tu as des questions n'hésite pas.

Hors ligne

#1753 Le 29/12/2012, à 21:20

Didier-T

Re : [Conky] Alternative à weather.com (2)

@ tous,

la remarque de Christophe C étant plus que justifier (concernant le fichier d'aide), j'ai créé un fichier lisez-moi en PDF, que vous trouverez aussi en page de garde.

Bien entendu, si vous trouvez le moindre soucis n'hésitez pas a le dire. tongue

Hors ligne

#1754 Le 30/12/2012, à 11:44

Christophe C

Re : [Conky] Alternative à weather.com (2)

En fait, ce pdf est la reprise de lisez-moi. Txt, que j'avais lu. Simplement, je n'ai pas compris a quoi il servait.

J'ai les notions de base sur les conky, mais là je sèche. A quoi sert le pdf, exactement ? C'est juste un descriptif du contenu des fichiers ?

comme indiqué, il faudrait quelques lignes au début du pdf : où installer le répertoire  (Dans .config, je suppose) ; comment lancer le script ; comment configurer la ville ; et a quoi sert la suite du pdf.

Sinon, les copies écran me font saliver : je test météo.cfg. Et merci pour ton travail !

Dernière modification par Christophe C (Le 30/12/2012, à 11:45)


BountySource - Faite un petit don, ponctuel ou récurent, pour soutenir le développement de XFCE.
Timeshift - Sécurité : pensez à paramétrer des points de restauration système.
Euclide : « Ce qui est affirmé sans preuve peut être nié sans preuve ».

Hors ligne

#1755 Le 30/12/2012, à 16:13

Didier-T

Re : [Conky] Alternative à weather.com (2)

En fait il n'y a pas de répertoires à respecter pour l'installation du script (les chemins sont gérés par meteo.cfg, et dans le conky).

J'ai créer le PDF pour simplifier l'accès aux informations, de plus j'y ai ajouter la section sur le meteo.cfg.
L’intérêt de ce fichier est de donner l'accès aux infos pour utiliser meteo.lua, mais de toute évidence, il n'est pas bien fait, le soucis c'est que je ne suis pas très doué pour expliquer les choses, je ne suis donc pas certain de pouvoir faire beaucoup mieux.

Hors ligne

#1756 Le 01/01/2013, à 12:39

daniel38100

Re : [Conky] Alternative à weather.com (2)

bonjour et bonne année a tous

je voudrais savoir si les prévisions huitHeure sont géré par images_meteo.lua


voici mon retour terminal

daniel@daniel-Pavilion-dv8000-EK774EA-ABF:~$ sh conky/meteo-mode-fondecran.sh 
Conky: forked to background, pid is 15485
daniel@daniel-Pavilion-dv8000-EK774EA-ABF:~$ 
Conky: desktop window (1600003) is subwindow of root window (150)
Conky: window type - override
Conky: drawing to created window (0x2e00001)
Conky: drawing to double buffer
	version = v4.9b
	web = http://www.accuweather.com/fr/fr/grenoble/136555/weather-forecast/136555
	Pévision Nb jours = 15
	Pévision Matin = oui
	Pévision Après Midi = oui
	Pévision Soirée = oui
	Pévision Nuit = oui
	Prévision sur 8 heures = oui
	Délais = 600
	Chemin de travail = /tmp
	Palier = 10
	Chemin de sauvegarde = /home/daniel/conky/Meteo-Lua/sauvegardes
Condition courante Ok
Prévision 1 Ok
Prévision 2 Ok
Prévision 3 Ok
Prévision 4 Ok
Prévision 5 Ok
Prévision 6 Ok
Prévision 7 Ok
Prévision 8 Ok
Prévision 9 Ok
Prévision 10 Ok
Prévision 11 Ok
Prévision 12 Ok
Prévision 13 Ok
Prévision 14 Ok
Prévision 15 Ok
Matin 1 Ok
Matin 2 Ok
Matin 3 Ok
Matin 4 Ok
Matin 5 Ok
Matin 6 Ok
Matin 7 Ok
Matin 8 Ok
Matin 9 Ok
Matin 10 Ok
Matin 11 Ok
Matin 12 Ok
Matin 13 Ok
Matin 14 Ok
Matin 15 Ok
Apres Midi 1 Ok
Apres Midi 2 Ok
Apres Midi 3 Ok
Apres Midi 4 Ok
Apres Midi 5 Ok
Apres Midi 6 Ok
Apres Midi 7 Ok
Apres Midi 8 Ok
Apres Midi 9 Ok
Apres Midi 10 Ok
Apres Midi 11 Ok
Apres Midi 12 Ok
Apres Midi 13 Ok
Apres Midi 14 Ok
Apres Midi 15 Ok
Soiree 1 Ok
Soiree 2 Ok
Soiree 3 Ok
Soiree 4 Ok
Soiree 5 Ok
Soiree 6 Ok
Soiree 7 Ok
Soiree 8 Ok
Soiree 9 Ok
Soiree 10 Ok
Soiree 11 Ok
Soiree 12 Ok
Soiree 13 Ok
Soiree 14 Ok
Soiree 15 Ok
Nuit 1 Ok
Nuit 2 Ok
Nuit 3 Ok
Nuit 4 Ok
Nuit 5 Ok
Nuit 6 Ok
Nuit 7 Ok
Nuit 8 Ok
Nuit 9 Ok
Nuit 10 Ok
Nuit 11 Ok
Nuit 12 Ok
Nuit 13 Ok
Nuit 14 Ok
Nuit 15 Ok
Huit prochaines heures Ok
lunaison Ok
44 seconde(s)
	Mode = fondecran
Conky: llua_do_call: function conky_Meteo_huitHeures_IconeV execution failed: /home/daniel/conky/Meteo-Lua/scripts/meteo.lua:2033: attempt to index field '?' (a nil value)

Dernière modification par daniel38100 (Le 01/01/2013, à 12:42)

Hors ligne

#1757 Le 01/01/2013, à 12:54

Didier-T

Re : [Conky] Alternative à weather.com (2)

@ daniel38100,
normalement oui.
il faudrait que je vérifi le code.

Hors ligne

#1758 Le 01/01/2013, à 16:37

jpdipsy

Re : [Conky] Alternative à weather.com (2)

Bonne et heureuse année à toutes,tous


Didier-T a écrit :

@ daniel38100,
normalement oui.
il faudrait que je vérifi le code.

T'as pas fini d'enfiler ton costume de lutin je crois bien que non  wink

Hors ligne

#1759 Le 01/01/2013, à 17:27

daniel38100

Re : [Conky] Alternative à weather.com (2)

jpdipsy a écrit :

Bonne et heureuse année à toutes,tous


Didier-T a écrit :

@ daniel38100,
normalement oui.
il faudrait que je vérifi le code.

T'as pas fini d'enfiler ton costume de lutin je crois bien que non  wink

chui a la rue donc
ca viendra un jour j'espere

Dernière modification par daniel38100 (Le 01/01/2013, à 17:28)

Hors ligne

#1760 Le 02/01/2013, à 12:39

daniel38100

Re : [Conky] Alternative à weather.com (2)

je vai me mettre au lua il serai grand temps !!

Hors ligne

#1761 Le 02/01/2013, à 19:22

daniel38100

Re : [Conky] Alternative à weather.com (2)

j'ai deja afficher les icones de vent mais pour les les icone de condition je seche pour l'instant

si quelqu'un pourrai m'aider ?

1357150770.png

le image_meteo.lua que j'ai commencer a modifier

-- Créé par Didier-T (forum.ubuntu-fr.org), pour jpdipsy
-- Nécessite imagemagick http://apt.ubuntu.com/p/imagemagick



require "io"
require "os"


local Version = "v2.3c"
local conditionJour = {}
local conditionNuit = {}
local conditionMatin = {}
local conditionAM = {}
local conditionSoiree = {}
local conditionNoct = {}
local InfoJour = {}
local conditioncourante = {}
local huitHeures = {}
local Thermometre = {}
local ThermometresRond = {}
local init_thermo = {}
local init_thermo_res = {}
local init_rose = {}
local init_rose_raf = {}
local lunaison = {}
local Barometre = {}
local Rep, cmd, jours, matin, apresmidi, soiree, nuit, delais, r, repsauv, l, Rep_Therm, Rep_Rose, Palier, t1, MAJHold, maj1, Nb_Thermo, Rep_Lune, Rep_Barometre, Rep_ThermRond, Nb_ThermRond, palier1, palier2, palier3, palier4, mise_en_page,  fich_creationmodule
local boucle, imagecfg,meteocfg
boucle = tonumber("0")

-- Création rose des vent par jpdipsy
function Rose(i, dp, v, nom, taille, opacite)
    local angle, couleur, f ,couleurfont
    local vitesse = "'"..v.." km/h'"
    
    if v ~= nil then
        f = tonumber(v)
    else
        f = 0
    end
    
    if f <= Palier then
        couleur = palier1
        couleurfont = palier1coulfont
    elseif f <= Palier*2 then
        couleur = palier2
        couleurfont = palier2coulfont
    elseif f <= Palier*3 then
        couleur = palier3
        couleurfont = palier3coulfont
    elseif f >= (Palier*3)+1 then
        couleur = palier4
        couleurfont = palier4coulfont
    end


    if i == "Calme" then
        angle = nil
    elseif i == "N" then
        angle = 0
    elseif i == "NNE" then
        angle = 22.5
    elseif i == "NE" then
        angle = 45
    elseif i == "ENE" then
        angle = 67.5
    elseif i == "E" then
        angle = 90
    elseif i == "ESE" then
        angle = 112.5
    elseif i == "SE" then
        angle = 135
    elseif i == "SSE" then
        angle = 157.5
    elseif i == "S" then
        angle = 180
    elseif i == "SSO" then
        angle = 202.5
    elseif i == "SO" then
        angle = 225
    elseif i == "OSO" then
        angle = 247.5
    elseif i == "O" then
        angle = 270
    elseif i == "ONO" then
        angle = 292.5
    elseif i == "NO" then
        angle = 315
    elseif i == "NNO" then
        angle = 337.5
    else
        angle = nil
    end

    if angle ~= nil then

       os.execute(' convert -background transparent '..Rep_Rose..'/'..couleur..' -rotate '..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
   --os.execute(' convert -background transparent '..Rep_Rose..'/Calme.png -rotate -'..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/'..couleur..' '..Rep..'/'..nom..'.png')
    else
        os.execute(' composite -compose Over  -gravity Center '..Rep_Rose..'/Calme.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
    end
    os.execute(' convert '..Rep..'/'..nom..'.png -font '..repfonts..'/AlteHaasGroteskBold.ttf   -fill '..couleurfont..' -pointsize 40 -gravity center -annotate +0+0 '..vitesse..' '..Rep..'/'..nom..'.png && mogrify -resize '..taille..'! '..Rep..'/'..nom..'.png && composite -blend 0x'..opacite..' null: '..Rep..'/'..nom..'.png -matte '..Rep..'/'..nom..'.png')
		os.execute('chmod -R o+rw- '..Rep)
		
end

-- Récupération des infos à afficher
function Recup(info)
    local num = info:match("%d+")
    if num ~= nil then
        info = string.gsub(info, num, "")
        num = tonumber(num)
    end
    info = string.gsub(info, " ", "")

    
    if info == "TempRes" then
        T1 =  conditioncourante.Tempr
    elseif info == "TempAct" then
        T1 =  conditioncourante.Temp
    elseif info == "Rose" then
        T1 =  conditioncourante.PointRosee
    elseif info == "Pression" then
        T1 =  conditioncourante.Pression
    elseif info == "Jour_Temp" then
        T1 =  conditionJour[num].Temp
    elseif info == "Jour_TempRes" then
        T1 =  conditionJour[num].TempRes
    elseif info == "Nuit_Temp" then
        T1 =  conditionNuit[num].Temp
    elseif info == "Nuit_TempRes" then
        T1 =  conditionNuit[num].TempRes
    elseif info == "Histo_Max" then
        T1 =  InfoJour[num].Histo_Max
    elseif info == "Histo_Min" then
        T1 =  InfoJour[num].Histo_Min
    elseif info == "Matin_TempMax" then
        T1 =  conditionMatin[num].TempMax
    elseif info == "Matin_TempMin" then
        T1 =  conditionMatin[num].TempMin
    elseif info == "Matin_TempMaxRes" then
        T1 =  conditionMatin[num].TempMaxR
    elseif info == "Matin_TempMinRes" then
        T1 =  conditionMatin[num].TempMinR
    elseif info == "Matin_Rose" then
        T1 =  conditionMatin[num].PointRosee
    elseif info == "AM_TempMax" then
        T1 =  conditionAM[num].TempMax
    elseif info == "AM_TempMin" then
        T1 =  conditionAM[num].TempMin
    elseif info == "AM_TempMaxRes" then
        T1 =  conditionAM[num].TempMaxR
    elseif info == "AM_TempMinRes" then
        T1 =  conditionAM[num].TempMinR
    elseif info == "AM_Rose" then
        T1 =  conditionAM[num].PointRosee
    elseif info == "Soiree_TempMax" then
        T1 =  conditionSoiree[num].TempMax
    elseif info == "Soiree_TempMin" then
        T1 =  conditionSoiree[num].TempMin
    elseif info == "Soiree_TempMaxRes" then
        T1 =  conditionSoiree[num].TempMaxR
    elseif info == "Soiree_TempMinRes" then
        T1 =  conditionSoiree[num].TempMinR
    elseif info == "Soiree_Rose" then
        T1 =  conditionSoiree[num].PointRosee
    elseif info == "Noct_TempMax" then
        T1 =  conditionNoct[num].TempMax
    elseif info == "Noct_TempMin" then
        T1 =  conditionNoct[num].TempMin
    elseif info == "Noct_TempMaxRes" then
        T1 =  conditionNoct[num].TempMaxR
    elseif info == "Noct_TempMinRes" then
        T1 =  conditionNoct[num].TempMinR
    elseif info == "Noct_Rose" then
        T1 =  conditionNoct[num].PointRosee
    elseif info == "huitHeure_TempMax" then
        T1 =  huitHeures[num].TempMax
    elseif info == "huitHeure_TempMin" then
        T1 =  huitHeures[num].TempMin
    elseif info == "huitHeure_TempMaxRes" then
        T1 =  huitHeures[num].TempMaxR
    elseif info == "huitHeure_TempMinRes" then
        T1 =  huitHeures[num].TempMinR
    elseif info == "huitHeure_Rose" then
        T1 =  huitHeures[num].PointRosee

    end
    
    T1 = tonumber(T1)
    if T1 <= -30 then
        T1 = -30
    elseif T1 >= 50 then
        T1 = 50
    end

    return T1
    
end


-- Création thermomètre par jpdipsy
function CreaThermometre(TherNb)

    local NbPlot
    local Tbase = Thermometre[TherNb].base
    local Alcool = Thermometre[TherNb].mercure
    Alcool = string.gsub(Alcool, " ", "")
    local InfoAlcool = Recup(Thermometre[TherNb].mercure_info)
    local Plot = {}
    local InfoPlot = {}
    
    if Thermometre[TherNb].plot ~= "" then
        local PlotCherche = Thermometre[TherNb].plot
        PlotCherche = string.gsub(PlotCherche, " ", "")
        local InfoPlotCherche = Thermometre[TherNb].plot_info

        local pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(PlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1, pos2-1)
            else
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1)
            end
            pos1 = pos2
        end
    
        pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(InfoPlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1, pos2-1))
            else
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1))
            end
            pos1 = pos2
        end
    end    
    

    if InfoAlcool > -30 then
      local T1 = (InfoAlcool*5)+150
      os.execute( "convert "..Rep_Therm.."/"..Alcool.." -resize 20x"..T1.."! "..Rep.."/colonne.png  && composite -compose Over -geometry -0+108 -gravity South "..Rep.."/colonne.png "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    else
        os.execute( "cp "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    end

    if NbPlot ~= nil then
        for i = 1, NbPlot do
            T2 = InfoPlot[i]
            local pos_T2 = (T2*5) +258
            os.execute("composite -compose Over  -geometry -0+"..pos_T2.."  -gravity South   "..Rep_Therm.."/"..Plot[i].." "..Rep.."/Thermo"..TherNb..".png  "..Rep.."/Thermo"..TherNb..".png")
        end
    end
    os.execute('mogrify -resize '..Thermometre[TherNb].taille..'! '..Rep..'/Thermo'..TherNb..'.png && composite -blend 0x'..Thermometre[TherNb].opacite..' null: '..Rep..'/Thermo'..TherNb..'.png -matte '..Rep..'/Thermo'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end


function CreaThermometreRond(TherNb)
    local val
    os.execute(' cp '..Rep_ThermRond..'/base.png '..Rep..'/Thermorond'..TherNb..'.png')
    
    if ThermometresRond[TherNb].bleu ~= nil then
        val = Recup(ThermometresRond[TherNb].bleu)
        val = string.gsub(val, " ", "")
        cree("ind-bleu", val, TherNb)
    end
    if ThermometresRond[TherNb].rouge ~= nil then
        val = Recup(ThermometresRond[TherNb].rouge)
        val = string.gsub(val, " ", "")
        cree("ind-rouge", val, TherNb)
    end
    if ThermometresRond[TherNb].vert ~= nil then
        val = Recup(ThermometresRond[TherNb].vert)
        val = string.gsub(val, " ", "")
        cree("ind-vert", val, TherNb)
    end
    if ThermometresRond[TherNb].jaune ~= nil then
        val = Recup(ThermometresRond[TherNb].jaune)
        val = string.gsub(val, " ", "")
        cree("ind-jaune", val, TherNb)
    end
   if ThermometresRond[TherNb].blanc ~= nil then
        val = Recup(ThermometresRond[TherNb].blanc)
        val = string.gsub(val, " ", "")
        cree("ind-blanc", val, TherNb)
    end

    if ThermometresRond[TherNb].aiguille ~= nil then
        val = Recup(ThermometresRond[TherNb].aiguille)
        val = string.gsub(val, " ", "")
        cree("aiguille", val, TherNb)
    end
    os.execute('mogrify -resize '..ThermometresRond[TherNb].taille..'! '..Rep..'/Thermorond'..TherNb..'.png && composite -blend 0x'..ThermometresRond[TherNb].opacite..' null: '..Rep..'/Thermorond'..TherNb..'.png -matte '..Rep..'/Thermorond'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end

function cree(aiguille, angle, TherNb)
    angle = (angle*4)-40
    os.execute(' convert -background transparent '..Rep_ThermRond..'/'..aiguille..'.png -rotate '..angle..' '..Rep..'/direction_rot.png && composite -compose Over  -gravity Center '..Rep..'/direction_rot.png '..Rep..'/Thermorond'..TherNb..'.png '..Rep..'/Thermorond'..TherNb..'.png')
		
end


function lune()
    
    local j, h, m = Age:match("(%d+) Jours (%d+)h (%d+)m")
    if j == nil then
        j, h, m = Age:match("(%d+) Jour (%d+)h (%d+)m")
        if j == nil then
            h, m = Age:match("(%d+)h (%d+)m")
            j = 0
        end
    end
    
    local angle = ((360/42524)*((((j*24)+h)*60)+m))+180

    os.execute(' convert -background transparent '..Rep_Lune..'/indicateur.png -rotate '..angle..' '..Rep..'/indicateur_rot.png && composite -compose Over  -gravity Center '..Rep..'/indicateur_rot.png '..Rep_Lune..'/lune-base.png '..Rep..'/lune.png && mogrify -resize '..lunaison.taille..'! '..Rep..'/lune.png && composite -blend 0x'..lunaison.opacite..' null: '..Rep..'/lune.png -matte '..Rep..'/lune.png')
    os.execute('chmod -R o+rw- '..Rep)
    
end


function Baro()
    
    local angle = ((conditioncourante.Pression-980)*4.5)-135

    ---- Aiguille
     os.execute('convert -background transparent '..Rep_Barometre..'/aiguille.png -rotate '..angle..' '..Rep..'/aiguille_rot.png && composite -compose Over  -gravity Center '..Rep..'/aiguille_rot.png '..Rep_Barometre..'/base.png '..Rep..'/Barometre.png && mogrify -resize '..Barometre.taille..'! '..Rep..'/Barometre.png && composite -blend 0x'..Barometre.opacite..' null: '..Rep..'/Barometre.png -matte '..Rep..'/Barometre.png')
    os.execute('chmod -R o+rw- '..Rep)
end


-- initialisation création rose des sables
function fonc_init_rose()

    for j = 1,jours do
        init_rose[j] = {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
        init_rose_raf[j]= {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
    end
    
end


-----Affichage Barometre
function conky_Images_Barometre(p, s, f, o)

    if Barometre.taille == nil then 
        Barometre.opacite = o
        Barometre.taille = s
        Baro()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Barometre.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Barometre.png "
    end
end


-----Affichage lune
function conky_Images_Lunaison(p, s, f, o)
    if lunaison.taille == nil then 
        lunaison.opacite = o
        lunaison.taille = s
        lune()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/lune.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/lune.png "
    end
end


-----Affichage Thermometre
function conky_Images_Thermo(p, s, f, n, o)


  n = tonumber(n)
    if Thermometre[n].opacite == nil then
        Thermometre[n].opacite = o
        Thermometre[n].taille = s
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermo"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermo"..n..".png"
    end
end

function conky_Images_ThermoRond(p, s, f, n, o, a, b, c, d)

--p=position s=taille f=frequence de rafraichissement n=num therm o=opacité a=info 1 b=info 2 c=info 3 d=info 4
    n = tonumber(n)
    if ThermometresRond[n] == nil then
        ThermometresRond[n] = {}
        Nb_ThermRond = n
        local pos
        if a ~= nil then
            a = string.gsub(a, "-", " ")
            if string.find(a, 'a=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].aiguille = string.sub(a, pos+1)
            elseif string.find(a, 'b=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].bleu = string.sub(a, pos+1)
            elseif string.find(a, 'r=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].rouge = string.sub(a, pos+1)
            elseif string.find(a, 'v=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].vert = string.sub(a, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].jaune = string.sub(a, pos+1)
	    elseif string.find(a, 'w=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].blanc = string.sub(a, pos+1)
            end
        end
        if b ~= nil then
            b = string.gsub(b, "-", " ")
            if string.find(b, 'a=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].aiguille = string.sub(b, pos+1)
            elseif string.find(b, 'b=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].bleu = string.sub(b, pos+1)
            elseif string.find(b, 'r=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].rouge = string.sub(b, pos+1)
            elseif string.find(b, 'v=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].vert = string.sub(b, pos+1)
	    elseif string.find(b, 'j=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].jaune = string.sub(b, pos+1)
	    elseif string.find(b, 'w=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].blanc = string.sub(b, pos+1)
            end
        end
        if c ~= nil then
            c = string.gsub(c, "-", " ")
            if string.find(c, 'a=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].aiguille = string.sub(c, pos+1)
            elseif string.find(c, 'b=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].bleu = string.sub(c, pos+1)
            elseif string.find(c, 'r=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].rouge = string.sub(c, pos+1)
            elseif string.find(c, 'v=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].vert = string.sub(c, pos+1)
	    elseif string.find(c, 'j=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].jaune = string.sub(c, pos+1)
	    elseif string.find(c, 'w=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].blanc = string.sub(c, pos+1)
            end
        end
        if d ~= nil then
            d = string.gsub(d, "-", " ")
            if string.find(d, 'a=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].aiguille = string.sub(d, pos+1)
            elseif string.find(d, 'b=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].bleu = string.sub(d, pos+1)
            elseif string.find(d, 'r=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].rouge = string.sub(d, pos+1)
            elseif string.find(d, 'v=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].vert = string.sub(d, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].jaune = string.sub(d, pos+1)
	    elseif string.find(d, 'w=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].blanc = string.sub(d, pos+1)
            end
        end
        ThermometresRond[n].taille = s
        ThermometresRond[n].opacite = o
        CreaThermometreRond(n)
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermorond"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermorond"..n..".png"
    end
end


-----Affichage rose des sables
--Condition courante
function conky_Images_Rose(p, s, f, o)
    j = 1

    if init_rose[j].CondCour == nil then
        Rose(conditioncourante.VentDir, conditioncourante.VentPlein, conditioncourante.VentForce, "Rose", s, o)
        init_rose[j].CondCour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Rose.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Rose.png"
    end
end


--Prévision sur la journée
function conky_Images_Jour_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentForce, "RoseJour"..j, s, o)
        init_rose[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJour"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJour"..j..".png"
    end
end

function conky_Images_Jour_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentRafales, "RoseJourR"..j, s, o)
        init_rose_raf[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJourR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJourR"..j..".png"
    end
end


--Prévision sur la nuit
function conky_Images_Nuit_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentForce, "RoseNuit"..j, s, o)
        init_rose[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuit"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuit"..j..".png"
    end
end

function conky_Images_Nuit_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentRafales, "RoseNuitR"..j, s, o)
        init_rose_raf[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuitR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuitR"..j..".png"
    end
end


--Condition Matinée
function conky_Images_Matin_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Matin == nil then
        Rose(conditionMatin[j].VentDir, conditionMatin[j].VentP, conditionMatin[j].VentForce, "RoseMatin"..j, s, o)
        init_rose[j].Matin = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseMatin"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseMatin"..j..".png"
    end
end


--Condition Après midi
function conky_Images_AM_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].AM == nil then
        Rose(conditionAM[j].VentDir, conditionAM[j].VentP, conditionAM[j].VentForce, "RoseAM"..j, s, o)
        init_rose[j].AM = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseAM"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseAM"..j..".png"
    end
end


--Condition soirée
function conky_Images_Soiree_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Soiree == nil then
        Rose(conditionSoiree[j].VentDir, conditionSoiree[j].VentP, conditionSoiree[j].VentForce, "RoseSoiree"..j, s, o)
        init_rose[j].Soiree = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseSoiree"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseSoiree"..j..".png"
    end
end

--Condition Nuit
function conky_Images_Noct_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Noct == nil then
        Rose(conditionNoct[j].VentDir, conditionNoct[j].VentP, conditionNoct[j].VentForce, "RoseNoct"..j, s, o)
        init_rose[j].Noct = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNoct"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNoct"..j..".png"
    end
end

--huitHeures
function conky_Images_huitHeures_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].huitHeures == nil then
        Rose(huitHeures[j].VentDir, huitHeures[j].VentP, huitHeures[j].VentForce, "RosehuitHeures"..j, s, o)
        init_rose[j].huitHeures = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RosehuitHeures"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RosehuitHeures"..j..".png"
    end
end




--Récupération de données
function conky_Images_MAJ(cfg)


	local s = '${lua Meteo_etat_MAJ}'
	local MAJ = conky_parse( s )
		
	
	if maj1 == nil then
		init(cfg)
		maj1 = "ok"
		MAJHold = MAJ+1
		
	end
	
	if MAJ ~= MAJHold then

		MAJHold = MAJ
--Récupération dernière condition courante
		local file = assert(io.open(repsauv.."/CondCour", "r") )
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "latitude", "longitude"}
		for i = 1,22 do
			conditioncourante[t[i]] = donee[i]
		end
		time = donee[23]
		io.close(file)
		
--Récupération prévision
		
		for j = 1,jours do
			local file = assert(io.open(repsauv.."/prevision"..j, "r"))
			local line = file:read()
			local i = 0
			local donee = {}
			for line in file:lines() do
				i = i+1
				donee[i] = line
			end
			local info = {}
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionJour[j] = {}
			for i = 1, 21 do
				info[t[i]] = donee[i]
			end
			conditionJour[j] = info
			local info1 = {}
			t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionNuit[j] = {}
			for i = 22, 41 do
				info1[t[i-21]] = donee[i]
			end
			conditionNuit[j] = info1
			local info2 = {}
			t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
			InfoJour[j] = {}
			for i = 42, 48 do
				info2[t[i-41]] = donee[i]
			end
			InfoJour[j] = info2
			io.close(file)
			
			if matin == "oui" then
				local file = assert(io.open(repsauv.."/matin"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionMatin[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionMatin[j] = info3
				io.close(file)
			end

			if apresmidi == "oui" then
				local file = assert(io.open(repsauv.."/ApresMidi"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionAM[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionAM[j] = info3
				io.close(file)
			end

			if soiree == "oui" then
				local file = assert(io.open(repsauv.."/Soiree"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionSoiree[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionSoiree[j] = info3
				io.close(file)
			end

			if nuit == "oui" then
				local file = assert(io.open(repsauv.."/Nuit"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionNoct[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionNoct[j] = info3
				io.close(file)
			end

		end

		if huit == "oui" then
			for j = 1,8 do
				local file = assert(io.open(repsauv.."/huitHeures"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas", "VentP", "VentIcone"}
				huitHeures[j] = {}
				local info3 = {}
				for i = 1, 15 do
					info3[t[i]] = donee[i]
				end
				huitHeures[j] = info3
				io.close(file)
			end
		end			

		--Récupération lunaison
		local file = assert(io.open(repsauv.."/lunaison", "r"))
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		ephemerides = donee[1]
		ephemerides1 = donee[2]
		ephemerides2 = donee[3]
		Visibilite = donee[4]
		Phases = donee[5]
		Phases1 = donee[6]
		Phases2 = donee[7]
		Noeud_lunaire = donee[8]
		Apogee = donee[9]
		Perigee = donee[10]
		Distance = donee[11]
		Age = donee[12]
		Lever_LuneHeure = donee[13]
		Lever_LuneMinute = donee[14]
		Coucher_LuneHeure = donee[15]
		Coucher_LuneMinute = donee[16]
		Eclipse_partielle = donee[17]
		Eclipse_total = donee[18]
		io.close(file)
			

		if Barometre.taille ~= nil then Baro() end
		if lunaison.taille ~= nil then lune() end
		fonc_init_rose()
		
		local i = 0
		while i ~= Nb_Thermo do
			i = i+1
			CreaThermometre(i)
		end
		i = 0
		while i ~= Nb_ThermRond do
			i = i+1
			CreaThermometreRond(i)
		end




		if Mode == "fondecran" then
			FondEcran_init()
		end
		if Mode == "fondinactif" then
			FondInactif_init()
		end
		
		collectgarbage()
		
	end			

	return ""
end



--initialisation paramètres
function init(cfg)
	
	local home = os.getenv("HOME")
	cfg = string.gsub(cfg, "~", home)
	cfg = string.gsub(cfg, "$HOME", home)
	imagecfg = cfg

	Nb_Thermo = 0
	Nb_ThermRond = 0
	local Thermo = false
	local ThermRond = false

	local file = assert(io.open(cfg, "rb") )

	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'repfonts=') ~= nil then
			repfonts = string.sub(line, pos1+1)
		elseif string.find(line, 'ThermRond=') ~= nil then
			Rep_ThermRond = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1=') ~= nil then
			palier1 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2=') ~= nil then
			palier2 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3=') ~= nil then
			palier3 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4=') ~= nil then
			palier4 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1coulfont=') ~= nil then
			palier1coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2coulfont=') ~= nil then
			palier2coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3coulfont=') ~= nil then
			palier3coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4coulfont=') ~= nil then
			palier4coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'Lune=') ~= nil then
			Rep_Lune = string.sub(line, pos1+1)
		elseif string.find(line, 'Barometre=') ~= nil then
			Rep_Barometre = string.sub(line, pos1+1)
		elseif string.find(line, 'repmeteo=') ~= nil then
			repmeteo = string.sub(line, pos1+1)
		elseif string.find(line, 'IconesRep=') ~= nil then
			IconesRep = string.sub(line, pos1+1)
		elseif string.find(line, 'Mode=') ~= nil then
			Mode = string.sub(line, pos1+1)
		elseif string.find(line, 'MiseEnPage=') ~= nil then
			mise_en_page = string.sub(line, pos1+1)
			mise_en_page = string.gsub(mise_en_page, "~", home)
			mise_en_page = string.gsub(mise_en_page, "$HOME", home)
			pos = string.find(mise_en_page, "creationmodules")
			fich_creationmodule =  string.sub(mise_en_page, pos)..".sh"
		end
		
		--debut thermomètre	mercure	
		if string.find(line, 'Thermometres=') ~= nil then
			Thermo = true
			Nb_Thermo = Nb_Thermo+1
			Thermometre[tonumber(Nb_Thermo)] = {}
		end
		
		if Thermo ~= false then
			if string.find(line, 'base=') ~= nil then
				Thermometre[Nb_Thermo].base = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure=') ~= nil then
				Thermometre[Nb_Thermo].mercure = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure_info=') ~= nil then
				local pos2 = string.find(line, '}')
				if pos2 ~= nil then
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1, pos2-1)
				else
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1)
				end
			elseif string.find(line, 'plot=') ~= nil then
				Thermometre[Nb_Thermo].plot = string.sub(line, pos1+1)
			elseif string.find(line, 'plot_info=') ~= nil then
				local pos2 = string.find(line, '}')
				Thermometre[Nb_Thermo].plot_info = string.sub(line, pos1+1, pos2-1)
			end
	
			pos1 = string.find(line, '}')
			if pos1 ~= nil then
				line = string.sub(line, pos1)
				if string.find(line, ',') == nil then
					Thermo = false
				else
					Nb_Thermo = Nb_Thermo+1
					Thermometre[Nb_Thermo] = {}
				end
			end
		end

		--fin thermomètre

		
	end
	io.close(file)

	
	local fichier_init = conky_parse( "${lua Meteo_fichier_init}" )
	meteocfg=fichier_init
	local file = assert(io.open(fichier_init, "rb") )
	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'repsauv=') ~= nil then
			repsauv = string.sub(line, pos1+1)
		elseif string.find(line, 'TempShell=') ~= nil then
			r = string.sub(line, pos1+1)
		elseif string.find(line, 'web=') ~= nil then
			cmd1 = string.sub(line, pos1+1)
		elseif string.find(line, 'periode=') ~= nil then
			jours = string.sub(line, pos1+1)
		elseif string.find(line, 'matinée=') ~= nil then
			matin = string.sub(line, pos1+1)
		elseif string.find(line, 'am=') ~= nil then
			apresmidi = string.sub(line, pos1+1)
		elseif string.find(line, 'soiree=') ~= nil then
			soiree = string.sub(line, pos1+1)
		elseif string.find(line, 'nuit=') ~= nil then
			nuit = string.sub(line, pos1+1)
		elseif string.find(line, 'Prev8heures=') ~= nil then
			huit = string.sub(line, pos1+1)
		elseif string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'Palier=') ~= nil then
			Palier = tonumber(string.sub(line, pos1+1))
		elseif string.find(line, 'update=') ~= nil then
			delais = string.sub(line, pos1+1)
		end
	end
	io.close(file)	
	r = string.gsub(r, "~", home)
	r = string.gsub(r, "$HOME", home)
	repsauv = string.gsub(repsauv, "~", home)
	repsauv = string.gsub(repsauv, "$HOME", home)


--Création répertoire de travail
	l = cmd1:match("/(%d+)")
	if string.find(cmd1, 'forecast') ~= nil then
		pos1 = string.find(cmd1, '/weather')
		cmd = string.sub(cmd1, 0, pos1-1)
	else
		pos1 = string.find(cmd1, '/current')
		cmd = string.sub(cmd1, 0, pos1-1)
	end

	local bar, bar1
	local l1 = string.gsub(cmd, '/'..l, "" )
	local b = 1
	while bar1 == nil do
		b = b+1
		bar1 = string.find(l1, '/', -b)
	end
	l1 = string.sub(l1, bar1+1)
	Rep = r.."/"..l1.."/"..l

	MAJHold = "10"
	
	return ""
end

------------------------------------------------------------- Fond ecran --------------------------------------------------

function FondEcran_init()


if not existe(repsauv.."/fond-meteo.png") then
	boucle = boucle+1
end

if boucle ~= 0 then
	print("","Mode = "..Mode)
	-- sauvegarde fond ecran
	os.execute(repmeteo..'/scripts/fond-gestion.sh sauvegarde')
	-- creation des modules externes
	creation_module(mise_en_page)
	-- Maj du fond d'écran	
	os.execute(repmeteo..'/scripts/fond-gestion.sh integration ')

end
	boucle = boucle+1
end

function FondInactif_init()

	print("","Mode = "..Mode)
	-- creation des modules externes
	creation_module(mise_en_page)

end

function conky_extinction()
-- remise en place fond ecran-ori
os.execute(repmeteo..'/scripts/fond-gestion.sh restauration')	
end

function mise_en_forme(x)
	local pos = string.find(x, "{{")
	local Nb = 0
	local info, pos1
	while pos ~= nil do
		Nb = Nb+1
		if Nb == 1 then
			code = string.sub(x, 0, pos-1)
		else
			code = code..string.sub(x, pos1+2, pos-1)
		end
		pos1 = string.find(x, "}}", pos+2)
		info = string.sub(x, pos+2, pos1-1)
		code = code..Recup_info(info)
		pos = string.find(x, "{{", pos1+2)
	end
	if pos1 ~= nil then
		code = code..string.sub(x, pos1+2)
	else
		code = x
	end

	return code
end


function creation_module(creationmodules)
------------copie et recuperation du fichier  

	local file = io.open(creationmodules)
	local line = file:read()
	local file1 =  io.open(Rep.."/"..fich_creationmodule, "w+" )
	------------- mise en place fichier + entête 

	file1:write ("#!/bin/bash \n\n##########################################\ncheminref="..repmeteo.."\nsource "..imagecfg.." 2>/dev/null\nsource "..meteocfg.." 2>/dev/null\n")
	------------------------------------------------------------------------
		for line in file:lines() do
	---------------------------------------------------------
			file1:write (mise_en_forme(line), "\n")
	---------------------------------------------------------
		end
	------ fermeture et ecriture
	io.close(file1)
	io.close(file)
	------ execution du fichier bash
	os.execute('chmod +x '..Rep..'/'..fich_creationmodule..' && '..Rep..'/'..fich_creationmodule)
	
	
end
function Recup_info(x)
	local info, pos1, pos
	pos = string.find(x, " ")
	if pos ~= nil then
		info = string.sub(x, 0, pos-1)
		pos1 = string.find(x, " ", pos+1)
	else
		info = x
	end
	if pos ~= nil then
		if pos1 ~= nil then
			arg1 = string.sub(x, pos+1, pos1-1)
			pos = string.find(x, " ", pos1+1)
		else
			arg1 = string.sub(x, pos+1)
		end
		if pos1 ~= nil then
			if pos ~= nil then
				arg2 = string.sub(x, pos1+1, pos-1)
				pos1 = string.find(x, " ", pos+1)
			else
				arg2 = string.sub(x, pos1+1)
			end
			if pos ~= nil then
				if pos1 ~= nil then
					arg3 = string.sub(x, pos+1, pos1-1)
					pos = string.find(x, " ", pos1+1)
				else
					arg3 = string.sub(x, pos+1)
				end
				if pos1 ~= nil then
					if pos ~= nil then
						arg4 = string.sub(x, pos1+1, pos-1)
						pos1 = string.find(x, " ", pos+1)
					else
						arg4 = string.sub(x, pos1+1)
					end
					if pos ~= nil then
						if pos1 ~= nil then
							arg5 = string.sub(x, pos+1, pos1-1)
							pos = string.find(x, " ", pos1+1)
						else
							arg5 = string.sub(x, pos+1)
						end
						if pos1 ~= nil then
							if pos ~= nil then
								arg6 = string.sub(x, pos1+1, pos-1)
								pos1 = string.find(x, " ", pos+1)
							else
								arg6 = string.sub(x, pos1+1)
							end
							if pos ~= nil then
								if pos1 ~= nil then
									arg7 = string.sub(x, pos+1, pos1-1)
									pos = string.find(x, " ", pos1+1)
								else
									arg7 = string.sub(x, pos+1)
								end
								if pos1 ~= nil then
									if pos ~= nil then
										arg8 = string.sub(x, pos1+1, pos-1)
										pos1 = string.find(x, " ", pos+1)
									else
										arg8 = string.sub(x, pos1+1)
									end
									if pos ~= nil then
										if pos1 ~= nil then
											arg9 = string.sub(x, pos+1, pos1-1)
											pos = string.find(x, " ", pos1+1)
										else
											arg9 = string.sub(x, pos+1)
										end
										if pos1 ~= nil then
											if pos ~= nil then
												arg10 = string.sub(x, pos1+1, pos-1)
												pos1 = string.find(x, " ", pos+1)
											else
												arg10 = string.sub(x, pos1+1)
											end
											if pos ~= nil then
												if pos1 ~= nil then
													arg11 = string.sub(x, pos+1, pos1-1)
													pos = string.find(x, " ", pos1+1)
												else
													arg11 = string.sub(x, pos+1)
												end
											end
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end
	
		
	if info == "Meteo_TempRes" then
		return conditioncourante.Tempr
	elseif info == "Meteo_TempAct" then
		return conditioncourante.Temp
	elseif info == "Meteo_CondMeteo" then
		return conditioncourante.Cond
	elseif info == "Meteo_CondMeteo1" then
		return conditioncourante.CondMeteo1
	elseif info == "Meteo_CondMeteo2" then
		return conditioncourante.CondMeteo2
	elseif info == "Meteo_CondMeteo1se" then
		return conditioncourante.CondMeteo1se
	elseif info == "Meteo_CondMeteo2se" then
		return conditioncourante.CondMeteo2se
	elseif info == "Meteo_VentDir" then
		return conditioncourante.VentDir
	elseif info == "Meteo_VentDirP" then
		return conditioncourante.VentPlein
	elseif info == "Meteo_VentForce" then
		return conditioncourante.VentForce
	elseif info == "Meteo_Humidite" then
		return conditioncourante.Humidite
	elseif info == "Meteo_Rose" then
		return conditioncourante.PointRosee
	elseif info == "Meteo_Pression" then
		return conditioncourante.Pression
	elseif info == "Meteo_Visibilite" then
		return conditioncourante.Visibilite
	elseif info == "Meteo_CouvNuage" then
		return conditioncourante.CouvNuage
	elseif info == "Meteo_Uv" then
		return conditioncourante.Uv
	elseif info == "Meteo_IconeM" then
		if os.date("%H%M", os.time()) <= InfoJour[1].CoucherSoleilH..InfoJour[1].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[1].LeverSoleilH..InfoJour[1].LeverSoleilM then
			return arg1.."/jour/"..conditioncourante.Icone..".png"
		else
			return arg1.."/nuit/"..conditioncourante.Icone..".png"
		end
	elseif info == "Meteo_IconeV" then
		return arg1.."/"..conditioncourante.VentIcone
	elseif info == "Meteo_Ville" then
		return conditioncourante.Ville
	elseif info == "Meteo_latitude" then
		return conditioncourante.latitude
	elseif info == "Meteo_longitude" then
		return conditioncourante.longitude
	elseif info == "Image_version" then
		return Version
	--prévision journée
	elseif info == "Meteo_Jour_CondMeteo" then
		return conditionJour[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Jour_CondMeteo1" then
		return conditionJour[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Jour_CondMeteo2" then
		return conditionJour[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Jour_CondMeteo1se" then
		return conditionJour[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Jour_CondMeteo2se" then
		return conditionJour[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Jour_Temp" then
		return conditionJour[tonumber(arg1)].Temp
	elseif info == "Meteo_Jour_TempRes" then
		return conditionJour[tonumber(arg1)].TempRes
	elseif info == "Meteo_Jour_ProbPrec" then
		return conditionJour[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Jour_VentDir" then
		return conditionJour[tonumber(arg1)].VentDir
	elseif info == "Meteo_Jour_VentDirP" then
		return conditionJour[tonumber(arg1)].VentP
	elseif info == "Meteo_Jour_VentForce" then
		return conditionJour[tonumber(arg1)].VentForce
	elseif info == "Meteo_Jour_VentRafales" then
		return conditionJour[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Jour_Uv" then
		return conditionJour[tonumber(arg1)].Uv
	elseif info == "Meteo_Jour_ProbOrage" then
		return conditionJour[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Jour_NivPrec" then
		return conditionJour[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Jour_QPluie" then
		return conditionJour[tonumber(arg1)].QPluie
	elseif info == "Meteo_Jour_QNeige" then
		return conditionJour[tonumber(arg1)].QNeige
	elseif info == "Meteo_Jour_EVerglas" then
		return conditionJour[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Jour_IconeM" then
		return arg1.."/jour/"..conditionJour[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Jour_IconeV" then
		return arg1.."/"..conditionJour[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Jour_IconeR" then
		return arg1.."/"..conditionJour[tonumber(arg5)].RafalesIcone
	--prévision Nuit
	elseif info == "Meteo_Nuit_CondMeteo" then
		return conditionNuit[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Nuit_CondMeteo1" then
		return conditionNuit[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Nuit_CondMeteo2" then
		return conditionNuit[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Nuit_CondMeteo1se" then
		return conditionNuit[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Nuit_CondMeteo2se" then
		return conditionNuit[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Nuit_Temp" then
		return conditionNuit[tonumber(arg1)].Temp
	elseif info == "Meteo_Nuit_TempRes" then
		return conditionNuit[tonumber(arg1)].TempRes
	elseif info == "Meteo_Nuit_ProbPrec" then
		return conditionNuit[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Nuit_VentDir" then
		return conditionNuit[tonumber(arg1)].VentDir
	elseif info == "Meteo_Nuit_VentDirP" then
		return conditionNuit[tonumber(arg1)].VentP
	elseif info == "Meteo_Nuit_VentForce" then
		return conditionNuit[tonumber(arg1)].VentForce
	elseif info == "Meteo_Nuit_VentRafales" then
		return conditionNuit[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Nuit_Uv" then
		return conditionNuit[tonumber(arg1)].Uv
	elseif info == "Meteo_Nuit_ProbOrage" then
		return conditionNuit[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Nuit_NivPrec" then
		return conditionNuit[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Nuit_QPluie" then
		return conditionNuit[tonumber(arg1)].QPluie
	elseif info == "Meteo_Nuit_QNeige" then
		return conditionNuit[tonumber(arg1)].QNeige
	elseif info == "Meteo_Nuit_EVerglas" then
		return conditionNuit[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Nuit_IconeM" then
		return arg1.."/nuit/"..conditionNuit[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Nuit_IconeV" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Nuit_IconeR" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].RafalesIcone
	----Prévision quart de journée
	--Matin
	elseif info == "Meteo_Matin_CondMeteo " then
		return conditionMatin[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Matin_CondMeteo1" then
		return conditionMatin[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Matin_CondMeteo2" then
		return conditionMatin[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Matin_CondMeteo1se" then
		return conditionMatin[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Matin_CondMeteo2se" then
		return conditionMatin[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Matin_TempMax" then
		return conditionMatin[tonumber(arg1)].TempMax
	elseif info == "Meteo_Matin_TempMin" then
		return conditionMatin[tonumber(arg1)].TempMin
	elseif info == "Meteo_Matin_TempMaxRes" then
		return conditionMatin[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Matin_TempMinRes" then
		return conditionMatin[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Matin_ProbPrec" then
		return conditionMatin[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Matin_VentDir" then
		return conditionMatin[tonumber(arg1)].VentDir
	elseif info == "Meteo_Matin_VentP" then
		return conditionMatin[tonumber(arg1)].VentP
	elseif info == "Meteo_Matin_VentForce" then
		return conditionMatin[tonumber(arg1)].VentForce
	elseif info == "Meteo_Matin_QPluie" then
		return conditionMatin[tonumber(arg1)].QPluie
	elseif info == "Meteo_Matin_QNeige" then
		return conditionMatin[tonumber(arg1)].QNeige
	elseif info == "Meteo_Matin_Humidite" then
		return conditionMatin[tonumber(arg1)].Humidite
	elseif info == "Meteo_Matin_CouvNuage" then
		return conditionMatin[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Matin_Rose" then
		return conditionMatin[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Matin_Visibilite" then
		return conditionMatin[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Matin_IconeM" then
		return arg1.."/jour/"..conditionMatin[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Matin_IconeV" then
		return arg1.."/"..conditionMatin[tonumber(arg5)].VentIcone
	--Après midi
	elseif info == "Meteo_AM_CondMeteo " then
		return conditionAM[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_AM_CondMeteo1" then
		return conditionAM[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_AM_CondMeteo2" then
		return conditionAM[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_AM_CondMeteo1se" then
		return conditionAM[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_AM_CondMeteo2se" then
		return conditionAM[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_AM_TempMax" then
		return conditionAM[tonumber(arg1)].TempMax
	elseif info == "Meteo_AM_TempMin" then
		return conditionAM[tonumber(arg1)].TempMin
	elseif info == "Meteo_AM_TempMaxRes" then
		return conditionAM[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_AM_TempMinRes" then
		return conditionAM[tonumber(arg1)].TempMinR
	elseif info == "Meteo_AM_ProbPrec" then
		return conditionAM[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_AM_VentDir" then
		return conditionAM[tonumber(arg1)].VentDir
	elseif info == "Meteo_AM_VentP" then
		return conditionAM[tonumber(arg1)].VentP
	elseif info == "Meteo_AM_VentForce" then
		return conditionAM[tonumber(arg1)].VentForce
	elseif info == "Meteo_AM_QPluie" then
		return conditionAM[tonumber(arg1)].QPluie
	elseif info == "Meteo_AM_QNeige" then
		return conditionAM[tonumber(arg1)].QNeige
	elseif info == "Meteo_AM_Humidite" then
		return conditionAM[tonumber(arg1)].Humidite
	elseif info == "Meteo_AM_CouvNuage" then
		return conditionAM[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_AM_Rose" then
		return conditionAM[tonumber(arg1)].PointRosee
	elseif info == "Meteo_AM_Visibilite" then
		return conditionAM[tonumber(arg1)].Visibilite
	elseif info == "Meteo_AM_IconeM" then
		return arg1.."/jour/"..conditionAM[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_AM_IconeV" then
		return arg1.."/"..conditionAM[tonumber(arg5)].VentIcone
	--Soirée
	elseif info == "Meteo_Soiree_CondMeteo " then
		return conditionSoiree[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Soiree_CondMeteo1" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Soiree_CondMeteo2" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Soiree_CondMeteo1se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Soiree_CondMeteo2se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Soiree_TempMax" then
		return conditionSoiree[tonumber(arg1)].TempMax
	elseif info == "Meteo_Soiree_TempMin" then
		return conditionSoiree[tonumber(arg1)].TempMin
	elseif info == "Meteo_Soiree_TempMaxRes" then
		return conditionSoiree[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Soiree_TempMinRes" then
		return conditionSoiree[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Soiree_ProbPrec" then
		return conditionSoiree[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Soiree_VentDir" then
		return conditionSoiree[tonumber(arg1)].VentDir
	elseif info == "Meteo_Soiree_VentP" then
		return conditionSoiree[tonumber(arg1)].VentP
	elseif info == "Meteo_Soiree_VentForce" then
		return conditionSoiree[tonumber(arg1)].VentForce
	elseif info == "Meteo_Soiree_QPluie" then
		return conditionSoiree[tonumber(arg1)].QPluie
	elseif info == "Meteo_Soiree_QNeige" then
		return conditionSoiree[tonumber(arg1)].QNeige
	elseif info == "Meteo_Soiree_Humidite" then
		return conditionSoiree[tonumber(arg1)].Humidite
	elseif info == "Meteo_Soiree_CouvNuage" then
		return conditionSoiree[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Soiree_Rose" then
		return conditionSoiree[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Soiree_Visibilite" then
		return conditionSoiree[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Soiree_IconeM" then
		return arg1.."/nuit/"..conditionSoiree[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Soiree_IconeV" then
		return arg1.."/"..conditionSoiree[tonumber(arg5)].VentIcone
	--nuit
	elseif info == "Meteo_Noct_CondMeteo " then
		return conditionNoct[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Noct_CondMeteo1" then
		return conditionNoct[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Noct_CondMeteo2" then
		return conditionNoct[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Noct_CondMeteo1se" then
		return conditionNoct[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Noct_CondMeteo2se" then
		return conditionNoct[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Noct_TempMax" then
		return conditionNoct[tonumber(arg1)].TempMax
	elseif info == "Meteo_Noct_TempMin" then
		return conditionNoct[tonumber(arg1)].TempMin
	elseif info == "Meteo_Noct_TempMaxRes" then
		return conditionNoct[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Noct_TempMinRes" then
		return conditionNoct[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Noct_ProbPrec" then
		return conditionNoct[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Noct_VentDir" then
		return conditionNoct[tonumber(arg1)].VentDir
	elseif info == "Meteo_Noct_VentP" then
		return conditionNoct[tonumber(arg1)].VentP
	elseif info == "Meteo_Noct_VentForce" then
		return conditionNoct[tonumber(arg1)].VentForce
	elseif info == "Meteo_Noct_QPluie" then
		return conditionNoct[tonumber(arg1)].QPluie
	elseif info == "Meteo_Noct_QNeige" then
		return conditionNoct[tonumber(arg1)].QNeige
	elseif info == "Meteo_Noct_Humidite" then
		return conditionNoct[tonumber(arg1)].Humidite
	elseif info == "Meteo_Noct_CouvNuage" then
		return conditionNoct[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Noct_Rose" then
		return conditionNoct[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Noct_Visibilite" then
		return conditionNoct[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Noct_IconeM" then
		return arg1.."/nuit/"..conditionNoct[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Noct_IconeV" then
		return arg1.."/"..conditionNoct[tonumber(arg5)].VentIcone
	--huitHeures
	elseif info == "Meteo_huitHeures_CondMeteo " then
		return huitHeures[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_huitHeures_CondMeteo1" then
		return huitHeures[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_huitHeures_CondMeteo2" then
		return huitHeures[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_huitHeures_CondMeteo1se" then
		return huitHeures[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_huitHeures_CondMeteo2se" then
		return huitHeures[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_huitHeures_TempMax" then
		return huitHeures[tonumber(arg1)].TempMax
	elseif info == "Meteo_huitHeures_TempMin" then
		return huitHeures[tonumber(arg1)].TempMin
	elseif info == "Meteo_huitHeures_TempMaxRes" then
		return huitHeures[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_huitHeures_TempMinRes" then
		return huitHeures[tonumber(arg1)].TempMinR
	elseif info == "Meteo_huitHeures_ProbPrec" then
		return huitHeures[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_huitHeures_VentDir" then
		return huitHeures[tonumber(arg1)].VentDir
	elseif info == "Meteo_huitHeures_VentP" then
		return huitHeures[tonumber(arg1)].VentP
	elseif info == "Meteo_huitHeures_VentForce" then
		return huitHeures[tonumber(arg1)].VentForce
	elseif info == "Meteo_huitHeures_QPluie" then
		return huitHeures[tonumber(arg1)].QPluie
	elseif info == "Meteo_huitHeures_QNeige" then
		return huitHeures[tonumber(arg1)].QNeige
	elseif info == "Meteo_huitHeures_Humidite" then
		return huitHeures[tonumber(arg1)].Humidite
	elseif info == "Meteo_huitHeures_CouvNuage" then
		return huitHeures[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_huitHeures_Rose" then
		return huitHeures[tonumber(arg1)].PointRosee
	elseif info == "Meteo_huitHeures_Visibilite" then
		return huitHeures[tonumber(arg1)].Visibilite
	elseif info == "Meteo_huitHeures_IconeV" then
		return arg1.."/"..huitHeures[tonumber(arg5)].VentIcone
	elseif info == "Meteo_huitHreures_IconeM" then
		if huitHeures[tonumber(arg1)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg1)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end
	


	--lunaison
	elseif info == "Lune_ephemerides" then
		return ephemerides
	elseif info == "Lune_ephemerides1" then
		return ephemerides1
	elseif info == "Lune_ephemerides2" then
		return ephemerides2
	elseif info == "Lune_Visibilite" then
		return Visibilite
	elseif info == "Lune_Phases" then
		return Phases
	elseif info == "Lune_Phases1" then
		return Phases1
	elseif info == "Lune_Phases2" then
		return Phases2
	elseif info == "Lune_Noeudlunaire" then
		return Noeud_lunaire
	elseif info == "Lune_Apogee" then
		return Apogee
	elseif info == "Lune_Perigee" then
		return Perigee
	elseif info == "Lune_Distance" then
		return Distance
	elseif info == "Lune_Age" then
		return Age
	elseif info == "Lune_HLeverLune" then
		return Lever_LuneHeure
	elseif info == "Lune_MLeverLune" then
		return Lever_LuneMinute
	elseif info == "Lune_HCoucherLune" then
		return Coucher_LuneHeure
	elseif info == "Lune_MCoucherLune" then
		return Coucher_LuneMinute
	elseif info == "Lune_EclipsePartielle" then
		return Eclipse_partielle
	elseif info == "Lune_EclipseTotal" then
		return Eclipse_total
	elseif info == "Images_Barometre" then
		return conky_Images_Barometre(arg1, arg2, arg3, arg4)
	elseif info == "Images_Lunaison" then
		return conky_Images_Lunaison(arg1, arg2, arg3, arg4)
	elseif info == "Images_Thermo" then
		return conky_Images_Thermo(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_ThermoRond" then
		return conky_Images_ThermoRond(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)
	elseif info == "Images_Rose" then
		return conky_Images_Rose(arg1, arg2, arg3, arg4)
	elseif info == "Images_Jour_Rose" then
		return conky_Images_Jour_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Jour_RoseR" then
		return conky_Images_Jour_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_Rose" then
		return conky_Images_Nuit_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_RoseR" then
		return conky_Images_Nuit_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Matin_Rose" then
		return conky_Images_Matin_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_AM_Rose" then
		return conky_Images_AM_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Soiree_Rose" then
		return conky_Images_Soiree_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Noct_Rose" then
		return conky_Images_Noct_Rose(arg1, arg2, arg3, arg4, arg5)
	else
		return conky_parse( "${lua "..x.."}" )
	end
end

et la rose des sable pareil mais j'en ai pas besoin

Dernière modification par daniel38100 (Le 02/01/2013, à 19:23)

Hors ligne

#1762 Le 02/01/2013, à 19:31

Didier-T

Re : [Conky] Alternative à weather.com (2)

@ daniel38100,
Pour un premier essais c'est pas mal du tous.

ceci

	elseif info == "Meteo_huitHreures_IconeM" then
		if huitHeures[tonumber(arg1)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg1)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end

devient ceci

	elseif info == "Meteo_huitHreures_IconeM" then
		if huitHeures[tonumber(arg5)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg5)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end

si la condition est bonne, et il me semble que c'est le cas, tu viens d’écrire la version suivante de images-meteo.lua

Hors ligne

#1763 Le 02/01/2013, à 19:55

daniel38100

Re : [Conky] Alternative à weather.com (2)

@ Didier-T
c toujours pareil

Hors ligne

#1764 Le 02/01/2013, à 20:12

daniel38100

Re : [Conky] Alternative à weather.com (2)

ok petite faute de frappe

elseif info == "Meteo_huitHreures_IconeM" then
		if huitHeures[tonumber(arg5)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg5)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end

devient

elseif info == "Meteo_huitHeures_IconeM" then
		if huitHeures[tonumber(arg5)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg5)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end



et ca marche nikel
merci Didier-T

Dernière modification par daniel38100 (Le 02/01/2013, à 20:13)

Hors ligne

#1765 Le 02/01/2013, à 20:27

daniel38100

Re : [Conky] Alternative à weather.com (2)

1357154561.png

pour le script

images_meteo.lua

-- Créé par Didier-T (forum.ubuntu-fr.org), pour jpdipsy
-- Nécessite imagemagick http://apt.ubuntu.com/p/imagemagick



require "io"
require "os"


local Version = "v2.3c"
local conditionJour = {}
local conditionNuit = {}
local conditionMatin = {}
local conditionAM = {}
local conditionSoiree = {}
local conditionNoct = {}
local InfoJour = {}
local conditioncourante = {}
local huitHeures = {}
local Thermometre = {}
local ThermometresRond = {}
local init_thermo = {}
local init_thermo_res = {}
local init_rose = {}
local init_rose_raf = {}
local lunaison = {}
local Barometre = {}
local Rep, cmd, jours, matin, apresmidi, soiree, nuit, delais, r, repsauv, l, Rep_Therm, Rep_Rose, Palier, t1, MAJHold, maj1, Nb_Thermo, Rep_Lune, Rep_Barometre, Rep_ThermRond, Nb_ThermRond, palier1, palier2, palier3, palier4, mise_en_page,  fich_creationmodule
local boucle, imagecfg,meteocfg
boucle = tonumber("0")

-- Création rose des vent par jpdipsy
function Rose(i, dp, v, nom, taille, opacite)
    local angle, couleur, f ,couleurfont
    local vitesse = "'"..v.." km/h'"
    
    if v ~= nil then
        f = tonumber(v)
    else
        f = 0
    end
    
    if f <= Palier then
        couleur = palier1
        couleurfont = palier1coulfont
    elseif f <= Palier*2 then
        couleur = palier2
        couleurfont = palier2coulfont
    elseif f <= Palier*3 then
        couleur = palier3
        couleurfont = palier3coulfont
    elseif f >= (Palier*3)+1 then
        couleur = palier4
        couleurfont = palier4coulfont
    end


    if i == "Calme" then
        angle = nil
    elseif i == "N" then
        angle = 0
    elseif i == "NNE" then
        angle = 22.5
    elseif i == "NE" then
        angle = 45
    elseif i == "ENE" then
        angle = 67.5
    elseif i == "E" then
        angle = 90
    elseif i == "ESE" then
        angle = 112.5
    elseif i == "SE" then
        angle = 135
    elseif i == "SSE" then
        angle = 157.5
    elseif i == "S" then
        angle = 180
    elseif i == "SSO" then
        angle = 202.5
    elseif i == "SO" then
        angle = 225
    elseif i == "OSO" then
        angle = 247.5
    elseif i == "O" then
        angle = 270
    elseif i == "ONO" then
        angle = 292.5
    elseif i == "NO" then
        angle = 315
    elseif i == "NNO" then
        angle = 337.5
    else
        angle = nil
    end

    if angle ~= nil then

       os.execute(' convert -background transparent '..Rep_Rose..'/'..couleur..' -rotate '..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
   --os.execute(' convert -background transparent '..Rep_Rose..'/Calme.png -rotate -'..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/'..couleur..' '..Rep..'/'..nom..'.png')
    else
        os.execute(' composite -compose Over  -gravity Center '..Rep_Rose..'/Calme.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
    end
    os.execute(' convert '..Rep..'/'..nom..'.png -font '..repfonts..'/AlteHaasGroteskBold.ttf   -fill '..couleurfont..' -pointsize 40 -gravity center -annotate +0+0 '..vitesse..' '..Rep..'/'..nom..'.png && mogrify -resize '..taille..'! '..Rep..'/'..nom..'.png && composite -blend 0x'..opacite..' null: '..Rep..'/'..nom..'.png -matte '..Rep..'/'..nom..'.png')
		os.execute('chmod -R o+rw- '..Rep)
		
end

-- Récupération des infos à afficher
function Recup(info)
    local num = info:match("%d+")
    if num ~= nil then
        info = string.gsub(info, num, "")
        num = tonumber(num)
    end
    info = string.gsub(info, " ", "")

    
    if info == "TempRes" then
        T1 =  conditioncourante.Tempr
    elseif info == "TempAct" then
        T1 =  conditioncourante.Temp
    elseif info == "Rose" then
        T1 =  conditioncourante.PointRosee
    elseif info == "Pression" then
        T1 =  conditioncourante.Pression
    elseif info == "Jour_Temp" then
        T1 =  conditionJour[num].Temp
    elseif info == "Jour_TempRes" then
        T1 =  conditionJour[num].TempRes
    elseif info == "Nuit_Temp" then
        T1 =  conditionNuit[num].Temp
    elseif info == "Nuit_TempRes" then
        T1 =  conditionNuit[num].TempRes
    elseif info == "Histo_Max" then
        T1 =  InfoJour[num].Histo_Max
    elseif info == "Histo_Min" then
        T1 =  InfoJour[num].Histo_Min
    elseif info == "Matin_TempMax" then
        T1 =  conditionMatin[num].TempMax
    elseif info == "Matin_TempMin" then
        T1 =  conditionMatin[num].TempMin
    elseif info == "Matin_TempMaxRes" then
        T1 =  conditionMatin[num].TempMaxR
    elseif info == "Matin_TempMinRes" then
        T1 =  conditionMatin[num].TempMinR
    elseif info == "Matin_Rose" then
        T1 =  conditionMatin[num].PointRosee
    elseif info == "AM_TempMax" then
        T1 =  conditionAM[num].TempMax
    elseif info == "AM_TempMin" then
        T1 =  conditionAM[num].TempMin
    elseif info == "AM_TempMaxRes" then
        T1 =  conditionAM[num].TempMaxR
    elseif info == "AM_TempMinRes" then
        T1 =  conditionAM[num].TempMinR
    elseif info == "AM_Rose" then
        T1 =  conditionAM[num].PointRosee
    elseif info == "Soiree_TempMax" then
        T1 =  conditionSoiree[num].TempMax
    elseif info == "Soiree_TempMin" then
        T1 =  conditionSoiree[num].TempMin
    elseif info == "Soiree_TempMaxRes" then
        T1 =  conditionSoiree[num].TempMaxR
    elseif info == "Soiree_TempMinRes" then
        T1 =  conditionSoiree[num].TempMinR
    elseif info == "Soiree_Rose" then
        T1 =  conditionSoiree[num].PointRosee
    elseif info == "Noct_TempMax" then
        T1 =  conditionNoct[num].TempMax
    elseif info == "Noct_TempMin" then
        T1 =  conditionNoct[num].TempMin
    elseif info == "Noct_TempMaxRes" then
        T1 =  conditionNoct[num].TempMaxR
    elseif info == "Noct_TempMinRes" then
        T1 =  conditionNoct[num].TempMinR
    elseif info == "Noct_Rose" then
        T1 =  conditionNoct[num].PointRosee
    elseif info == "huitHeure_TempMax" then
        T1 =  huitHeures[num].TempMax
    elseif info == "huitHeure_TempMin" then
        T1 =  huitHeures[num].TempMin
    elseif info == "huitHeure_TempMaxRes" then
        T1 =  huitHeures[num].TempMaxR
    elseif info == "huitHeure_TempMinRes" then
        T1 =  huitHeures[num].TempMinR
    elseif info == "huitHeure_Rose" then
        T1 =  huitHeures[num].PointRosee

    end
    
    T1 = tonumber(T1)
    if T1 <= -30 then
        T1 = -30
    elseif T1 >= 50 then
        T1 = 50
    end

    return T1
    
end


-- Création thermomètre par jpdipsy
function CreaThermometre(TherNb)

    local NbPlot
    local Tbase = Thermometre[TherNb].base
    local Alcool = Thermometre[TherNb].mercure
    Alcool = string.gsub(Alcool, " ", "")
    local InfoAlcool = Recup(Thermometre[TherNb].mercure_info)
    local Plot = {}
    local InfoPlot = {}
    
    if Thermometre[TherNb].plot ~= "" then
        local PlotCherche = Thermometre[TherNb].plot
        PlotCherche = string.gsub(PlotCherche, " ", "")
        local InfoPlotCherche = Thermometre[TherNb].plot_info

        local pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(PlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1, pos2-1)
            else
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1)
            end
            pos1 = pos2
        end
    
        pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(InfoPlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1, pos2-1))
            else
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1))
            end
            pos1 = pos2
        end
    end    
    

    if InfoAlcool > -30 then
      local T1 = (InfoAlcool*5)+150
      os.execute( "convert "..Rep_Therm.."/"..Alcool.." -resize 20x"..T1.."! "..Rep.."/colonne.png  && composite -compose Over -geometry -0+108 -gravity South "..Rep.."/colonne.png "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    else
        os.execute( "cp "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    end

    if NbPlot ~= nil then
        for i = 1, NbPlot do
            T2 = InfoPlot[i]
            local pos_T2 = (T2*5) +258
            os.execute("composite -compose Over  -geometry -0+"..pos_T2.."  -gravity South   "..Rep_Therm.."/"..Plot[i].." "..Rep.."/Thermo"..TherNb..".png  "..Rep.."/Thermo"..TherNb..".png")
        end
    end
    os.execute('mogrify -resize '..Thermometre[TherNb].taille..'! '..Rep..'/Thermo'..TherNb..'.png && composite -blend 0x'..Thermometre[TherNb].opacite..' null: '..Rep..'/Thermo'..TherNb..'.png -matte '..Rep..'/Thermo'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end


function CreaThermometreRond(TherNb)
    local val
    os.execute(' cp '..Rep_ThermRond..'/base.png '..Rep..'/Thermorond'..TherNb..'.png')
    
    if ThermometresRond[TherNb].bleu ~= nil then
        val = Recup(ThermometresRond[TherNb].bleu)
        val = string.gsub(val, " ", "")
        cree("ind-bleu", val, TherNb)
    end
    if ThermometresRond[TherNb].rouge ~= nil then
        val = Recup(ThermometresRond[TherNb].rouge)
        val = string.gsub(val, " ", "")
        cree("ind-rouge", val, TherNb)
    end
    if ThermometresRond[TherNb].vert ~= nil then
        val = Recup(ThermometresRond[TherNb].vert)
        val = string.gsub(val, " ", "")
        cree("ind-vert", val, TherNb)
    end
    if ThermometresRond[TherNb].jaune ~= nil then
        val = Recup(ThermometresRond[TherNb].jaune)
        val = string.gsub(val, " ", "")
        cree("ind-jaune", val, TherNb)
    end
   if ThermometresRond[TherNb].blanc ~= nil then
        val = Recup(ThermometresRond[TherNb].blanc)
        val = string.gsub(val, " ", "")
        cree("ind-blanc", val, TherNb)
    end

    if ThermometresRond[TherNb].aiguille ~= nil then
        val = Recup(ThermometresRond[TherNb].aiguille)
        val = string.gsub(val, " ", "")
        cree("aiguille", val, TherNb)
    end
    os.execute('mogrify -resize '..ThermometresRond[TherNb].taille..'! '..Rep..'/Thermorond'..TherNb..'.png && composite -blend 0x'..ThermometresRond[TherNb].opacite..' null: '..Rep..'/Thermorond'..TherNb..'.png -matte '..Rep..'/Thermorond'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end

function cree(aiguille, angle, TherNb)
    angle = (angle*4)-40
    os.execute(' convert -background transparent '..Rep_ThermRond..'/'..aiguille..'.png -rotate '..angle..' '..Rep..'/direction_rot.png && composite -compose Over  -gravity Center '..Rep..'/direction_rot.png '..Rep..'/Thermorond'..TherNb..'.png '..Rep..'/Thermorond'..TherNb..'.png')
		
end


function lune()
    
    local j, h, m = Age:match("(%d+) Jours (%d+)h (%d+)m")
    if j == nil then
        j, h, m = Age:match("(%d+) Jour (%d+)h (%d+)m")
        if j == nil then
            h, m = Age:match("(%d+)h (%d+)m")
            j = 0
        end
    end
    
    local angle = ((360/42524)*((((j*24)+h)*60)+m))+180

    os.execute(' convert -background transparent '..Rep_Lune..'/indicateur.png -rotate '..angle..' '..Rep..'/indicateur_rot.png && composite -compose Over  -gravity Center '..Rep..'/indicateur_rot.png '..Rep_Lune..'/lune-base.png '..Rep..'/lune.png && mogrify -resize '..lunaison.taille..'! '..Rep..'/lune.png && composite -blend 0x'..lunaison.opacite..' null: '..Rep..'/lune.png -matte '..Rep..'/lune.png')
    os.execute('chmod -R o+rw- '..Rep)
    
end


function Baro()
    
    local angle = ((conditioncourante.Pression-980)*4.5)-135

    ---- Aiguille
     os.execute('convert -background transparent '..Rep_Barometre..'/aiguille.png -rotate '..angle..' '..Rep..'/aiguille_rot.png && composite -compose Over  -gravity Center '..Rep..'/aiguille_rot.png '..Rep_Barometre..'/base.png '..Rep..'/Barometre.png && mogrify -resize '..Barometre.taille..'! '..Rep..'/Barometre.png && composite -blend 0x'..Barometre.opacite..' null: '..Rep..'/Barometre.png -matte '..Rep..'/Barometre.png')
    os.execute('chmod -R o+rw- '..Rep)
end


-- initialisation création rose des sables
function fonc_init_rose()

    for j = 1,jours do
        init_rose[j] = {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
        init_rose_raf[j]= {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
    end
    
end


-----Affichage Barometre
function conky_Images_Barometre(p, s, f, o)

    if Barometre.taille == nil then 
        Barometre.opacite = o
        Barometre.taille = s
        Baro()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Barometre.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Barometre.png "
    end
end


-----Affichage lune
function conky_Images_Lunaison(p, s, f, o)
    if lunaison.taille == nil then 
        lunaison.opacite = o
        lunaison.taille = s
        lune()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/lune.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/lune.png "
    end
end


-----Affichage Thermometre
function conky_Images_Thermo(p, s, f, n, o)


  n = tonumber(n)
    if Thermometre[n].opacite == nil then
        Thermometre[n].opacite = o
        Thermometre[n].taille = s
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermo"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermo"..n..".png"
    end
end

function conky_Images_ThermoRond(p, s, f, n, o, a, b, c, d)

--p=position s=taille f=frequence de rafraichissement n=num therm o=opacité a=info 1 b=info 2 c=info 3 d=info 4
    n = tonumber(n)
    if ThermometresRond[n] == nil then
        ThermometresRond[n] = {}
        Nb_ThermRond = n
        local pos
        if a ~= nil then
            a = string.gsub(a, "-", " ")
            if string.find(a, 'a=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].aiguille = string.sub(a, pos+1)
            elseif string.find(a, 'b=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].bleu = string.sub(a, pos+1)
            elseif string.find(a, 'r=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].rouge = string.sub(a, pos+1)
            elseif string.find(a, 'v=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].vert = string.sub(a, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].jaune = string.sub(a, pos+1)
	    elseif string.find(a, 'w=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].blanc = string.sub(a, pos+1)
            end
        end
        if b ~= nil then
            b = string.gsub(b, "-", " ")
            if string.find(b, 'a=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].aiguille = string.sub(b, pos+1)
            elseif string.find(b, 'b=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].bleu = string.sub(b, pos+1)
            elseif string.find(b, 'r=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].rouge = string.sub(b, pos+1)
            elseif string.find(b, 'v=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].vert = string.sub(b, pos+1)
	    elseif string.find(b, 'j=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].jaune = string.sub(b, pos+1)
	    elseif string.find(b, 'w=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].blanc = string.sub(b, pos+1)
            end
        end
        if c ~= nil then
            c = string.gsub(c, "-", " ")
            if string.find(c, 'a=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].aiguille = string.sub(c, pos+1)
            elseif string.find(c, 'b=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].bleu = string.sub(c, pos+1)
            elseif string.find(c, 'r=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].rouge = string.sub(c, pos+1)
            elseif string.find(c, 'v=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].vert = string.sub(c, pos+1)
	    elseif string.find(c, 'j=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].jaune = string.sub(c, pos+1)
	    elseif string.find(c, 'w=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].blanc = string.sub(c, pos+1)
            end
        end
        if d ~= nil then
            d = string.gsub(d, "-", " ")
            if string.find(d, 'a=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].aiguille = string.sub(d, pos+1)
            elseif string.find(d, 'b=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].bleu = string.sub(d, pos+1)
            elseif string.find(d, 'r=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].rouge = string.sub(d, pos+1)
            elseif string.find(d, 'v=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].vert = string.sub(d, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].jaune = string.sub(d, pos+1)
	    elseif string.find(d, 'w=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].blanc = string.sub(d, pos+1)
            end
        end
        ThermometresRond[n].taille = s
        ThermometresRond[n].opacite = o
        CreaThermometreRond(n)
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermorond"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermorond"..n..".png"
    end
end


-----Affichage rose des sables
--Condition courante
function conky_Images_Rose(p, s, f, o)
    j = 1

    if init_rose[j].CondCour == nil then
        Rose(conditioncourante.VentDir, conditioncourante.VentPlein, conditioncourante.VentForce, "Rose", s, o)
        init_rose[j].CondCour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Rose.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Rose.png"
    end
end


--Prévision sur la journée
function conky_Images_Jour_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentForce, "RoseJour"..j, s, o)
        init_rose[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJour"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJour"..j..".png"
    end
end

function conky_Images_Jour_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentRafales, "RoseJourR"..j, s, o)
        init_rose_raf[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJourR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJourR"..j..".png"
    end
end


--Prévision sur la nuit
function conky_Images_Nuit_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentForce, "RoseNuit"..j, s, o)
        init_rose[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuit"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuit"..j..".png"
    end
end

function conky_Images_Nuit_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentRafales, "RoseNuitR"..j, s, o)
        init_rose_raf[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuitR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuitR"..j..".png"
    end
end


--Condition Matinée
function conky_Images_Matin_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Matin == nil then
        Rose(conditionMatin[j].VentDir, conditionMatin[j].VentP, conditionMatin[j].VentForce, "RoseMatin"..j, s, o)
        init_rose[j].Matin = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseMatin"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseMatin"..j..".png"
    end
end


--Condition Après midi
function conky_Images_AM_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].AM == nil then
        Rose(conditionAM[j].VentDir, conditionAM[j].VentP, conditionAM[j].VentForce, "RoseAM"..j, s, o)
        init_rose[j].AM = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseAM"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseAM"..j..".png"
    end
end


--Condition soirée
function conky_Images_Soiree_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Soiree == nil then
        Rose(conditionSoiree[j].VentDir, conditionSoiree[j].VentP, conditionSoiree[j].VentForce, "RoseSoiree"..j, s, o)
        init_rose[j].Soiree = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseSoiree"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseSoiree"..j..".png"
    end
end

--Condition Nuit
function conky_Images_Noct_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Noct == nil then
        Rose(conditionNoct[j].VentDir, conditionNoct[j].VentP, conditionNoct[j].VentForce, "RoseNoct"..j, s, o)
        init_rose[j].Noct = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNoct"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNoct"..j..".png"
    end
end

--huitHeures
function conky_Images_huitHeures_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].huitHeures == nil then
        Rose(huitHeures[j].VentDir, huitHeures[j].VentP, huitHeures[j].VentForce, "RosehuitHeures"..j, s, o)
        init_rose[j].huitHeures = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RosehuitHeures"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RosehuitHeures"..j..".png"
    end
end




--Récupération de données
function conky_Images_MAJ(cfg)


	local s = '${lua Meteo_etat_MAJ}'
	local MAJ = conky_parse( s )
		
	
	if maj1 == nil then
		init(cfg)
		maj1 = "ok"
		MAJHold = MAJ+1
		
	end
	
	if MAJ ~= MAJHold then

		MAJHold = MAJ
--Récupération dernière condition courante
		local file = assert(io.open(repsauv.."/CondCour", "r") )
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "latitude", "longitude"}
		for i = 1,22 do
			conditioncourante[t[i]] = donee[i]
		end
		time = donee[23]
		io.close(file)
		
--Récupération prévision
		
		for j = 1,jours do
			local file = assert(io.open(repsauv.."/prevision"..j, "r"))
			local line = file:read()
			local i = 0
			local donee = {}
			for line in file:lines() do
				i = i+1
				donee[i] = line
			end
			local info = {}
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionJour[j] = {}
			for i = 1, 21 do
				info[t[i]] = donee[i]
			end
			conditionJour[j] = info
			local info1 = {}
			t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionNuit[j] = {}
			for i = 22, 41 do
				info1[t[i-21]] = donee[i]
			end
			conditionNuit[j] = info1
			local info2 = {}
			t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
			InfoJour[j] = {}
			for i = 42, 48 do
				info2[t[i-41]] = donee[i]
			end
			InfoJour[j] = info2
			io.close(file)
			
			if matin == "oui" then
				local file = assert(io.open(repsauv.."/matin"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionMatin[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionMatin[j] = info3
				io.close(file)
			end

			if apresmidi == "oui" then
				local file = assert(io.open(repsauv.."/ApresMidi"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionAM[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionAM[j] = info3
				io.close(file)
			end

			if soiree == "oui" then
				local file = assert(io.open(repsauv.."/Soiree"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionSoiree[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionSoiree[j] = info3
				io.close(file)
			end

			if nuit == "oui" then
				local file = assert(io.open(repsauv.."/Nuit"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionNoct[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionNoct[j] = info3
				io.close(file)
			end

		end

		if huit == "oui" then
			for j = 1,8 do
				local file = assert(io.open(repsauv.."/huitHeures"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas", "VentP", "VentIcone"}
				huitHeures[j] = {}
				local info3 = {}
				for i = 1, 15 do
					info3[t[i]] = donee[i]
				end
				huitHeures[j] = info3
				io.close(file)
			end
		end			

		--Récupération lunaison
		local file = assert(io.open(repsauv.."/lunaison", "r"))
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		ephemerides = donee[1]
		ephemerides1 = donee[2]
		ephemerides2 = donee[3]
		Visibilite = donee[4]
		Phases = donee[5]
		Phases1 = donee[6]
		Phases2 = donee[7]
		Noeud_lunaire = donee[8]
		Apogee = donee[9]
		Perigee = donee[10]
		Distance = donee[11]
		Age = donee[12]
		Lever_LuneHeure = donee[13]
		Lever_LuneMinute = donee[14]
		Coucher_LuneHeure = donee[15]
		Coucher_LuneMinute = donee[16]
		Eclipse_partielle = donee[17]
		Eclipse_total = donee[18]
		io.close(file)
			

		if Barometre.taille ~= nil then Baro() end
		if lunaison.taille ~= nil then lune() end
		fonc_init_rose()
		
		local i = 0
		while i ~= Nb_Thermo do
			i = i+1
			CreaThermometre(i)
		end
		i = 0
		while i ~= Nb_ThermRond do
			i = i+1
			CreaThermometreRond(i)
		end




		if Mode == "fondecran" then
			FondEcran_init()
		end
		if Mode == "fondinactif" then
			FondInactif_init()
		end
		
		collectgarbage()
		
	end			

	return ""
end



--initialisation paramètres
function init(cfg)
	
	local home = os.getenv("HOME")
	cfg = string.gsub(cfg, "~", home)
	cfg = string.gsub(cfg, "$HOME", home)
	imagecfg = cfg

	Nb_Thermo = 0
	Nb_ThermRond = 0
	local Thermo = false
	local ThermRond = false

	local file = assert(io.open(cfg, "rb") )

	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'repfonts=') ~= nil then
			repfonts = string.sub(line, pos1+1)
		elseif string.find(line, 'ThermRond=') ~= nil then
			Rep_ThermRond = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1=') ~= nil then
			palier1 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2=') ~= nil then
			palier2 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3=') ~= nil then
			palier3 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4=') ~= nil then
			palier4 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1coulfont=') ~= nil then
			palier1coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2coulfont=') ~= nil then
			palier2coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3coulfont=') ~= nil then
			palier3coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4coulfont=') ~= nil then
			palier4coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'Lune=') ~= nil then
			Rep_Lune = string.sub(line, pos1+1)
		elseif string.find(line, 'Barometre=') ~= nil then
			Rep_Barometre = string.sub(line, pos1+1)
		elseif string.find(line, 'repmeteo=') ~= nil then
			repmeteo = string.sub(line, pos1+1)
		elseif string.find(line, 'IconesRep=') ~= nil then
			IconesRep = string.sub(line, pos1+1)
		elseif string.find(line, 'Mode=') ~= nil then
			Mode = string.sub(line, pos1+1)
		elseif string.find(line, 'MiseEnPage=') ~= nil then
			mise_en_page = string.sub(line, pos1+1)
			mise_en_page = string.gsub(mise_en_page, "~", home)
			mise_en_page = string.gsub(mise_en_page, "$HOME", home)
			pos = string.find(mise_en_page, "creationmodules")
			fich_creationmodule =  string.sub(mise_en_page, pos)..".sh"
		end
		
		--debut thermomètre	mercure	
		if string.find(line, 'Thermometres=') ~= nil then
			Thermo = true
			Nb_Thermo = Nb_Thermo+1
			Thermometre[tonumber(Nb_Thermo)] = {}
		end
		
		if Thermo ~= false then
			if string.find(line, 'base=') ~= nil then
				Thermometre[Nb_Thermo].base = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure=') ~= nil then
				Thermometre[Nb_Thermo].mercure = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure_info=') ~= nil then
				local pos2 = string.find(line, '}')
				if pos2 ~= nil then
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1, pos2-1)
				else
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1)
				end
			elseif string.find(line, 'plot=') ~= nil then
				Thermometre[Nb_Thermo].plot = string.sub(line, pos1+1)
			elseif string.find(line, 'plot_info=') ~= nil then
				local pos2 = string.find(line, '}')
				Thermometre[Nb_Thermo].plot_info = string.sub(line, pos1+1, pos2-1)
			end
	
			pos1 = string.find(line, '}')
			if pos1 ~= nil then
				line = string.sub(line, pos1)
				if string.find(line, ',') == nil then
					Thermo = false
				else
					Nb_Thermo = Nb_Thermo+1
					Thermometre[Nb_Thermo] = {}
				end
			end
		end

		--fin thermomètre

		
	end
	io.close(file)

	
	local fichier_init = conky_parse( "${lua Meteo_fichier_init}" )
	meteocfg=fichier_init
	local file = assert(io.open(fichier_init, "rb") )
	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'repsauv=') ~= nil then
			repsauv = string.sub(line, pos1+1)
		elseif string.find(line, 'TempShell=') ~= nil then
			r = string.sub(line, pos1+1)
		elseif string.find(line, 'web=') ~= nil then
			cmd1 = string.sub(line, pos1+1)
		elseif string.find(line, 'periode=') ~= nil then
			jours = string.sub(line, pos1+1)
		elseif string.find(line, 'matinée=') ~= nil then
			matin = string.sub(line, pos1+1)
		elseif string.find(line, 'am=') ~= nil then
			apresmidi = string.sub(line, pos1+1)
		elseif string.find(line, 'soiree=') ~= nil then
			soiree = string.sub(line, pos1+1)
		elseif string.find(line, 'nuit=') ~= nil then
			nuit = string.sub(line, pos1+1)
		elseif string.find(line, 'Prev8heures=') ~= nil then
			huit = string.sub(line, pos1+1)
		elseif string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'Palier=') ~= nil then
			Palier = tonumber(string.sub(line, pos1+1))
		elseif string.find(line, 'update=') ~= nil then
			delais = string.sub(line, pos1+1)
		end
	end
	io.close(file)	
	r = string.gsub(r, "~", home)
	r = string.gsub(r, "$HOME", home)
	repsauv = string.gsub(repsauv, "~", home)
	repsauv = string.gsub(repsauv, "$HOME", home)


--Création répertoire de travail
	l = cmd1:match("/(%d+)")
	if string.find(cmd1, 'forecast') ~= nil then
		pos1 = string.find(cmd1, '/weather')
		cmd = string.sub(cmd1, 0, pos1-1)
	else
		pos1 = string.find(cmd1, '/current')
		cmd = string.sub(cmd1, 0, pos1-1)
	end

	local bar, bar1
	local l1 = string.gsub(cmd, '/'..l, "" )
	local b = 1
	while bar1 == nil do
		b = b+1
		bar1 = string.find(l1, '/', -b)
	end
	l1 = string.sub(l1, bar1+1)
	Rep = r.."/"..l1.."/"..l

	MAJHold = "10"
	
	return ""
end

------------------------------------------------------------- Fond ecran --------------------------------------------------

function FondEcran_init()


if not existe(repsauv.."/fond-meteo.png") then
	boucle = boucle+1
end

if boucle ~= 0 then
	print("","Mode = "..Mode)
	-- sauvegarde fond ecran
	os.execute(repmeteo..'/scripts/fond-gestion.sh sauvegarde')
	-- creation des modules externes
	creation_module(mise_en_page)
	-- Maj du fond d'écran	
	os.execute(repmeteo..'/scripts/fond-gestion.sh integration ')

end
	boucle = boucle+1
end

function FondInactif_init()

	print("","Mode = "..Mode)
	-- creation des modules externes
	creation_module(mise_en_page)

end

function conky_extinction()
-- remise en place fond ecran-ori
os.execute(repmeteo..'/scripts/fond-gestion.sh restauration')	
end

function mise_en_forme(x)
	local pos = string.find(x, "{{")
	local Nb = 0
	local info, pos1
	while pos ~= nil do
		Nb = Nb+1
		if Nb == 1 then
			code = string.sub(x, 0, pos-1)
		else
			code = code..string.sub(x, pos1+2, pos-1)
		end
		pos1 = string.find(x, "}}", pos+2)
		info = string.sub(x, pos+2, pos1-1)
		code = code..Recup_info(info)
		pos = string.find(x, "{{", pos1+2)
	end
	if pos1 ~= nil then
		code = code..string.sub(x, pos1+2)
	else
		code = x
	end

	return code
end


function creation_module(creationmodules)
------------copie et recuperation du fichier  

	local file = io.open(creationmodules)
	local line = file:read()
	local file1 =  io.open(Rep.."/"..fich_creationmodule, "w+" )
	------------- mise en place fichier + entête 

	file1:write ("#!/bin/bash \n\n##########################################\ncheminref="..repmeteo.."\nsource "..imagecfg.." 2>/dev/null\nsource "..meteocfg.." 2>/dev/null\n")
	------------------------------------------------------------------------
		for line in file:lines() do
	---------------------------------------------------------
			file1:write (mise_en_forme(line), "\n")
	---------------------------------------------------------
		end
	------ fermeture et ecriture
	io.close(file1)
	io.close(file)
	------ execution du fichier bash
	os.execute('chmod +x '..Rep..'/'..fich_creationmodule..' && '..Rep..'/'..fich_creationmodule)
	
	
end
function Recup_info(x)
	local info, pos1, pos
	pos = string.find(x, " ")
	if pos ~= nil then
		info = string.sub(x, 0, pos-1)
		pos1 = string.find(x, " ", pos+1)
	else
		info = x
	end
	if pos ~= nil then
		if pos1 ~= nil then
			arg1 = string.sub(x, pos+1, pos1-1)
			pos = string.find(x, " ", pos1+1)
		else
			arg1 = string.sub(x, pos+1)
		end
		if pos1 ~= nil then
			if pos ~= nil then
				arg2 = string.sub(x, pos1+1, pos-1)
				pos1 = string.find(x, " ", pos+1)
			else
				arg2 = string.sub(x, pos1+1)
			end
			if pos ~= nil then
				if pos1 ~= nil then
					arg3 = string.sub(x, pos+1, pos1-1)
					pos = string.find(x, " ", pos1+1)
				else
					arg3 = string.sub(x, pos+1)
				end
				if pos1 ~= nil then
					if pos ~= nil then
						arg4 = string.sub(x, pos1+1, pos-1)
						pos1 = string.find(x, " ", pos+1)
					else
						arg4 = string.sub(x, pos1+1)
					end
					if pos ~= nil then
						if pos1 ~= nil then
							arg5 = string.sub(x, pos+1, pos1-1)
							pos = string.find(x, " ", pos1+1)
						else
							arg5 = string.sub(x, pos+1)
						end
						if pos1 ~= nil then
							if pos ~= nil then
								arg6 = string.sub(x, pos1+1, pos-1)
								pos1 = string.find(x, " ", pos+1)
							else
								arg6 = string.sub(x, pos1+1)
							end
							if pos ~= nil then
								if pos1 ~= nil then
									arg7 = string.sub(x, pos+1, pos1-1)
									pos = string.find(x, " ", pos1+1)
								else
									arg7 = string.sub(x, pos+1)
								end
								if pos1 ~= nil then
									if pos ~= nil then
										arg8 = string.sub(x, pos1+1, pos-1)
										pos1 = string.find(x, " ", pos+1)
									else
										arg8 = string.sub(x, pos1+1)
									end
									if pos ~= nil then
										if pos1 ~= nil then
											arg9 = string.sub(x, pos+1, pos1-1)
											pos = string.find(x, " ", pos1+1)
										else
											arg9 = string.sub(x, pos+1)
										end
										if pos1 ~= nil then
											if pos ~= nil then
												arg10 = string.sub(x, pos1+1, pos-1)
												pos1 = string.find(x, " ", pos+1)
											else
												arg10 = string.sub(x, pos1+1)
											end
											if pos ~= nil then
												if pos1 ~= nil then
													arg11 = string.sub(x, pos+1, pos1-1)
													pos = string.find(x, " ", pos1+1)
												else
													arg11 = string.sub(x, pos+1)
												end
											end
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end
	
		
	if info == "Meteo_TempRes" then
		return conditioncourante.Tempr
	elseif info == "Meteo_TempAct" then
		return conditioncourante.Temp
	elseif info == "Meteo_CondMeteo" then
		return conditioncourante.Cond
	elseif info == "Meteo_CondMeteo1" then
		return conditioncourante.CondMeteo1
	elseif info == "Meteo_CondMeteo2" then
		return conditioncourante.CondMeteo2
	elseif info == "Meteo_CondMeteo1se" then
		return conditioncourante.CondMeteo1se
	elseif info == "Meteo_CondMeteo2se" then
		return conditioncourante.CondMeteo2se
	elseif info == "Meteo_VentDir" then
		return conditioncourante.VentDir
	elseif info == "Meteo_VentDirP" then
		return conditioncourante.VentPlein
	elseif info == "Meteo_VentForce" then
		return conditioncourante.VentForce
	elseif info == "Meteo_Humidite" then
		return conditioncourante.Humidite
	elseif info == "Meteo_Rose" then
		return conditioncourante.PointRosee
	elseif info == "Meteo_Pression" then
		return conditioncourante.Pression
	elseif info == "Meteo_Visibilite" then
		return conditioncourante.Visibilite
	elseif info == "Meteo_CouvNuage" then
		return conditioncourante.CouvNuage
	elseif info == "Meteo_Uv" then
		return conditioncourante.Uv
	elseif info == "Meteo_IconeM" then
		if os.date("%H%M", os.time()) <= InfoJour[1].CoucherSoleilH..InfoJour[1].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[1].LeverSoleilH..InfoJour[1].LeverSoleilM then
			return arg1.."/jour/"..conditioncourante.Icone..".png"
		else
			return arg1.."/nuit/"..conditioncourante.Icone..".png"
		end
	elseif info == "Meteo_IconeV" then
		return arg1.."/"..conditioncourante.VentIcone
	elseif info == "Meteo_Ville" then
		return conditioncourante.Ville
	elseif info == "Meteo_latitude" then
		return conditioncourante.latitude
	elseif info == "Meteo_longitude" then
		return conditioncourante.longitude
	elseif info == "Image_version" then
		return Version
	--prévision journée
	elseif info == "Meteo_Jour_CondMeteo" then
		return conditionJour[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Jour_CondMeteo1" then
		return conditionJour[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Jour_CondMeteo2" then
		return conditionJour[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Jour_CondMeteo1se" then
		return conditionJour[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Jour_CondMeteo2se" then
		return conditionJour[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Jour_Temp" then
		return conditionJour[tonumber(arg1)].Temp
	elseif info == "Meteo_Jour_TempRes" then
		return conditionJour[tonumber(arg1)].TempRes
	elseif info == "Meteo_Jour_ProbPrec" then
		return conditionJour[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Jour_VentDir" then
		return conditionJour[tonumber(arg1)].VentDir
	elseif info == "Meteo_Jour_VentDirP" then
		return conditionJour[tonumber(arg1)].VentP
	elseif info == "Meteo_Jour_VentForce" then
		return conditionJour[tonumber(arg1)].VentForce
	elseif info == "Meteo_Jour_VentRafales" then
		return conditionJour[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Jour_Uv" then
		return conditionJour[tonumber(arg1)].Uv
	elseif info == "Meteo_Jour_ProbOrage" then
		return conditionJour[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Jour_NivPrec" then
		return conditionJour[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Jour_QPluie" then
		return conditionJour[tonumber(arg1)].QPluie
	elseif info == "Meteo_Jour_QNeige" then
		return conditionJour[tonumber(arg1)].QNeige
	elseif info == "Meteo_Jour_EVerglas" then
		return conditionJour[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Jour_IconeM" then
		return arg1.."/jour/"..conditionJour[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Jour_IconeV" then
		return arg1.."/"..conditionJour[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Jour_IconeR" then
		return arg1.."/"..conditionJour[tonumber(arg5)].RafalesIcone
	--prévision Nuit
	elseif info == "Meteo_Nuit_CondMeteo" then
		return conditionNuit[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Nuit_CondMeteo1" then
		return conditionNuit[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Nuit_CondMeteo2" then
		return conditionNuit[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Nuit_CondMeteo1se" then
		return conditionNuit[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Nuit_CondMeteo2se" then
		return conditionNuit[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Nuit_Temp" then
		return conditionNuit[tonumber(arg1)].Temp
	elseif info == "Meteo_Nuit_TempRes" then
		return conditionNuit[tonumber(arg1)].TempRes
	elseif info == "Meteo_Nuit_ProbPrec" then
		return conditionNuit[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Nuit_VentDir" then
		return conditionNuit[tonumber(arg1)].VentDir
	elseif info == "Meteo_Nuit_VentDirP" then
		return conditionNuit[tonumber(arg1)].VentP
	elseif info == "Meteo_Nuit_VentForce" then
		return conditionNuit[tonumber(arg1)].VentForce
	elseif info == "Meteo_Nuit_VentRafales" then
		return conditionNuit[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Nuit_Uv" then
		return conditionNuit[tonumber(arg1)].Uv
	elseif info == "Meteo_Nuit_ProbOrage" then
		return conditionNuit[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Nuit_NivPrec" then
		return conditionNuit[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Nuit_QPluie" then
		return conditionNuit[tonumber(arg1)].QPluie
	elseif info == "Meteo_Nuit_QNeige" then
		return conditionNuit[tonumber(arg1)].QNeige
	elseif info == "Meteo_Nuit_EVerglas" then
		return conditionNuit[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Nuit_IconeM" then
		return arg1.."/nuit/"..conditionNuit[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Nuit_IconeV" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Nuit_IconeR" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].RafalesIcone
	----Prévision quart de journée
	--Matin
	elseif info == "Meteo_Matin_CondMeteo " then
		return conditionMatin[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Matin_CondMeteo1" then
		return conditionMatin[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Matin_CondMeteo2" then
		return conditionMatin[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Matin_CondMeteo1se" then
		return conditionMatin[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Matin_CondMeteo2se" then
		return conditionMatin[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Matin_TempMax" then
		return conditionMatin[tonumber(arg1)].TempMax
	elseif info == "Meteo_Matin_TempMin" then
		return conditionMatin[tonumber(arg1)].TempMin
	elseif info == "Meteo_Matin_TempMaxRes" then
		return conditionMatin[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Matin_TempMinRes" then
		return conditionMatin[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Matin_ProbPrec" then
		return conditionMatin[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Matin_VentDir" then
		return conditionMatin[tonumber(arg1)].VentDir
	elseif info == "Meteo_Matin_VentP" then
		return conditionMatin[tonumber(arg1)].VentP
	elseif info == "Meteo_Matin_VentForce" then
		return conditionMatin[tonumber(arg1)].VentForce
	elseif info == "Meteo_Matin_QPluie" then
		return conditionMatin[tonumber(arg1)].QPluie
	elseif info == "Meteo_Matin_QNeige" then
		return conditionMatin[tonumber(arg1)].QNeige
	elseif info == "Meteo_Matin_Humidite" then
		return conditionMatin[tonumber(arg1)].Humidite
	elseif info == "Meteo_Matin_CouvNuage" then
		return conditionMatin[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Matin_Rose" then
		return conditionMatin[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Matin_Visibilite" then
		return conditionMatin[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Matin_IconeM" then
		return arg1.."/jour/"..conditionMatin[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Matin_IconeV" then
		return arg1.."/"..conditionMatin[tonumber(arg5)].VentIcone
	--Après midi
	elseif info == "Meteo_AM_CondMeteo " then
		return conditionAM[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_AM_CondMeteo1" then
		return conditionAM[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_AM_CondMeteo2" then
		return conditionAM[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_AM_CondMeteo1se" then
		return conditionAM[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_AM_CondMeteo2se" then
		return conditionAM[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_AM_TempMax" then
		return conditionAM[tonumber(arg1)].TempMax
	elseif info == "Meteo_AM_TempMin" then
		return conditionAM[tonumber(arg1)].TempMin
	elseif info == "Meteo_AM_TempMaxRes" then
		return conditionAM[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_AM_TempMinRes" then
		return conditionAM[tonumber(arg1)].TempMinR
	elseif info == "Meteo_AM_ProbPrec" then
		return conditionAM[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_AM_VentDir" then
		return conditionAM[tonumber(arg1)].VentDir
	elseif info == "Meteo_AM_VentP" then
		return conditionAM[tonumber(arg1)].VentP
	elseif info == "Meteo_AM_VentForce" then
		return conditionAM[tonumber(arg1)].VentForce
	elseif info == "Meteo_AM_QPluie" then
		return conditionAM[tonumber(arg1)].QPluie
	elseif info == "Meteo_AM_QNeige" then
		return conditionAM[tonumber(arg1)].QNeige
	elseif info == "Meteo_AM_Humidite" then
		return conditionAM[tonumber(arg1)].Humidite
	elseif info == "Meteo_AM_CouvNuage" then
		return conditionAM[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_AM_Rose" then
		return conditionAM[tonumber(arg1)].PointRosee
	elseif info == "Meteo_AM_Visibilite" then
		return conditionAM[tonumber(arg1)].Visibilite
	elseif info == "Meteo_AM_IconeM" then
		return arg1.."/jour/"..conditionAM[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_AM_IconeV" then
		return arg1.."/"..conditionAM[tonumber(arg5)].VentIcone
	--Soirée
	elseif info == "Meteo_Soiree_CondMeteo " then
		return conditionSoiree[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Soiree_CondMeteo1" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Soiree_CondMeteo2" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Soiree_CondMeteo1se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Soiree_CondMeteo2se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Soiree_TempMax" then
		return conditionSoiree[tonumber(arg1)].TempMax
	elseif info == "Meteo_Soiree_TempMin" then
		return conditionSoiree[tonumber(arg1)].TempMin
	elseif info == "Meteo_Soiree_TempMaxRes" then
		return conditionSoiree[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Soiree_TempMinRes" then
		return conditionSoiree[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Soiree_ProbPrec" then
		return conditionSoiree[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Soiree_VentDir" then
		return conditionSoiree[tonumber(arg1)].VentDir
	elseif info == "Meteo_Soiree_VentP" then
		return conditionSoiree[tonumber(arg1)].VentP
	elseif info == "Meteo_Soiree_VentForce" then
		return conditionSoiree[tonumber(arg1)].VentForce
	elseif info == "Meteo_Soiree_QPluie" then
		return conditionSoiree[tonumber(arg1)].QPluie
	elseif info == "Meteo_Soiree_QNeige" then
		return conditionSoiree[tonumber(arg1)].QNeige
	elseif info == "Meteo_Soiree_Humidite" then
		return conditionSoiree[tonumber(arg1)].Humidite
	elseif info == "Meteo_Soiree_CouvNuage" then
		return conditionSoiree[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Soiree_Rose" then
		return conditionSoiree[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Soiree_Visibilite" then
		return conditionSoiree[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Soiree_IconeM" then
		return arg1.."/nuit/"..conditionSoiree[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Soiree_IconeV" then
		return arg1.."/"..conditionSoiree[tonumber(arg5)].VentIcone
	--nuit
	elseif info == "Meteo_Noct_CondMeteo " then
		return conditionNoct[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Noct_CondMeteo1" then
		return conditionNoct[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Noct_CondMeteo2" then
		return conditionNoct[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Noct_CondMeteo1se" then
		return conditionNoct[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Noct_CondMeteo2se" then
		return conditionNoct[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Noct_TempMax" then
		return conditionNoct[tonumber(arg1)].TempMax
	elseif info == "Meteo_Noct_TempMin" then
		return conditionNoct[tonumber(arg1)].TempMin
	elseif info == "Meteo_Noct_TempMaxRes" then
		return conditionNoct[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Noct_TempMinRes" then
		return conditionNoct[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Noct_ProbPrec" then
		return conditionNoct[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Noct_VentDir" then
		return conditionNoct[tonumber(arg1)].VentDir
	elseif info == "Meteo_Noct_VentP" then
		return conditionNoct[tonumber(arg1)].VentP
	elseif info == "Meteo_Noct_VentForce" then
		return conditionNoct[tonumber(arg1)].VentForce
	elseif info == "Meteo_Noct_QPluie" then
		return conditionNoct[tonumber(arg1)].QPluie
	elseif info == "Meteo_Noct_QNeige" then
		return conditionNoct[tonumber(arg1)].QNeige
	elseif info == "Meteo_Noct_Humidite" then
		return conditionNoct[tonumber(arg1)].Humidite
	elseif info == "Meteo_Noct_CouvNuage" then
		return conditionNoct[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Noct_Rose" then
		return conditionNoct[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Noct_Visibilite" then
		return conditionNoct[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Noct_IconeM" then
		return arg1.."/nuit/"..conditionNoct[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Noct_IconeV" then
		return arg1.."/"..conditionNoct[tonumber(arg5)].VentIcone
	--huitHeures
	elseif info == "Meteo_huitHeures_CondMeteo " then
		return huitHeures[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_huitHeures_CondMeteo1" then
		return huitHeures[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_huitHeures_CondMeteo2" then
		return huitHeures[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_huitHeures_CondMeteo1se" then
		return huitHeures[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_huitHeures_CondMeteo2se" then
		return huitHeures[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_huitHeures_TempMax" then
		return huitHeures[tonumber(arg1)].TempMax
	elseif info == "Meteo_huitHeures_TempMin" then
		return huitHeures[tonumber(arg1)].TempMin
	elseif info == "Meteo_huitHeures_TempMaxRes" then
		return huitHeures[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_huitHeures_TempMinRes" then
		return huitHeures[tonumber(arg1)].TempMinR
	elseif info == "Meteo_huitHeures_ProbPrec" then
		return huitHeures[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_huitHeures_VentDir" then
		return huitHeures[tonumber(arg1)].VentDir
	elseif info == "Meteo_huitHeures_VentP" then
		return huitHeures[tonumber(arg1)].VentP
	elseif info == "Meteo_huitHeures_VentForce" then
		return huitHeures[tonumber(arg1)].VentForce
	elseif info == "Meteo_huitHeures_QPluie" then
		return huitHeures[tonumber(arg1)].QPluie
	elseif info == "Meteo_huitHeures_QNeige" then
		return huitHeures[tonumber(arg1)].QNeige
	elseif info == "Meteo_huitHeures_Humidite" then
		return huitHeures[tonumber(arg1)].Humidite
	elseif info == "Meteo_huitHeures_CouvNuage" then
		return huitHeures[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_huitHeures_Rose" then
		return huitHeures[tonumber(arg1)].PointRosee
	elseif info == "Meteo_huitHeures_Visibilite" then
		return huitHeures[tonumber(arg1)].Visibilite
	elseif info == "Meteo_huitHeures_IconeV" then
		return arg1.."/"..huitHeures[tonumber(arg5)].VentIcone
	elseif info == "Meteo_huitHeures_IconeM" then
		if huitHeures[tonumber(arg5)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg5)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end

	


	--lunaison
	elseif info == "Lune_ephemerides" then
		return ephemerides
	elseif info == "Lune_ephemerides1" then
		return ephemerides1
	elseif info == "Lune_ephemerides2" then
		return ephemerides2
	elseif info == "Lune_Visibilite" then
		return Visibilite
	elseif info == "Lune_Phases" then
		return Phases
	elseif info == "Lune_Phases1" then
		return Phases1
	elseif info == "Lune_Phases2" then
		return Phases2
	elseif info == "Lune_Noeudlunaire" then
		return Noeud_lunaire
	elseif info == "Lune_Apogee" then
		return Apogee
	elseif info == "Lune_Perigee" then
		return Perigee
	elseif info == "Lune_Distance" then
		return Distance
	elseif info == "Lune_Age" then
		return Age
	elseif info == "Lune_HLeverLune" then
		return Lever_LuneHeure
	elseif info == "Lune_MLeverLune" then
		return Lever_LuneMinute
	elseif info == "Lune_HCoucherLune" then
		return Coucher_LuneHeure
	elseif info == "Lune_MCoucherLune" then
		return Coucher_LuneMinute
	elseif info == "Lune_EclipsePartielle" then
		return Eclipse_partielle
	elseif info == "Lune_EclipseTotal" then
		return Eclipse_total
	elseif info == "Images_Barometre" then
		return conky_Images_Barometre(arg1, arg2, arg3, arg4)
	elseif info == "Images_Lunaison" then
		return conky_Images_Lunaison(arg1, arg2, arg3, arg4)
	elseif info == "Images_Thermo" then
		return conky_Images_Thermo(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_ThermoRond" then
		return conky_Images_ThermoRond(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)
	elseif info == "Images_Rose" then
		return conky_Images_Rose(arg1, arg2, arg3, arg4)
	elseif info == "Images_Jour_Rose" then
		return conky_Images_Jour_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Jour_RoseR" then
		return conky_Images_Jour_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_Rose" then
		return conky_Images_Nuit_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_RoseR" then
		return conky_Images_Nuit_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Matin_Rose" then
		return conky_Images_Matin_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_AM_Rose" then
		return conky_Images_AM_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Soiree_Rose" then
		return conky_Images_Soiree_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Noct_Rose" then
		return conky_Images_Noct_Rose(arg1, arg2, arg3, arg4, arg5)
	else
		return conky_parse( "${lua "..x.."}" )
	end
end

ca c'est fait je vais pouvoir m'attaquer a l'esthétique

Hors ligne

#1766 Le 03/01/2013, à 10:54

daniel38100

Re : [Conky] Alternative à weather.com (2)

daniel38100 a écrit :

images_meteo.lua

-- Créé par Didier-T (forum.ubuntu-fr.org), pour jpdipsy
-- Nécessite imagemagick http://apt.ubuntu.com/p/imagemagick



require "io"
require "os"


local Version = "v2.3c"
local conditionJour = {}
local conditionNuit = {}
local conditionMatin = {}
local conditionAM = {}
local conditionSoiree = {}
local conditionNoct = {}
local InfoJour = {}
local conditioncourante = {}
local huitHeures = {}
local Thermometre = {}
local ThermometresRond = {}
local init_thermo = {}
local init_thermo_res = {}
local init_rose = {}
local init_rose_raf = {}
local lunaison = {}
local Barometre = {}
local Rep, cmd, jours, matin, apresmidi, soiree, nuit, delais, r, repsauv, l, Rep_Therm, Rep_Rose, Palier, t1, MAJHold, maj1, Nb_Thermo, Rep_Lune, Rep_Barometre, Rep_ThermRond, Nb_ThermRond, palier1, palier2, palier3, palier4, mise_en_page,  fich_creationmodule
local boucle, imagecfg,meteocfg
boucle = tonumber("0")

-- Création rose des vent par jpdipsy
function Rose(i, dp, v, nom, taille, opacite)
    local angle, couleur, f ,couleurfont
    local vitesse = "'"..v.." km/h'"
    
    if v ~= nil then
        f = tonumber(v)
    else
        f = 0
    end
    
    if f <= Palier then
        couleur = palier1
        couleurfont = palier1coulfont
    elseif f <= Palier*2 then
        couleur = palier2
        couleurfont = palier2coulfont
    elseif f <= Palier*3 then
        couleur = palier3
        couleurfont = palier3coulfont
    elseif f >= (Palier*3)+1 then
        couleur = palier4
        couleurfont = palier4coulfont
    end


    if i == "Calme" then
        angle = nil
    elseif i == "N" then
        angle = 0
    elseif i == "NNE" then
        angle = 22.5
    elseif i == "NE" then
        angle = 45
    elseif i == "ENE" then
        angle = 67.5
    elseif i == "E" then
        angle = 90
    elseif i == "ESE" then
        angle = 112.5
    elseif i == "SE" then
        angle = 135
    elseif i == "SSE" then
        angle = 157.5
    elseif i == "S" then
        angle = 180
    elseif i == "SSO" then
        angle = 202.5
    elseif i == "SO" then
        angle = 225
    elseif i == "OSO" then
        angle = 247.5
    elseif i == "O" then
        angle = 270
    elseif i == "ONO" then
        angle = 292.5
    elseif i == "NO" then
        angle = 315
    elseif i == "NNO" then
        angle = 337.5
    else
        angle = nil
    end

    if angle ~= nil then

       os.execute(' convert -background transparent '..Rep_Rose..'/'..couleur..' -rotate '..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
   --os.execute(' convert -background transparent '..Rep_Rose..'/Calme.png -rotate -'..angle..' '..Rep..'/dir_rot.png && composite -compose Over  -gravity Center '..Rep..'/dir_rot.png '..Rep_Rose..'/'..couleur..' '..Rep..'/'..nom..'.png')
    else
        os.execute(' composite -compose Over  -gravity Center '..Rep_Rose..'/Calme.png '..Rep_Rose..'/base.png '..Rep..'/'..nom..'.png')
    end
    os.execute(' convert '..Rep..'/'..nom..'.png -font '..repfonts..'/AlteHaasGroteskBold.ttf   -fill '..couleurfont..' -pointsize 40 -gravity center -annotate +0+0 '..vitesse..' '..Rep..'/'..nom..'.png && mogrify -resize '..taille..'! '..Rep..'/'..nom..'.png && composite -blend 0x'..opacite..' null: '..Rep..'/'..nom..'.png -matte '..Rep..'/'..nom..'.png')
		os.execute('chmod -R o+rw- '..Rep)
		
end

-- Récupération des infos à afficher
function Recup(info)
    local num = info:match("%d+")
    if num ~= nil then
        info = string.gsub(info, num, "")
        num = tonumber(num)
    end
    info = string.gsub(info, " ", "")

    
    if info == "TempRes" then
        T1 =  conditioncourante.Tempr
    elseif info == "TempAct" then
        T1 =  conditioncourante.Temp
    elseif info == "Rose" then
        T1 =  conditioncourante.PointRosee
    elseif info == "Pression" then
        T1 =  conditioncourante.Pression
    elseif info == "Jour_Temp" then
        T1 =  conditionJour[num].Temp
    elseif info == "Jour_TempRes" then
        T1 =  conditionJour[num].TempRes
    elseif info == "Nuit_Temp" then
        T1 =  conditionNuit[num].Temp
    elseif info == "Nuit_TempRes" then
        T1 =  conditionNuit[num].TempRes
    elseif info == "Histo_Max" then
        T1 =  InfoJour[num].Histo_Max
    elseif info == "Histo_Min" then
        T1 =  InfoJour[num].Histo_Min
    elseif info == "Matin_TempMax" then
        T1 =  conditionMatin[num].TempMax
    elseif info == "Matin_TempMin" then
        T1 =  conditionMatin[num].TempMin
    elseif info == "Matin_TempMaxRes" then
        T1 =  conditionMatin[num].TempMaxR
    elseif info == "Matin_TempMinRes" then
        T1 =  conditionMatin[num].TempMinR
    elseif info == "Matin_Rose" then
        T1 =  conditionMatin[num].PointRosee
    elseif info == "AM_TempMax" then
        T1 =  conditionAM[num].TempMax
    elseif info == "AM_TempMin" then
        T1 =  conditionAM[num].TempMin
    elseif info == "AM_TempMaxRes" then
        T1 =  conditionAM[num].TempMaxR
    elseif info == "AM_TempMinRes" then
        T1 =  conditionAM[num].TempMinR
    elseif info == "AM_Rose" then
        T1 =  conditionAM[num].PointRosee
    elseif info == "Soiree_TempMax" then
        T1 =  conditionSoiree[num].TempMax
    elseif info == "Soiree_TempMin" then
        T1 =  conditionSoiree[num].TempMin
    elseif info == "Soiree_TempMaxRes" then
        T1 =  conditionSoiree[num].TempMaxR
    elseif info == "Soiree_TempMinRes" then
        T1 =  conditionSoiree[num].TempMinR
    elseif info == "Soiree_Rose" then
        T1 =  conditionSoiree[num].PointRosee
    elseif info == "Noct_TempMax" then
        T1 =  conditionNoct[num].TempMax
    elseif info == "Noct_TempMin" then
        T1 =  conditionNoct[num].TempMin
    elseif info == "Noct_TempMaxRes" then
        T1 =  conditionNoct[num].TempMaxR
    elseif info == "Noct_TempMinRes" then
        T1 =  conditionNoct[num].TempMinR
    elseif info == "Noct_Rose" then
        T1 =  conditionNoct[num].PointRosee
    elseif info == "huitHeure_TempMax" then
        T1 =  huitHeures[num].TempMax
    elseif info == "huitHeure_TempMin" then
        T1 =  huitHeures[num].TempMin
    elseif info == "huitHeure_TempMaxRes" then
        T1 =  huitHeures[num].TempMaxR
    elseif info == "huitHeure_TempMinRes" then
        T1 =  huitHeures[num].TempMinR
    elseif info == "huitHeure_Rose" then
        T1 =  huitHeures[num].PointRosee

    end
    
    T1 = tonumber(T1)
    if T1 <= -30 then
        T1 = -30
    elseif T1 >= 50 then
        T1 = 50
    end

    return T1
    
end


-- Création thermomètre par jpdipsy
function CreaThermometre(TherNb)

    local NbPlot
    local Tbase = Thermometre[TherNb].base
    local Alcool = Thermometre[TherNb].mercure
    Alcool = string.gsub(Alcool, " ", "")
    local InfoAlcool = Recup(Thermometre[TherNb].mercure_info)
    local Plot = {}
    local InfoPlot = {}
    
    if Thermometre[TherNb].plot ~= "" then
        local PlotCherche = Thermometre[TherNb].plot
        PlotCherche = string.gsub(PlotCherche, " ", "")
        local InfoPlotCherche = Thermometre[TherNb].plot_info

        local pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(PlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1, pos2-1)
            else
                Plot[NbPlot] = string.sub(PlotCherche, pos1+1)
            end
            pos1 = pos2
        end
    
        pos1 = 0
        NbPlot = 0
        while pos1 ~= nil do
            local pos2 = string.find(InfoPlotCherche, ",", pos1+1)
            NbPlot = NbPlot+1
            if pos2 ~= nil then
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1, pos2-1))
            else
                InfoPlot[NbPlot] = Recup(string.sub(InfoPlotCherche, pos1+1))
            end
            pos1 = pos2
        end
    end    
    

    if InfoAlcool > -30 then
      local T1 = (InfoAlcool*5)+150
      os.execute( "convert "..Rep_Therm.."/"..Alcool.." -resize 20x"..T1.."! "..Rep.."/colonne.png  && composite -compose Over -geometry -0+108 -gravity South "..Rep.."/colonne.png "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    else
        os.execute( "cp "..Rep_Therm.."/"..Tbase.." "..Rep.."/Thermo"..TherNb..".png" )
    end

    if NbPlot ~= nil then
        for i = 1, NbPlot do
            T2 = InfoPlot[i]
            local pos_T2 = (T2*5) +258
            os.execute("composite -compose Over  -geometry -0+"..pos_T2.."  -gravity South   "..Rep_Therm.."/"..Plot[i].." "..Rep.."/Thermo"..TherNb..".png  "..Rep.."/Thermo"..TherNb..".png")
        end
    end
    os.execute('mogrify -resize '..Thermometre[TherNb].taille..'! '..Rep..'/Thermo'..TherNb..'.png && composite -blend 0x'..Thermometre[TherNb].opacite..' null: '..Rep..'/Thermo'..TherNb..'.png -matte '..Rep..'/Thermo'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end


function CreaThermometreRond(TherNb)
    local val
    os.execute(' cp '..Rep_ThermRond..'/base.png '..Rep..'/Thermorond'..TherNb..'.png')
    
    if ThermometresRond[TherNb].bleu ~= nil then
        val = Recup(ThermometresRond[TherNb].bleu)
        val = string.gsub(val, " ", "")
        cree("ind-bleu", val, TherNb)
    end
    if ThermometresRond[TherNb].rouge ~= nil then
        val = Recup(ThermometresRond[TherNb].rouge)
        val = string.gsub(val, " ", "")
        cree("ind-rouge", val, TherNb)
    end
    if ThermometresRond[TherNb].vert ~= nil then
        val = Recup(ThermometresRond[TherNb].vert)
        val = string.gsub(val, " ", "")
        cree("ind-vert", val, TherNb)
    end
    if ThermometresRond[TherNb].jaune ~= nil then
        val = Recup(ThermometresRond[TherNb].jaune)
        val = string.gsub(val, " ", "")
        cree("ind-jaune", val, TherNb)
    end
   if ThermometresRond[TherNb].blanc ~= nil then
        val = Recup(ThermometresRond[TherNb].blanc)
        val = string.gsub(val, " ", "")
        cree("ind-blanc", val, TherNb)
    end

    if ThermometresRond[TherNb].aiguille ~= nil then
        val = Recup(ThermometresRond[TherNb].aiguille)
        val = string.gsub(val, " ", "")
        cree("aiguille", val, TherNb)
    end
    os.execute('mogrify -resize '..ThermometresRond[TherNb].taille..'! '..Rep..'/Thermorond'..TherNb..'.png && composite -blend 0x'..ThermometresRond[TherNb].opacite..' null: '..Rep..'/Thermorond'..TherNb..'.png -matte '..Rep..'/Thermorond'..TherNb..'.png')
		os.execute('chmod -R o+rw- '..Rep)
end

function cree(aiguille, angle, TherNb)
    angle = (angle*4)-40
    os.execute(' convert -background transparent '..Rep_ThermRond..'/'..aiguille..'.png -rotate '..angle..' '..Rep..'/direction_rot.png && composite -compose Over  -gravity Center '..Rep..'/direction_rot.png '..Rep..'/Thermorond'..TherNb..'.png '..Rep..'/Thermorond'..TherNb..'.png')
		
end


function lune()
    
    local j, h, m = Age:match("(%d+) Jours (%d+)h (%d+)m")
    if j == nil then
        j, h, m = Age:match("(%d+) Jour (%d+)h (%d+)m")
        if j == nil then
            h, m = Age:match("(%d+)h (%d+)m")
            j = 0
        end
    end
    
    local angle = ((360/42524)*((((j*24)+h)*60)+m))+180

    os.execute(' convert -background transparent '..Rep_Lune..'/indicateur.png -rotate '..angle..' '..Rep..'/indicateur_rot.png && composite -compose Over  -gravity Center '..Rep..'/indicateur_rot.png '..Rep_Lune..'/lune-base.png '..Rep..'/lune.png && mogrify -resize '..lunaison.taille..'! '..Rep..'/lune.png && composite -blend 0x'..lunaison.opacite..' null: '..Rep..'/lune.png -matte '..Rep..'/lune.png')
    os.execute('chmod -R o+rw- '..Rep)
    
end


function Baro()
    
    local angle = ((conditioncourante.Pression-980)*4.5)-135

    ---- Aiguille
     os.execute('convert -background transparent '..Rep_Barometre..'/aiguille.png -rotate '..angle..' '..Rep..'/aiguille_rot.png && composite -compose Over  -gravity Center '..Rep..'/aiguille_rot.png '..Rep_Barometre..'/base.png '..Rep..'/Barometre.png && mogrify -resize '..Barometre.taille..'! '..Rep..'/Barometre.png && composite -blend 0x'..Barometre.opacite..' null: '..Rep..'/Barometre.png -matte '..Rep..'/Barometre.png')
    os.execute('chmod -R o+rw- '..Rep)
end


-- initialisation création rose des sables
function fonc_init_rose()

    for j = 1,jours do
        init_rose[j] = {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
        init_rose_raf[j]= {CondCour=nil, Jour=nil, Nuit=nil, Matin=nil, AM=nil, Soiree=nil, Noct=nil, huitHeures=nil}
    end
    
end


-----Affichage Barometre
function conky_Images_Barometre(p, s, f, o)

    if Barometre.taille == nil then 
        Barometre.opacite = o
        Barometre.taille = s
        Baro()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Barometre.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Barometre.png "
    end
end


-----Affichage lune
function conky_Images_Lunaison(p, s, f, o)
    if lunaison.taille == nil then 
        lunaison.opacite = o
        lunaison.taille = s
        lune()
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/lune.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/lune.png "
    end
end


-----Affichage Thermometre
function conky_Images_Thermo(p, s, f, n, o)


  n = tonumber(n)
    if Thermometre[n].opacite == nil then
        Thermometre[n].opacite = o
        Thermometre[n].taille = s
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermo"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermo"..n..".png"
    end
end

function conky_Images_ThermoRond(p, s, f, n, o, a, b, c, d)

--p=position s=taille f=frequence de rafraichissement n=num therm o=opacité a=info 1 b=info 2 c=info 3 d=info 4
    n = tonumber(n)
    if ThermometresRond[n] == nil then
        ThermometresRond[n] = {}
        Nb_ThermRond = n
        local pos
        if a ~= nil then
            a = string.gsub(a, "-", " ")
            if string.find(a, 'a=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].aiguille = string.sub(a, pos+1)
            elseif string.find(a, 'b=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].bleu = string.sub(a, pos+1)
            elseif string.find(a, 'r=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].rouge = string.sub(a, pos+1)
            elseif string.find(a, 'v=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].vert = string.sub(a, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].jaune = string.sub(a, pos+1)
	    elseif string.find(a, 'w=') ~= nil then
                pos = string.find(a, '=')
                ThermometresRond[n].blanc = string.sub(a, pos+1)
            end
        end
        if b ~= nil then
            b = string.gsub(b, "-", " ")
            if string.find(b, 'a=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].aiguille = string.sub(b, pos+1)
            elseif string.find(b, 'b=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].bleu = string.sub(b, pos+1)
            elseif string.find(b, 'r=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].rouge = string.sub(b, pos+1)
            elseif string.find(b, 'v=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].vert = string.sub(b, pos+1)
	    elseif string.find(b, 'j=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].jaune = string.sub(b, pos+1)
	    elseif string.find(b, 'w=') ~= nil then
                pos = string.find(b, '=')
                ThermometresRond[n].blanc = string.sub(b, pos+1)
            end
        end
        if c ~= nil then
            c = string.gsub(c, "-", " ")
            if string.find(c, 'a=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].aiguille = string.sub(c, pos+1)
            elseif string.find(c, 'b=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].bleu = string.sub(c, pos+1)
            elseif string.find(c, 'r=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].rouge = string.sub(c, pos+1)
            elseif string.find(c, 'v=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].vert = string.sub(c, pos+1)
	    elseif string.find(c, 'j=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].jaune = string.sub(c, pos+1)
	    elseif string.find(c, 'w=') ~= nil then
                pos = string.find(c, '=')
                ThermometresRond[n].blanc = string.sub(c, pos+1)
            end
        end
        if d ~= nil then
            d = string.gsub(d, "-", " ")
            if string.find(d, 'a=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].aiguille = string.sub(d, pos+1)
            elseif string.find(d, 'b=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].bleu = string.sub(d, pos+1)
            elseif string.find(d, 'r=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].rouge = string.sub(d, pos+1)
            elseif string.find(d, 'v=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].vert = string.sub(d, pos+1)
	    elseif string.find(a, 'j=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].jaune = string.sub(d, pos+1)
	    elseif string.find(d, 'w=') ~= nil then
                pos = string.find(d, '=')
                ThermometresRond[n].blanc = string.sub(d, pos+1)
            end
        end
        ThermometresRond[n].taille = s
        ThermometresRond[n].opacite = o
        CreaThermometreRond(n)
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Thermorond"..n..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Thermorond"..n..".png"
    end
end


-----Affichage rose des sables
--Condition courante
function conky_Images_Rose(p, s, f, o)
    j = 1

    if init_rose[j].CondCour == nil then
        Rose(conditioncourante.VentDir, conditioncourante.VentPlein, conditioncourante.VentForce, "Rose", s, o)
        init_rose[j].CondCour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/Rose.png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/Rose.png"
    end
end


--Prévision sur la journée
function conky_Images_Jour_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentForce, "RoseJour"..j, s, o)
        init_rose[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJour"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJour"..j..".png"
    end
end

function conky_Images_Jour_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Jour == nil then
        Rose(conditionJour[j].VentDir, conditionJour[j].VentP, conditionJour[j].VentRafales, "RoseJourR"..j, s, o)
        init_rose_raf[j].Jour = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseJourR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseJourR"..j..".png"
    end
end


--Prévision sur la nuit
function conky_Images_Nuit_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentForce, "RoseNuit"..j, s, o)
        init_rose[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuit"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuit"..j..".png"
    end
end

function conky_Images_Nuit_RoseR(p, s, f, j, o)
    j = tonumber(j)

    if init_rose_raf[j].Nuit == nil then
        Rose(conditionNuit[j].VentDir, conditionNuit[j].VentP, conditionNuit[j].VentRafales, "RoseNuitR"..j, s, o)
        init_rose_raf[j].Nuit = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNuitR"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNuitR"..j..".png"
    end
end


--Condition Matinée
function conky_Images_Matin_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Matin == nil then
        Rose(conditionMatin[j].VentDir, conditionMatin[j].VentP, conditionMatin[j].VentForce, "RoseMatin"..j, s, o)
        init_rose[j].Matin = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseMatin"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseMatin"..j..".png"
    end
end


--Condition Après midi
function conky_Images_AM_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].AM == nil then
        Rose(conditionAM[j].VentDir, conditionAM[j].VentP, conditionAM[j].VentForce, "RoseAM"..j, s, o)
        init_rose[j].AM = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseAM"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseAM"..j..".png"
    end
end


--Condition soirée
function conky_Images_Soiree_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Soiree == nil then
        Rose(conditionSoiree[j].VentDir, conditionSoiree[j].VentP, conditionSoiree[j].VentForce, "RoseSoiree"..j, s, o)
        init_rose[j].Soiree = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseSoiree"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseSoiree"..j..".png"
    end
end

--Condition Nuit
function conky_Images_Noct_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].Noct == nil then
        Rose(conditionNoct[j].VentDir, conditionNoct[j].VentP, conditionNoct[j].VentForce, "RoseNoct"..j, s, o)
        init_rose[j].Noct = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RoseNoct"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RoseNoct"..j..".png"
    end
end

--huitHeures
function conky_Images_huitHeures_Rose(p, s, f, j, o)
    j = tonumber(j)

    if init_rose[j].huitHeures == nil then
        Rose(huitHeures[j].VentDir, huitHeures[j].VentP, huitHeures[j].VentForce, "RosehuitHeures"..j, s, o)
        init_rose[j].huitHeures = 1
    end
    if Mode ~= "fondecran" then
        return "${image "..Rep.."/RosehuitHeures"..j..".png -p "..p.." -s "..s.." -f "..f.."}"
    else
        return Rep.."/RosehuitHeures"..j..".png"
    end
end




--Récupération de données
function conky_Images_MAJ(cfg)


	local s = '${lua Meteo_etat_MAJ}'
	local MAJ = conky_parse( s )
		
	
	if maj1 == nil then
		init(cfg)
		maj1 = "ok"
		MAJHold = MAJ+1
		
	end
	
	if MAJ ~= MAJHold then

		MAJHold = MAJ
--Récupération dernière condition courante
		local file = assert(io.open(repsauv.."/CondCour", "r") )
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		local t = {"Icone", "Tempr", "Temp", "Cond", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "VentDir", "VentPlein", "VentForce", "VentIcone", "Humidite", "PointRosee", "Pression", "Visibilite", "Date", "Ville", "CouvNuage", "Uv", "latitude", "longitude"}
		for i = 1,22 do
			conditioncourante[t[i]] = donee[i]
		end
		time = donee[23]
		io.close(file)
		
--Récupération prévision
		
		for j = 1,jours do
			local file = assert(io.open(repsauv.."/prevision"..j, "r"))
			local line = file:read()
			local i = 0
			local donee = {}
			for line in file:lines() do
				i = i+1
				donee[i] = line
			end
			local info = {}
			local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "Uv", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionJour[j] = {}
			for i = 1, 21 do
				info[t[i]] = donee[i]
			end
			conditionJour[j] = info
			local info1 = {}
			t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "Temp", "TempRes", "ProbPrec", "VentDir", "VentP", "VentForce", "VentRafales", "ProbOrage", "NivPrec", "QPluie", "QNeige", "Icone", "VentIcone", "RafalesIcone", "EVerglas"}
			conditionNuit[j] = {}
			for i = 22, 41 do
				info1[t[i-21]] = donee[i]
			end
			conditionNuit[j] = info1
			local info2 = {}
			t= {"Jour", "LeverSoleilH", "LeverSoleilM", "CoucherSoleilH", "CoucherSoleilM", "Histo_Max", "Histo_Min"}
			InfoJour[j] = {}
			for i = 42, 48 do
				info2[t[i-41]] = donee[i]
			end
			InfoJour[j] = info2
			io.close(file)
			
			if matin == "oui" then
				local file = assert(io.open(repsauv.."/matin"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionMatin[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionMatin[j] = info3
				io.close(file)
			end

			if apresmidi == "oui" then
				local file = assert(io.open(repsauv.."/ApresMidi"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionAM[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionAM[j] = info3
				io.close(file)
			end

			if soiree == "oui" then
				local file = assert(io.open(repsauv.."/Soiree"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionSoiree[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionSoiree[j] = info3
				io.close(file)
			end

			if nuit == "oui" then
				local file = assert(io.open(repsauv.."/Nuit"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"CondMeteo", "CondMeteo1", "CondMeteo2", "CondMeteo1se", "CondMeteo2se", "TempMax", "TempMin", "TempMaxR", "TempMinR", "ProbPrec", "VentDir", "VentP", "VentForce", "QPluie", "QNeige", "Humidite", "CouvNuage", "PointRosee", "Visibilite", "Icone", "VentIcone"}
				conditionNoct[j] = {}
				local info3 = {}
				for i = 1, 21 do
					info3[t[i]] = donee[i]
				end
				conditionNoct[j] = info3
				io.close(file)
			end

		end

		if huit == "oui" then
			for j = 1,8 do
				local file = assert(io.open(repsauv.."/huitHeures"..j, "r"))
				local line = file:read()
				local i = 0
				local donee = {}
				for line in file:lines() do
					i = i+1
					donee[i] = line
				end
				local t = {"Heure", "Icone", "TempMax", "TempMaxR", "VentDir", "VentForce", "Humidite", "CouvNuage", "PointRosee", "UV", "Pluie", "Neige", "Verglas", "VentP", "VentIcone"}
				huitHeures[j] = {}
				local info3 = {}
				for i = 1, 15 do
					info3[t[i]] = donee[i]
				end
				huitHeures[j] = info3
				io.close(file)
			end
		end			

		--Récupération lunaison
		local file = assert(io.open(repsauv.."/lunaison", "r"))
		local line = file:read()
		local i = 0
		local donee = {}
		for line in file:lines() do
			i = i+1
			donee[i] = line
		end
		ephemerides = donee[1]
		ephemerides1 = donee[2]
		ephemerides2 = donee[3]
		Visibilite = donee[4]
		Phases = donee[5]
		Phases1 = donee[6]
		Phases2 = donee[7]
		Noeud_lunaire = donee[8]
		Apogee = donee[9]
		Perigee = donee[10]
		Distance = donee[11]
		Age = donee[12]
		Lever_LuneHeure = donee[13]
		Lever_LuneMinute = donee[14]
		Coucher_LuneHeure = donee[15]
		Coucher_LuneMinute = donee[16]
		Eclipse_partielle = donee[17]
		Eclipse_total = donee[18]
		io.close(file)
			

		if Barometre.taille ~= nil then Baro() end
		if lunaison.taille ~= nil then lune() end
		fonc_init_rose()
		
		local i = 0
		while i ~= Nb_Thermo do
			i = i+1
			CreaThermometre(i)
		end
		i = 0
		while i ~= Nb_ThermRond do
			i = i+1
			CreaThermometreRond(i)
		end




		if Mode == "fondecran" then
			FondEcran_init()
		end
		if Mode == "fondinactif" then
			FondInactif_init()
		end
		
		collectgarbage()
		
	end			

	return ""
end



--initialisation paramètres
function init(cfg)
	
	local home = os.getenv("HOME")
	cfg = string.gsub(cfg, "~", home)
	cfg = string.gsub(cfg, "$HOME", home)
	imagecfg = cfg

	Nb_Thermo = 0
	Nb_ThermRond = 0
	local Thermo = false
	local ThermRond = false

	local file = assert(io.open(cfg, "rb") )

	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'repfonts=') ~= nil then
			repfonts = string.sub(line, pos1+1)
		elseif string.find(line, 'ThermRond=') ~= nil then
			Rep_ThermRond = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1=') ~= nil then
			palier1 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2=') ~= nil then
			palier2 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3=') ~= nil then
			palier3 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4=') ~= nil then
			palier4 = string.sub(line, pos1+1)
		elseif string.find(line, 'palier1coulfont=') ~= nil then
			palier1coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier2coulfont=') ~= nil then
			palier2coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier3coulfont=') ~= nil then
			palier3coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'palier4coulfont=') ~= nil then
			palier4coulfont = string.sub(line, pos1+1)
		elseif string.find(line, 'Lune=') ~= nil then
			Rep_Lune = string.sub(line, pos1+1)
		elseif string.find(line, 'Barometre=') ~= nil then
			Rep_Barometre = string.sub(line, pos1+1)
		elseif string.find(line, 'repmeteo=') ~= nil then
			repmeteo = string.sub(line, pos1+1)
		elseif string.find(line, 'IconesRep=') ~= nil then
			IconesRep = string.sub(line, pos1+1)
		elseif string.find(line, 'Mode=') ~= nil then
			Mode = string.sub(line, pos1+1)
		elseif string.find(line, 'MiseEnPage=') ~= nil then
			mise_en_page = string.sub(line, pos1+1)
			mise_en_page = string.gsub(mise_en_page, "~", home)
			mise_en_page = string.gsub(mise_en_page, "$HOME", home)
			pos = string.find(mise_en_page, "creationmodules")
			fich_creationmodule =  string.sub(mise_en_page, pos)..".sh"
		end
		
		--debut thermomètre	mercure	
		if string.find(line, 'Thermometres=') ~= nil then
			Thermo = true
			Nb_Thermo = Nb_Thermo+1
			Thermometre[tonumber(Nb_Thermo)] = {}
		end
		
		if Thermo ~= false then
			if string.find(line, 'base=') ~= nil then
				Thermometre[Nb_Thermo].base = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure=') ~= nil then
				Thermometre[Nb_Thermo].mercure = string.sub(line, pos1+1)
			elseif string.find(line, 'mercure_info=') ~= nil then
				local pos2 = string.find(line, '}')
				if pos2 ~= nil then
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1, pos2-1)
				else
					Thermometre[Nb_Thermo].mercure_info = string.sub(line, pos1+1)
				end
			elseif string.find(line, 'plot=') ~= nil then
				Thermometre[Nb_Thermo].plot = string.sub(line, pos1+1)
			elseif string.find(line, 'plot_info=') ~= nil then
				local pos2 = string.find(line, '}')
				Thermometre[Nb_Thermo].plot_info = string.sub(line, pos1+1, pos2-1)
			end
	
			pos1 = string.find(line, '}')
			if pos1 ~= nil then
				line = string.sub(line, pos1)
				if string.find(line, ',') == nil then
					Thermo = false
				else
					Nb_Thermo = Nb_Thermo+1
					Thermometre[Nb_Thermo] = {}
				end
			end
		end

		--fin thermomètre

		
	end
	io.close(file)

	
	local fichier_init = conky_parse( "${lua Meteo_fichier_init}" )
	meteocfg=fichier_init
	local file = assert(io.open(fichier_init, "rb") )
	local line = file:read()
	for line in file:lines() do
		local pos1 = string.find(line, '#')
		if pos1 ~= nil then
			line = string.sub(line, 1, pos1-1)
		end
		pos1 = string.find(line, '=')
		if string.find(line, 'repsauv=') ~= nil then
			repsauv = string.sub(line, pos1+1)
		elseif string.find(line, 'TempShell=') ~= nil then
			r = string.sub(line, pos1+1)
		elseif string.find(line, 'web=') ~= nil then
			cmd1 = string.sub(line, pos1+1)
		elseif string.find(line, 'periode=') ~= nil then
			jours = string.sub(line, pos1+1)
		elseif string.find(line, 'matinée=') ~= nil then
			matin = string.sub(line, pos1+1)
		elseif string.find(line, 'am=') ~= nil then
			apresmidi = string.sub(line, pos1+1)
		elseif string.find(line, 'soiree=') ~= nil then
			soiree = string.sub(line, pos1+1)
		elseif string.find(line, 'nuit=') ~= nil then
			nuit = string.sub(line, pos1+1)
		elseif string.find(line, 'Prev8heures=') ~= nil then
			huit = string.sub(line, pos1+1)
		elseif string.find(line, 'Therm=') ~= nil then
			Rep_Therm = string.sub(line, pos1+1)
		elseif string.find(line, 'Rose=') ~= nil then
			Rep_Rose = string.sub(line, pos1+1)
		elseif string.find(line, 'Palier=') ~= nil then
			Palier = tonumber(string.sub(line, pos1+1))
		elseif string.find(line, 'update=') ~= nil then
			delais = string.sub(line, pos1+1)
		end
	end
	io.close(file)	
	r = string.gsub(r, "~", home)
	r = string.gsub(r, "$HOME", home)
	repsauv = string.gsub(repsauv, "~", home)
	repsauv = string.gsub(repsauv, "$HOME", home)


--Création répertoire de travail
	l = cmd1:match("/(%d+)")
	if string.find(cmd1, 'forecast') ~= nil then
		pos1 = string.find(cmd1, '/weather')
		cmd = string.sub(cmd1, 0, pos1-1)
	else
		pos1 = string.find(cmd1, '/current')
		cmd = string.sub(cmd1, 0, pos1-1)
	end

	local bar, bar1
	local l1 = string.gsub(cmd, '/'..l, "" )
	local b = 1
	while bar1 == nil do
		b = b+1
		bar1 = string.find(l1, '/', -b)
	end
	l1 = string.sub(l1, bar1+1)
	Rep = r.."/"..l1.."/"..l

	MAJHold = "10"
	
	return ""
end

------------------------------------------------------------- Fond ecran --------------------------------------------------

function FondEcran_init()


if not existe(repsauv.."/fond-meteo.png") then
	boucle = boucle+1
end

if boucle ~= 0 then
	print("","Mode = "..Mode)
	-- sauvegarde fond ecran
	os.execute(repmeteo..'/scripts/fond-gestion.sh sauvegarde')
	-- creation des modules externes
	creation_module(mise_en_page)
	-- Maj du fond d'écran	
	os.execute(repmeteo..'/scripts/fond-gestion.sh integration ')

end
	boucle = boucle+1
end

function FondInactif_init()

	print("","Mode = "..Mode)
	-- creation des modules externes
	creation_module(mise_en_page)

end

function conky_extinction()
-- remise en place fond ecran-ori
os.execute(repmeteo..'/scripts/fond-gestion.sh restauration')	
end

function mise_en_forme(x)
	local pos = string.find(x, "{{")
	local Nb = 0
	local info, pos1
	while pos ~= nil do
		Nb = Nb+1
		if Nb == 1 then
			code = string.sub(x, 0, pos-1)
		else
			code = code..string.sub(x, pos1+2, pos-1)
		end
		pos1 = string.find(x, "}}", pos+2)
		info = string.sub(x, pos+2, pos1-1)
		code = code..Recup_info(info)
		pos = string.find(x, "{{", pos1+2)
	end
	if pos1 ~= nil then
		code = code..string.sub(x, pos1+2)
	else
		code = x
	end

	return code
end


function creation_module(creationmodules)
------------copie et recuperation du fichier  

	local file = io.open(creationmodules)
	local line = file:read()
	local file1 =  io.open(Rep.."/"..fich_creationmodule, "w+" )
	------------- mise en place fichier + entête 

	file1:write ("#!/bin/bash \n\n##########################################\ncheminref="..repmeteo.."\nsource "..imagecfg.." 2>/dev/null\nsource "..meteocfg.." 2>/dev/null\n")
	------------------------------------------------------------------------
		for line in file:lines() do
	---------------------------------------------------------
			file1:write (mise_en_forme(line), "\n")
	---------------------------------------------------------
		end
	------ fermeture et ecriture
	io.close(file1)
	io.close(file)
	------ execution du fichier bash
	os.execute('chmod +x '..Rep..'/'..fich_creationmodule..' && '..Rep..'/'..fich_creationmodule)
	
	
end
function Recup_info(x)
	local info, pos1, pos
	pos = string.find(x, " ")
	if pos ~= nil then
		info = string.sub(x, 0, pos-1)
		pos1 = string.find(x, " ", pos+1)
	else
		info = x
	end
	if pos ~= nil then
		if pos1 ~= nil then
			arg1 = string.sub(x, pos+1, pos1-1)
			pos = string.find(x, " ", pos1+1)
		else
			arg1 = string.sub(x, pos+1)
		end
		if pos1 ~= nil then
			if pos ~= nil then
				arg2 = string.sub(x, pos1+1, pos-1)
				pos1 = string.find(x, " ", pos+1)
			else
				arg2 = string.sub(x, pos1+1)
			end
			if pos ~= nil then
				if pos1 ~= nil then
					arg3 = string.sub(x, pos+1, pos1-1)
					pos = string.find(x, " ", pos1+1)
				else
					arg3 = string.sub(x, pos+1)
				end
				if pos1 ~= nil then
					if pos ~= nil then
						arg4 = string.sub(x, pos1+1, pos-1)
						pos1 = string.find(x, " ", pos+1)
					else
						arg4 = string.sub(x, pos1+1)
					end
					if pos ~= nil then
						if pos1 ~= nil then
							arg5 = string.sub(x, pos+1, pos1-1)
							pos = string.find(x, " ", pos1+1)
						else
							arg5 = string.sub(x, pos+1)
						end
						if pos1 ~= nil then
							if pos ~= nil then
								arg6 = string.sub(x, pos1+1, pos-1)
								pos1 = string.find(x, " ", pos+1)
							else
								arg6 = string.sub(x, pos1+1)
							end
							if pos ~= nil then
								if pos1 ~= nil then
									arg7 = string.sub(x, pos+1, pos1-1)
									pos = string.find(x, " ", pos1+1)
								else
									arg7 = string.sub(x, pos+1)
								end
								if pos1 ~= nil then
									if pos ~= nil then
										arg8 = string.sub(x, pos1+1, pos-1)
										pos1 = string.find(x, " ", pos+1)
									else
										arg8 = string.sub(x, pos1+1)
									end
									if pos ~= nil then
										if pos1 ~= nil then
											arg9 = string.sub(x, pos+1, pos1-1)
											pos = string.find(x, " ", pos1+1)
										else
											arg9 = string.sub(x, pos+1)
										end
										if pos1 ~= nil then
											if pos ~= nil then
												arg10 = string.sub(x, pos1+1, pos-1)
												pos1 = string.find(x, " ", pos+1)
											else
												arg10 = string.sub(x, pos1+1)
											end
											if pos ~= nil then
												if pos1 ~= nil then
													arg11 = string.sub(x, pos+1, pos1-1)
													pos = string.find(x, " ", pos1+1)
												else
													arg11 = string.sub(x, pos+1)
												end
											end
										end
									end
								end
							end
						end
					end
				end
			end
		end
	end
	
		
	if info == "Meteo_TempRes" then
		return conditioncourante.Tempr
	elseif info == "Meteo_TempAct" then
		return conditioncourante.Temp
	elseif info == "Meteo_CondMeteo" then
		return conditioncourante.Cond
	elseif info == "Meteo_CondMeteo1" then
		return conditioncourante.CondMeteo1
	elseif info == "Meteo_CondMeteo2" then
		return conditioncourante.CondMeteo2
	elseif info == "Meteo_CondMeteo1se" then
		return conditioncourante.CondMeteo1se
	elseif info == "Meteo_CondMeteo2se" then
		return conditioncourante.CondMeteo2se
	elseif info == "Meteo_VentDir" then
		return conditioncourante.VentDir
	elseif info == "Meteo_VentDirP" then
		return conditioncourante.VentPlein
	elseif info == "Meteo_VentForce" then
		return conditioncourante.VentForce
	elseif info == "Meteo_Humidite" then
		return conditioncourante.Humidite
	elseif info == "Meteo_Rose" then
		return conditioncourante.PointRosee
	elseif info == "Meteo_Pression" then
		return conditioncourante.Pression
	elseif info == "Meteo_Visibilite" then
		return conditioncourante.Visibilite
	elseif info == "Meteo_CouvNuage" then
		return conditioncourante.CouvNuage
	elseif info == "Meteo_Uv" then
		return conditioncourante.Uv
	elseif info == "Meteo_IconeM" then
		if os.date("%H%M", os.time()) <= InfoJour[1].CoucherSoleilH..InfoJour[1].CoucherSoleilM and os.date("%H%M", os.time()) >= InfoJour[1].LeverSoleilH..InfoJour[1].LeverSoleilM then
			return arg1.."/jour/"..conditioncourante.Icone..".png"
		else
			return arg1.."/nuit/"..conditioncourante.Icone..".png"
		end
	elseif info == "Meteo_IconeV" then
		return arg1.."/"..conditioncourante.VentIcone
	elseif info == "Meteo_Ville" then
		return conditioncourante.Ville
	elseif info == "Meteo_latitude" then
		return conditioncourante.latitude
	elseif info == "Meteo_longitude" then
		return conditioncourante.longitude
	elseif info == "Image_version" then
		return Version
	--prévision journée
	elseif info == "Meteo_Jour_CondMeteo" then
		return conditionJour[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Jour_CondMeteo1" then
		return conditionJour[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Jour_CondMeteo2" then
		return conditionJour[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Jour_CondMeteo1se" then
		return conditionJour[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Jour_CondMeteo2se" then
		return conditionJour[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Jour_Temp" then
		return conditionJour[tonumber(arg1)].Temp
	elseif info == "Meteo_Jour_TempRes" then
		return conditionJour[tonumber(arg1)].TempRes
	elseif info == "Meteo_Jour_ProbPrec" then
		return conditionJour[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Jour_VentDir" then
		return conditionJour[tonumber(arg1)].VentDir
	elseif info == "Meteo_Jour_VentDirP" then
		return conditionJour[tonumber(arg1)].VentP
	elseif info == "Meteo_Jour_VentForce" then
		return conditionJour[tonumber(arg1)].VentForce
	elseif info == "Meteo_Jour_VentRafales" then
		return conditionJour[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Jour_Uv" then
		return conditionJour[tonumber(arg1)].Uv
	elseif info == "Meteo_Jour_ProbOrage" then
		return conditionJour[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Jour_NivPrec" then
		return conditionJour[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Jour_QPluie" then
		return conditionJour[tonumber(arg1)].QPluie
	elseif info == "Meteo_Jour_QNeige" then
		return conditionJour[tonumber(arg1)].QNeige
	elseif info == "Meteo_Jour_EVerglas" then
		return conditionJour[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Jour_IconeM" then
		return arg1.."/jour/"..conditionJour[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Jour_IconeV" then
		return arg1.."/"..conditionJour[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Jour_IconeR" then
		return arg1.."/"..conditionJour[tonumber(arg5)].RafalesIcone
	--prévision Nuit
	elseif info == "Meteo_Nuit_CondMeteo" then
		return conditionNuit[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Nuit_CondMeteo1" then
		return conditionNuit[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Nuit_CondMeteo2" then
		return conditionNuit[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Nuit_CondMeteo1se" then
		return conditionNuit[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Nuit_CondMeteo2se" then
		return conditionNuit[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Nuit_Temp" then
		return conditionNuit[tonumber(arg1)].Temp
	elseif info == "Meteo_Nuit_TempRes" then
		return conditionNuit[tonumber(arg1)].TempRes
	elseif info == "Meteo_Nuit_ProbPrec" then
		return conditionNuit[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Nuit_VentDir" then
		return conditionNuit[tonumber(arg1)].VentDir
	elseif info == "Meteo_Nuit_VentDirP" then
		return conditionNuit[tonumber(arg1)].VentP
	elseif info == "Meteo_Nuit_VentForce" then
		return conditionNuit[tonumber(arg1)].VentForce
	elseif info == "Meteo_Nuit_VentRafales" then
		return conditionNuit[tonumber(arg1)].VentRafales
	elseif info == "Meteo_Nuit_Uv" then
		return conditionNuit[tonumber(arg1)].Uv
	elseif info == "Meteo_Nuit_ProbOrage" then
		return conditionNuit[tonumber(arg1)].ProbOrage
	elseif info == "Meteo_Nuit_NivPrec" then
		return conditionNuit[tonumber(arg1)].NivPrec
	elseif info == "Meteo_Nuit_QPluie" then
		return conditionNuit[tonumber(arg1)].QPluie
	elseif info == "Meteo_Nuit_QNeige" then
		return conditionNuit[tonumber(arg1)].QNeige
	elseif info == "Meteo_Nuit_EVerglas" then
		return conditionNuit[tonumber(arg1)].EVerglas
	elseif info == "Meteo_Nuit_IconeM" then
		return arg1.."/nuit/"..conditionNuit[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Nuit_IconeV" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].VentIcone
	elseif info == "Meteo_Nuit_IconeR" then
		return arg1.."/"..conditionNuit[tonumber(arg5)].RafalesIcone
	----Prévision quart de journée
	--Matin
	elseif info == "Meteo_Matin_CondMeteo " then
		return conditionMatin[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Matin_CondMeteo1" then
		return conditionMatin[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Matin_CondMeteo2" then
		return conditionMatin[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Matin_CondMeteo1se" then
		return conditionMatin[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Matin_CondMeteo2se" then
		return conditionMatin[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Matin_TempMax" then
		return conditionMatin[tonumber(arg1)].TempMax
	elseif info == "Meteo_Matin_TempMin" then
		return conditionMatin[tonumber(arg1)].TempMin
	elseif info == "Meteo_Matin_TempMaxRes" then
		return conditionMatin[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Matin_TempMinRes" then
		return conditionMatin[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Matin_ProbPrec" then
		return conditionMatin[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Matin_VentDir" then
		return conditionMatin[tonumber(arg1)].VentDir
	elseif info == "Meteo_Matin_VentP" then
		return conditionMatin[tonumber(arg1)].VentP
	elseif info == "Meteo_Matin_VentForce" then
		return conditionMatin[tonumber(arg1)].VentForce
	elseif info == "Meteo_Matin_QPluie" then
		return conditionMatin[tonumber(arg1)].QPluie
	elseif info == "Meteo_Matin_QNeige" then
		return conditionMatin[tonumber(arg1)].QNeige
	elseif info == "Meteo_Matin_Humidite" then
		return conditionMatin[tonumber(arg1)].Humidite
	elseif info == "Meteo_Matin_CouvNuage" then
		return conditionMatin[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Matin_Rose" then
		return conditionMatin[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Matin_Visibilite" then
		return conditionMatin[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Matin_IconeM" then
		return arg1.."/jour/"..conditionMatin[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Matin_IconeV" then
		return arg1.."/"..conditionMatin[tonumber(arg5)].VentIcone
	--Après midi
	elseif info == "Meteo_AM_CondMeteo " then
		return conditionAM[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_AM_CondMeteo1" then
		return conditionAM[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_AM_CondMeteo2" then
		return conditionAM[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_AM_CondMeteo1se" then
		return conditionAM[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_AM_CondMeteo2se" then
		return conditionAM[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_AM_TempMax" then
		return conditionAM[tonumber(arg1)].TempMax
	elseif info == "Meteo_AM_TempMin" then
		return conditionAM[tonumber(arg1)].TempMin
	elseif info == "Meteo_AM_TempMaxRes" then
		return conditionAM[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_AM_TempMinRes" then
		return conditionAM[tonumber(arg1)].TempMinR
	elseif info == "Meteo_AM_ProbPrec" then
		return conditionAM[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_AM_VentDir" then
		return conditionAM[tonumber(arg1)].VentDir
	elseif info == "Meteo_AM_VentP" then
		return conditionAM[tonumber(arg1)].VentP
	elseif info == "Meteo_AM_VentForce" then
		return conditionAM[tonumber(arg1)].VentForce
	elseif info == "Meteo_AM_QPluie" then
		return conditionAM[tonumber(arg1)].QPluie
	elseif info == "Meteo_AM_QNeige" then
		return conditionAM[tonumber(arg1)].QNeige
	elseif info == "Meteo_AM_Humidite" then
		return conditionAM[tonumber(arg1)].Humidite
	elseif info == "Meteo_AM_CouvNuage" then
		return conditionAM[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_AM_Rose" then
		return conditionAM[tonumber(arg1)].PointRosee
	elseif info == "Meteo_AM_Visibilite" then
		return conditionAM[tonumber(arg1)].Visibilite
	elseif info == "Meteo_AM_IconeM" then
		return arg1.."/jour/"..conditionAM[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_AM_IconeV" then
		return arg1.."/"..conditionAM[tonumber(arg5)].VentIcone
	--Soirée
	elseif info == "Meteo_Soiree_CondMeteo " then
		return conditionSoiree[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Soiree_CondMeteo1" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Soiree_CondMeteo2" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Soiree_CondMeteo1se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Soiree_CondMeteo2se" then
		return conditionSoiree[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Soiree_TempMax" then
		return conditionSoiree[tonumber(arg1)].TempMax
	elseif info == "Meteo_Soiree_TempMin" then
		return conditionSoiree[tonumber(arg1)].TempMin
	elseif info == "Meteo_Soiree_TempMaxRes" then
		return conditionSoiree[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Soiree_TempMinRes" then
		return conditionSoiree[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Soiree_ProbPrec" then
		return conditionSoiree[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Soiree_VentDir" then
		return conditionSoiree[tonumber(arg1)].VentDir
	elseif info == "Meteo_Soiree_VentP" then
		return conditionSoiree[tonumber(arg1)].VentP
	elseif info == "Meteo_Soiree_VentForce" then
		return conditionSoiree[tonumber(arg1)].VentForce
	elseif info == "Meteo_Soiree_QPluie" then
		return conditionSoiree[tonumber(arg1)].QPluie
	elseif info == "Meteo_Soiree_QNeige" then
		return conditionSoiree[tonumber(arg1)].QNeige
	elseif info == "Meteo_Soiree_Humidite" then
		return conditionSoiree[tonumber(arg1)].Humidite
	elseif info == "Meteo_Soiree_CouvNuage" then
		return conditionSoiree[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Soiree_Rose" then
		return conditionSoiree[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Soiree_Visibilite" then
		return conditionSoiree[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Soiree_IconeM" then
		return arg1.."/nuit/"..conditionSoiree[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Soiree_IconeV" then
		return arg1.."/"..conditionSoiree[tonumber(arg5)].VentIcone
	--nuit
	elseif info == "Meteo_Noct_CondMeteo " then
		return conditionNoct[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_Noct_CondMeteo1" then
		return conditionNoct[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_Noct_CondMeteo2" then
		return conditionNoct[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_Noct_CondMeteo1se" then
		return conditionNoct[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_Noct_CondMeteo2se" then
		return conditionNoct[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_Noct_TempMax" then
		return conditionNoct[tonumber(arg1)].TempMax
	elseif info == "Meteo_Noct_TempMin" then
		return conditionNoct[tonumber(arg1)].TempMin
	elseif info == "Meteo_Noct_TempMaxRes" then
		return conditionNoct[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_Noct_TempMinRes" then
		return conditionNoct[tonumber(arg1)].TempMinR
	elseif info == "Meteo_Noct_ProbPrec" then
		return conditionNoct[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_Noct_VentDir" then
		return conditionNoct[tonumber(arg1)].VentDir
	elseif info == "Meteo_Noct_VentP" then
		return conditionNoct[tonumber(arg1)].VentP
	elseif info == "Meteo_Noct_VentForce" then
		return conditionNoct[tonumber(arg1)].VentForce
	elseif info == "Meteo_Noct_QPluie" then
		return conditionNoct[tonumber(arg1)].QPluie
	elseif info == "Meteo_Noct_QNeige" then
		return conditionNoct[tonumber(arg1)].QNeige
	elseif info == "Meteo_Noct_Humidite" then
		return conditionNoct[tonumber(arg1)].Humidite
	elseif info == "Meteo_Noct_CouvNuage" then
		return conditionNoct[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_Noct_Rose" then
		return conditionNoct[tonumber(arg1)].PointRosee
	elseif info == "Meteo_Noct_Visibilite" then
		return conditionNoct[tonumber(arg1)].Visibilite
	elseif info == "Meteo_Noct_IconeM" then
		return arg1.."/nuit/"..conditionNoct[tonumber(arg5)].Icone..".png"
	elseif info == "Meteo_Noct_IconeV" then
		return arg1.."/"..conditionNoct[tonumber(arg5)].VentIcone
	--huitHeures
	elseif info == "Meteo_huitHeures_CondMeteo " then
		return huitHeures[tonumber(arg1)].CondMeteo
	elseif info == "Meteo_huitHeures_CondMeteo1" then
		return huitHeures[tonumber(arg1)].CondMeteo1
	elseif info == "Meteo_huitHeures_CondMeteo2" then
		return huitHeures[tonumber(arg1)].CondMeteo2
	elseif info == "Meteo_huitHeures_CondMeteo1se" then
		return huitHeures[tonumber(arg1)].CondMeteo1se
	elseif info == "Meteo_huitHeures_CondMeteo2se" then
		return huitHeures[tonumber(arg1)].CondMeteo2se
	elseif info == "Meteo_huitHeures_TempMax" then
		return huitHeures[tonumber(arg1)].TempMax
	elseif info == "Meteo_huitHeures_TempMin" then
		return huitHeures[tonumber(arg1)].TempMin
	elseif info == "Meteo_huitHeures_TempMaxRes" then
		return huitHeures[tonumber(arg1)].TempMaxR
	elseif info == "Meteo_huitHeures_TempMinRes" then
		return huitHeures[tonumber(arg1)].TempMinR
	elseif info == "Meteo_huitHeures_ProbPrec" then
		return huitHeures[tonumber(arg1)].ProbPrec
	elseif info == "Meteo_huitHeures_VentDir" then
		return huitHeures[tonumber(arg1)].VentDir
	elseif info == "Meteo_huitHeures_VentP" then
		return huitHeures[tonumber(arg1)].VentP
	elseif info == "Meteo_huitHeures_VentForce" then
		return huitHeures[tonumber(arg1)].VentForce
	elseif info == "Meteo_huitHeures_QPluie" then
		return huitHeures[tonumber(arg1)].QPluie
	elseif info == "Meteo_huitHeures_QNeige" then
		return huitHeures[tonumber(arg1)].QNeige
	elseif info == "Meteo_huitHeures_Humidite" then
		return huitHeures[tonumber(arg1)].Humidite
	elseif info == "Meteo_huitHeures_CouvNuage" then
		return huitHeures[tonumber(arg1)].CouvNuage
	elseif info == "Meteo_huitHeures_Rose" then
		return huitHeures[tonumber(arg1)].PointRosee
	elseif info == "Meteo_huitHeures_Visibilite" then
		return huitHeures[tonumber(arg1)].Visibilite
	elseif info == "Meteo_huitHeures_IconeV" then
		return arg1.."/"..huitHeures[tonumber(arg5)].VentIcone
	elseif info == "Meteo_huitHeures_IconeM" then
		if huitHeures[tonumber(arg5)].Heure <= InfoJour[1].CoucherSoleilH and huitHeures[tonumber(arg5)].Heure >= InfoJour[1].LeverSoleilH then
			return arg1.."/jour/"..huitHeures[tonumber(arg5)].Icone..".png"
		else
			return arg1.."/nuit/"..huitHeures[tonumber(arg5)].Icone..".png"
		end

	


	--lunaison
	elseif info == "Lune_ephemerides" then
		return ephemerides
	elseif info == "Lune_ephemerides1" then
		return ephemerides1
	elseif info == "Lune_ephemerides2" then
		return ephemerides2
	elseif info == "Lune_Visibilite" then
		return Visibilite
	elseif info == "Lune_Phases" then
		return Phases
	elseif info == "Lune_Phases1" then
		return Phases1
	elseif info == "Lune_Phases2" then
		return Phases2
	elseif info == "Lune_Noeudlunaire" then
		return Noeud_lunaire
	elseif info == "Lune_Apogee" then
		return Apogee
	elseif info == "Lune_Perigee" then
		return Perigee
	elseif info == "Lune_Distance" then
		return Distance
	elseif info == "Lune_Age" then
		return Age
	elseif info == "Lune_HLeverLune" then
		return Lever_LuneHeure
	elseif info == "Lune_MLeverLune" then
		return Lever_LuneMinute
	elseif info == "Lune_HCoucherLune" then
		return Coucher_LuneHeure
	elseif info == "Lune_MCoucherLune" then
		return Coucher_LuneMinute
	elseif info == "Lune_EclipsePartielle" then
		return Eclipse_partielle
	elseif info == "Lune_EclipseTotal" then
		return Eclipse_total
	elseif info == "Images_Barometre" then
		return conky_Images_Barometre(arg1, arg2, arg3, arg4)
	elseif info == "Images_Lunaison" then
		return conky_Images_Lunaison(arg1, arg2, arg3, arg4)
	elseif info == "Images_Thermo" then
		return conky_Images_Thermo(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_ThermoRond" then
		return conky_Images_ThermoRond(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10, arg11)
	elseif info == "Images_Rose" then
		return conky_Images_Rose(arg1, arg2, arg3, arg4)
	elseif info == "Images_Jour_Rose" then
		return conky_Images_Jour_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Jour_RoseR" then
		return conky_Images_Jour_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_Rose" then
		return conky_Images_Nuit_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Nuit_RoseR" then
		return conky_Images_Nuit_RoseR(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Matin_Rose" then
		return conky_Images_Matin_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_AM_Rose" then
		return conky_Images_AM_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Soiree_Rose" then
		return conky_Images_Soiree_Rose(arg1, arg2, arg3, arg4, arg5)
	elseif info == "Images_Noct_Rose" then
		return conky_Images_Noct_Rose(arg1, arg2, arg3, arg4, arg5)
	else
		return conky_parse( "${lua "..x.."}" )
	end
end

ca c'est fait je vais pouvoir m'attaquer a l'esthétique

@ Didier-T
j'ai tout tester tout marche nickel tu peur le mettre a jour le Pack meteo_images.lua

Hors ligne

#1767 Le 03/01/2013, à 17:40

Didier-T

Re : [Conky] Alternative à weather.com (2)

@ daniel38100,

Merci pour la modif, je mettrais l'archive a jour, et modifierai l'entête pour y indiquer ta contribution (c'est un minimum)

Édit : le pack est modifier


@ tous,

Avec jpdipsy, nous avons aidé lemirandais, qui rencontrais un soucis avec son conky météo.
Ce conky fonctionne avec météo France, et comme le faisait remarqué jpdipsy sa pourrait être intéressant de développer un nouveau script en lua par exemple utilisant météo France.

La discussion ce situe ici et lemirandais à eut la gentillesse de nous laisser son pack pour avoir accès aux codes.

Si certain sont intéressés pour relever le chalenge.
Pour ma part je vais me concentré sur un projet en python, ne connaissant pas encore le langage je ne suis pas certain d'arrivé au bout de mes idées.

Mais je resterais disponible pour ceux qui souhaiterais ce lancé dans le développement du script pour météo France (en cas de soucis).

P.S. : je rapatrierais l'archive ce soir sur ma Dropbox pour la laisser disponible plus longtemps.

Édit : voici le lien vers l'archive météo France

Dernière modification par Didier-T (Le 03/01/2013, à 19:24)

Hors ligne

#1768 Le 03/01/2013, à 21:45

daniel38100

Re : [Conky] Alternative à weather.com (2)

Didier-T a écrit :

@ daniel38100,

Merci pour la modif, je mettrais l'archive a jour, et modifierai l'entête pour y indiquer ta contribution (c'est un minimum)

Édit : le pack est modifier


@ tous,

Avec jpdipsy, nous avons aidé lemirandais, qui rencontrais un soucis avec son conky météo.
Ce conky fonctionne avec météo France, et comme le faisait remarqué jpdipsy sa pourrait être intéressant de développer un nouveau script en lua par exemple utilisant météo France.

La discussion ce situe ici et lemirandais à eut la gentillesse de nous laisser son pack pour avoir accès aux codes.

Si certain sont intéressés pour relever le chalenge.
Pour ma part je vais me concentré sur un projet en python, ne connaissant pas encore le langage je ne suis pas certain d'arrivé au bout de mes idées.

Mais je resterais disponible pour ceux qui souhaiterais ce lancé dans le développement du script pour météo France (en cas de soucis).

P.S. : je rapatrierais l'archive ce soir sur ma Dropbox pour la laisser disponible plus longtemps.

Édit : voici le lien vers l'archive météo France


ok merci pour l'info c m'interesse météo france

Hors ligne

#1769 Le 04/01/2013, à 13:38

daniel38100

Re : [Conky] Alternative à weather.com (2)

sur météo France toute les infos sont sur le même code source apparemment  ça m'a l'air plus simple mais moins detailler

Hors ligne

#1770 Le 04/01/2013, à 13:42

daniel38100

Re : [Conky] Alternative à weather.com (2)

daniel38100 a écrit :

sur météo France toute les infos sont sur le même code source apparemment  ça m'a l'air plus simple mais moins detailler

mais on peut essayer de faire quelque chose de bien

@  Didier-T et ceux que ca interesse
ya quelque temp je m'étai pencher sur http://www.meteociel.com/prevision/genprev2.php avent de tonber sur ton meteo.lua

Dernière modification par daniel38100 (Le 04/01/2013, à 13:59)

Hors ligne

#1771 Le 04/01/2013, à 14:13

jpdipsy

Re : [Conky] Alternative à weather.com (2)

daniel38100 a écrit :

sur météo France toute les infos sont sur le même code source apparemment  ça m'a l'air plus simple mais moins detailler

En plus outre les bulletins météo  classiques on trouve un bulletin France , la pluie à une heure, des bulletins  mer et montagne (qui avait été déjà demandés je crois) etc..  donc du taf .....

Et pour ce qui est de la mise en oeuvre je pense (mais ce n'est que mon avis) que le couple conky/lua reste une bonne solution car il permet de proposer aussi bien des choses simples (conky de base ) à plus étoffé grâce à image.meteo et tout ce que l'on peut lui adjoindre comme script.
Mais je le répète ceci n'est que mon avis.

Dernière modification par jpdipsy (Le 04/01/2013, à 14:26)

Hors ligne

#1772 Le 04/01/2013, à 14:29

daniel38100

Re : [Conky] Alternative à weather.com (2)

jpdipsy a écrit :
daniel38100 a écrit :

sur météo France toute les infos sont sur le même code source apparemment  ça m'a l'air plus simple mais moins detailler

En plus outre les bulletins météo  classiques on trouve un bulletin France , la pluie à une heure, des bulletins  mer et montagne (qui avait été déjà demandés je crois) etc..  donc du taf .....

oui je suis en train de faire quelque chose sur les bulletin d'avalenche .

Hors ligne

#1773 Le 05/01/2013, à 18:27

Didier-T

Re : [Conky] Alternative à weather.com (2)

Bonjour a tous,

comme je le disais plus haut, je commence a m’intéresser à python.

Pour le moment je débute complètement, mais voici un premier jet.
l'ébauche de la fonction de récupération des pages web de accuweather.

#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr

import urllib.request, os, time

homedir = os.path.expanduser('~')
htmlcodes = {"&#233;":"é", "&deg;":"°", "&#201;":"É", "&#232;":"è", "&#231;":"ç", "&#206;":"Î", "&#39;":"'", "&#174;":""}

def conditionCourante(adress, fichier, pat):
    
    url=urllib.request.Request(adress)
    currentCond=urllib.request.urlopen(url)
    fiche = open(fichier, "w")
    x=-1
    y=0
    for ligne in currentCond :
        ligne=ligne.decode("utf-8", "strict")
        if ligne.find(pat) != -1:
            y=1
        if y==1 :
            x=x+1
            for char in htmlcodes:
                ligne=ligne.replace(char, htmlcodes[char])
            fiche.write(str(x)+" "+ligne)
    fiche.close()

# Mise en tache de fond
while 1 :
    time.sleep(60*5)
    conditionCourante('http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593', homedir+"/meteo", '<!-- /#detail-tab-buttons.detail-tab-buttons -->')

En gros je charge la page web, récupère les informations a partir d'une balise et les enregistre dans un fichier texte, et ceci toutes les 5 minutes jusqu’à extinction du programme (par kill ou arrêt pc, je sais, j'suis un bœuf, mais bon).

Je suis ouvert aux remarques, si quelqu'un qui connais déjà python voit des choses étranges...

Dernière modification par Didier-T (Le 05/01/2013, à 18:37)

Hors ligne

#1774 Le 05/01/2013, à 19:14

jpdipsy

Re : [Conky] Alternative à weather.com (2)

Didier-T a écrit :

Bonjour a tous,

comme je le disais plus haut, je commence a m’intéresser à python.

Pour le moment je débute complètement, mais voici un premier jet.
l'ébauche de la fonction de récupération des pages web de accuweather.

#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr

import urllib.request, os, time

homedir = os.path.expanduser('~')
htmlcodes = {"&#233;":"é", "&deg;":"°", "&#201;":"É", "&#232;":"è", "&#231;":"ç", "&#206;":"Î", "&#39;":"'", "&#174;":""}

def conditionCourante(adress, fichier, pat):
    
    url=urllib.request.Request(adress)
    currentCond=urllib.request.urlopen(url)
    fiche = open(fichier, "w")
    x=-1
    y=0
    for ligne in currentCond :
        ligne=ligne.decode("utf-8", "strict")
        if ligne.find(pat) != -1:
            y=1
        if y==1 :
            x=x+1
            for char in htmlcodes:
                ligne=ligne.replace(char, htmlcodes[char])
            fiche.write(str(x)+" "+ligne)
    fiche.close()

# Mise en tache de fond
while 1 :
    time.sleep(60*5)
    conditionCourante('http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593', homedir+"/meteo", '<!-- /#detail-tab-buttons.detail-tab-buttons -->')

En gros je charge la page web, récupère les informations a partir d'une balise et les enregistre dans un fichier texte, et ceci toutes les 5 minutes jusqu’à extinction du programme (par kill ou arrêt pc, je sais, j'suis un bœuf, mais bon).

Je suis ouvert aux remarques, si quelqu'un qui connais déjà python voit des choses étranges...

En tout cas çà à le mérite de fonctionner   smile

Hors ligne

#1775 Le 07/01/2013, à 13:53

daniel38100

Re : [Conky] Alternative à weather.com (2)

Didier-T a écrit :

Bonjour a tous,

comme je le disais plus haut, je commence a m’intéresser à python.

Pour le moment je débute complètement, mais voici un premier jet.
l'ébauche de la fonction de récupération des pages web de accuweather.

#! /usr/bin/python3
# -*- coding: utf-8 -*-
# Par Didier-T Forum Ubuntu.fr

import urllib.request, os, time

homedir = os.path.expanduser('~')
htmlcodes = {"&#233;":"é", "&deg;":"°", "&#201;":"É", "&#232;":"è", "&#231;":"ç", "&#206;":"Î", "&#39;":"'", "&#174;":""}

def conditionCourante(adress, fichier, pat):
    
    url=urllib.request.Request(adress)
    currentCond=urllib.request.urlopen(url)
    fiche = open(fichier, "w")
    x=-1
    y=0
    for ligne in currentCond :
        ligne=ligne.decode("utf-8", "strict")
        if ligne.find(pat) != -1:
            y=1
        if y==1 :
            x=x+1
            for char in htmlcodes:
                ligne=ligne.replace(char, htmlcodes[char])
            fiche.write(str(x)+" "+ligne)
    fiche.close()

# Mise en tache de fond
while 1 :
    time.sleep(60*5)
    conditionCourante('http://www.accuweather.com/fr/fr/argenteuil/133593/current-weather/133593', homedir+"/meteo", '<!-- /#detail-tab-buttons.detail-tab-buttons -->')

En gros je charge la page web, récupère les informations a partir d'une balise et les enregistre dans un fichier texte, et ceci toutes les 5 minutes jusqu’à extinction du programme (par kill ou arrêt pc, je sais, j'suis un bœuf, mais bon).

Je suis ouvert aux remarques, si quelqu'un qui connais déjà python voit des choses étranges...

moi je récupère les donnée grace a une requette GET http je sais pas si c mieu

Hors ligne