banditblue a écrit :GuilouV
j'ai aussi été sur le site de Ubuntu celui-ci aussi ne fonctionne plus
C'est à dire?
Je l'utilise depuis une dizaine de jours sans problème. Tu ne te serai pas planter avec le code de ta ville?
En fait pour résumé le wiki, il te faut dabord crée un répertoire .conky dans lequel tu vas placer l'ensemble de tes fichiers (meteo.sh, meteo2.sh, meteo.xslt, conky-meteo). N'oublie pas de rendre excécutable les fichiers .sh (chmod +x fichier.sh) puis de détarer weather.tar.bz2 dans le répertoire .fonts ( à créer s'il n'existe pas). Il te faut ensuite rentrer le code de ta ville dans le fichier conky-meteo (dans la ligne ${execi 120 ~/.conky/conky.sh...}, quelque chose qui doit ressembler à FRALxxxx) et la partie configuration (polices, taille du conky, position,...) avant la partie TEXT en laissant au moins une ligne d'intervalle.
La commande pour le lancer: ~/.conky/conky-meteo
Si tu as besoin d'un coup de main, n'hésites pas
effectivement c'est facile a mettre en oeuvre
voila une capture de la méteo que j'ai réussi a faire fonctionner
par contre quelque soucie d'affichage
- je n'ai pas le retour des températures du matin et de l'aprés-midi
- je voudrais aussi avoir la météo sur 4 jours si possible et comment les ajouter dans le fichier
- lors de l'instal de logiciel (celui dans le wiki ==> installer le paquetxsltproc (c'est léger)
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé
j'ai eu le même soucis, il faut corrigé et mettre "é". Par ailleurs tu peux ajouter use_xft yes en toute première ligne.
> sur weather.com la météo est disponible sur 10 jours, cà doit pouvoir se faire, il y a sans doute des lignes à ajouter dans meteo2.sh, je n'ai pas encore trouvé.
banditblue a écrit :lors de l'instal de logiciel (celui dans le wiki ==> installer le paquet xsltproc (c'est léger)
> sur arch c'est le paquet libxslt, il s'agit d'une librairie XML
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Effectivement il y avait un probleme d'accentuation.
Maintenant je vais essayé de trouver les autre information qu'i m'interresse et les mettrais en ligne
pourquoi pas monter un wiki par la suite
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé
Je continue de chercher de mon côté également. Sinon il y a celui-ci qui est pas mal aussi. C'est excactement le même mais basé sur Yahoo (avec des icônes différentes, donc).
banditblue a écrit :pourquoi pas monter un wiki par la suite
Oui pourquoi pas, dans le wiki sur conky alors, comme sur le wiki anglais, avec des exemples de conky-météo, affichage des mails, flux RSS...
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
Bon tant mieux si ça fonctionne maintenant mais je trouve la méthode compliqué.
Perso j'avais juste installé conkywx puis:
- modifié le fichier /etc/conkywx/conkywx.conf pour lui indiquer ma zone géographique
- ajouter ${execpi 3600 conkywx -c "/etc/conkywx/conkywx.conf" -t "/usr/share/conkywx/examples/mon-template.sh"} à mon fichier .conkyrc
- créer le script /usr/share/conkywx/examples/mon-template.sh comme indiqué précédemment
De cette façon il n'y a qu'à modifier les variables dans ce script pour afficher les infos que l'on souhaite pour les jours concernés.
[ Vaio S (VJS131X0211B) ]==[Arch64 i3 Bépo]==[KISS spirit]
<xsl:template match="dayf/day[@d='1']">
<xsl:text>
Température à 4 jours : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text>
Conditions à 4 jours : </xsl:text><xsl:value-of select="part[@p='d']/t"/>
</xsl:template>
</xsl:stylesheet>
Reste ensuite à mettre les commandes adéquates dans conky-meteo
Je n'ai pas essayé il se fait tard
Je tenterai de mon côté demain. Tiens moi au jus si tu as du résultat (positif ou non)
"La complication est un effet de la simplicité mal acquise"
Intel i5-2320; Nvidia GeForce GT 520; ATA Hitachi 2To; ArchLinux-KDE
J'ai essayé ton code, mais cela ne fonctionne pas....
Température à 4 jours : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/> <xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
en décortiquant la ligne de commande pour deux informations
- Température à 4 jours = appel de la commande à utiliser
- de </xsl:text><xsl:value-of select="low"/> = valeur a affiché pour la commande appelé (température basse)
- <xsl:value-of select="/weather/head/ut"/> = unité de valeur a afficher
- à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/> =idem pour la temperature haute et unité de valeur à afficher
<xsl:template match="dayf/day[@d='1']">
<xsl:text>
Température à 4 jours : de </xsl:text><xsl:value-of select="low"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> à </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text>
Conditions à 4 jours : </xsl:text><xsl:value-of select="part[@p='d']/t"/>
</xsl:template>
</xsl:stylesheet>
j'ai tenté moi aussi en changeant les informations histoire d'avoir plus d'infos
dans l'entete du script j'ai rajouté les commande de template pour les jours suivant
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" >
<xsl:output method="text" disable-output-escaping="yes"/>
<xsl:template match="weather">
<xsl:text>Ville : </xsl:text><xsl:value-of select="/weather/loc/dnam"/>
<xsl:apply-templates select="cc"/>=== info 1er jour <xsl:apply-templates select="dayf/day[@d='1']"/>=== info du 2eme jours <xsl:apply-templates select="dayf/day[@d='2']"/>=== info du 3eme jours <xsl:apply-templates select="dayf/day[@d='3']"/>=== info du 4eme jours
et dans la fin du fichier le templates pour le 3eme jours
<xsl:template match="dayf/day[@d='2']"> === jai mis a 2 pour le troisiéme jours <xsl:text>
Température_J2m : </xsl:text><xsl:value-of select="low"/> °<xsl:value-of select="/weather/head/ut"/>
<xsl:text> === idem pour temperature du matin J2m Température_J2a : </xsl:text><xsl:value-of select="hi"/>°<xsl:value-of select="/weather/head/ut"/>
<xsl:text> === idem pour temperature de l'apres-midi Conditions_J2 : </xsl:text><xsl:value-of select="part[@p='d']/t"/>
</xsl:template> === idem pour les condition du deuxieme jour J2
voila pour les derniere nouvels
Dernière modification par banditblue le jeu. 29 nov. 2012, 11:52, modifié 1 fois.
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé
J'arrive peut-être un peu après la guerre mais perso j'utilise celui-ci: http://browse.deviantart.com/?q=conky+htc#/d4lsxmz que j'ai adapté dans mon conky horizontal. Seul bémol il est en anglais, je n'ai pas encore eu le temps de me pencher sur sa "frenchisation".
Si ça peut servir...
HP 500-261ef full 64 bits - Samsung 24 pcs 1920x1080 px CPU : 4 X Intel ® Core™ i5-4440 @ 3.1 Ghz | RAM : 8 Go HD : Western Digital 1 To | CG Radeon R5 235
Multiboot UEFI : ArchLinux - Windows 7 - Autre base Debian
J'arrive peut-être un peu après la guerre mais perso j'utilise celui-ci: http://browse.deviantart.com/?q=conky+htc#/d4lsxmz que j'ai adapté dans mon conky horizontal. Seul bémol il est en anglais, je n'ai pas encore eu le temps de me pencher sur sa "frenchisation".
Si ça peut servir...
je serais assez curieux de voir ton conky si tu veux bien le partager
afin de l'adapter sur le mien
La connaîssance n'a pas de limite.
Mais sa valeur, est d'autant plus grande, une fois partagé
HP 500-261ef full 64 bits - Samsung 24 pcs 1920x1080 px CPU : 4 X Intel ® Core™ i5-4440 @ 3.1 Ghz | RAM : 8 Go HD : Western Digital 1 To | CG Radeon R5 235
Multiboot UEFI : ArchLinux - Windows 7 - Autre base Debian
Je suis en train de me faire un petit script pour la météo depuis quelques soucis avec celle de google(qui ne fonctionne plus). Avec wunderground, il est possible d'avoir un autre format que le xml à savoir le json. C'est donc plus facile à exploiter et les infos sont beaucoup plus nombreuses que ce que j'ai pu trouver ailleurs. Par contre il faut s'enregistrer . L'avantage c'est de pouvoir faire 500 requêtes dans la journée et 5 par minute avant d'être banni (c'est beaucoup moins quand on ne l'est pas).
[edit] Voici mon script en python. ATTENTION il n'est pas finalisé ! Pour le tester il faudra changer 3 variables dans le codes qui se trouvent au début du programme principal (suivre les commentaires)
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# jeu. 28 nov. 2012
# Depend of python-yaml
import urllib.request
import json, sys, os, time, copy, yaml
# Todo :
# - Faire le help
# - Renvoyer sur le help si aucun fichier de configuration n'existe
# - Corriger le souci avec les icônes pour un export vers conky
# - Corriger le souci avec le vent pour un export vers conky
######
# Classe
############
class Condition:
def __init__(self, name):
self.name = name
######
# Début du programme principal
############
#error_file = "/var/log/weather/error.lorg"
#conf_file = "/etc/weather.yaml"
#icons_wind_dir = "/usr/share/weather/Icons/Wind/"
#icons_weather_dir = "/usr/share/weather/Icons/Weather/"
error_file = "/home/julien/weather_error.log"
conf_file = "/home/julien/Python/Weather/weather-0.1/weather.conf"
icons_wind_dir = "/home/julien/Python/Weather/weather-0.1/Icons/Wind/"
icons_weather_dir = "/home/julien/Python/Weather/weather-0.1/Icons/Weather/"
# On découpe les fichiers pour obtenir le path et le fichier
(path, f) = os.path.split(error_file)
if path == "":
# Si path est vide on le remplace par ~
path = os.path.expanduser('~')
error_file = os.path.join(path, f)
# On vérifie les droits d'écriture dans le fichier log
if not os.access(path, os.W_OK):
sys.stderr.write("Vous n'avez pas les droits d'écriture sur \"" + error_file + "\"\n")
sys.exit(2)
# Pareil que précédemment
(path, f) = os.path.split(conf_file)
if path == "":
path = os.path.expanduser('~')
conf_file = os.path.join(path, f)
if not os.access(path, os.R_OK):
sys.stderr.write("Vous n'avez pas les droits de lecture sur \"" + conf_file + "\"\n")
with open(error_file, 'w') as err:
err.write("Vous n'avez pas les droits de lecture sur \"" + conf_file + "\"\n")
sys.exit(2)
if not os.path.isfile(conf_file):
sys.stderr.write("Le fichier \"" + conf_file + "\" n'existe pas !\n")
with open(error_file, 'w') as err:
err.write("Le fichier \"" + conf_file + "\" n'existe pas !\n")
sys.exit(2)
# Chargement du fichier de configuration
source = open(conf_file, 'r')
data = yaml.load(source.read())
source.close()
# On vérifie que l'emplacement du fichier pour enregistrer les données existe
(path, f) = os.path.split(data['file'])
if path == "":
path = os.path.expanduser('~')
data['file'] = os.path.join(path, f)
# On vérifie qu'on a les droits d'écritures
if not os.access(path, os.W_OK):
sys.stderr.write("Vous n'avez pas les droits d'écriture sur \"" + data['file'] + "\"\n")
with open(error_file, 'w') as err:
err.write("Vous n'avez pas les droits d'écriture sur \"" + data['file'] + "\"\n")
sys.exit(2)
# On vérifie qu'on a les droits de lecture sur les icons du vent
if not os.access(icons_wind_dir, os.R_OK):
sys.stderr.write("Vous n'avez pas les droits de lecture sur \"" + icons_wind_dir + "\"\n")
with open(error_file, 'w') as err:
err.write("Vous n'avez pas les droits de lecture sur \"" + icons_wind_dir + "\"\n")
sys.exit(2)
# On vérifie qu'on a les droits de lecture sur les icons du temps
if not os.access(icons_weather_dir, os.R_OK):
sys.stderr.write("Vous n'avez pas les droits de lecture sur \"" + icons_weather_dir + "\"\n")
with open(error_file, 'w') as err:
err.write("Vous n'avez pas les droits de lecture sur \"" + icons_weather_dir + "\"\n")
sys.exit(2)
# On démarre la boucle infinie
while 1:
# On récupère la page json
page_json = urllib.request.urlopen(data['url'])
# On charge le code json
parsed_json = json.loads(page_json.read().decode("utf-8", "ignore"))
# On ferme la page
page_json.close()
# Définition des variables
now = Condition('now')
today = tomorrow = after_tomorrow = latest = tmp = Condition('nothing')
# On récupère la ville
now.city = parsed_json['location']['city']
# On récupère l'heure actuelle
now.hour = time.strftime('%H:%M', time.localtime(int(parsed_json['current_observation']['observation_epoch'])))
# On récupère la température actuelle en °C
now.current_temp = parsed_json['current_observation']['temp_c']
# On récupère le temps actuel
now.current_weather = parsed_json['current_observation']['weather']
# On récupère l'humidité
now.humidity = parsed_json['current_observation']['relative_humidity']
# On récupère la vitesse du vent
now.wind_kph = parsed_json['current_observation']['wind_kph']
# On récupère l'orientation du vent
now.wind_dir = parsed_json['current_observation']['wind_dir']
# On récupère l'orientation du vent en °C
now.wind_degrees = parsed_json['current_observation']['wind_degrees']
# On récupère la pression
now.pressure_mb = parsed_json['current_observation']['pressure_mb']
# On récupère le point de rosée
now.dewpoint_c = parsed_json['current_observation']['dewpoint_c']
# On récupère la température ressentie
now.feelslike_c = parsed_json['current_observation']['feelslike_c']
# On récupère la visibilité
now.visibility = parsed_json['current_observation']['visibility_km']
# On récupère l'indice UV
now.UV = parsed_json['current_observation']['UV']
# On récupère l'icône
now.icon = parsed_json['current_observation']['icon']
# On récupère la hauteur de la pluie
now.precip = parsed_json['current_observation']['precip_today_metric']
# On récupère les prévisions à 4 jours
forecast = parsed_json['forecast']['simpleforecast']['forecastday']
for i in forecast:
tmp.temp_max = i['high']['celsius'] # Température max
tmp.temp_min = i['low']['celsius'] # Température min
tmp.conditions = i['conditions'] # Conditions météo
tmp.icon = i['icon'] # Icône du temps
tmp.wind_max = i['maxwind']['kph'] # Vitesse du vent max
tmp.wind_max_dir = i['maxwind']['dir'] # Direction du vent
tmp.wind_max_deg = i['maxwind']['degrees'] # Direction du vent en °
tmp.wind_ave = i['avewind']['kph'] # Vitesse moyenne du vent
tmp.wind_ave_dir = i['avewind']['dir'] # Direction moyenne du vent
tmp.wind_ave_deg = i['avewind']['degrees'] # Direction moyenne du vent en °
tmp.humidity_ave = i['avehumidity'] # Humidité moyenne
tmp.humidity_max = i['maxhumidity'] # Humidité max
tmp.humidity_min = i['minhumidity'] # Humidité min
tmp.day = i['date']['day'] # Numéro du jour
tmp.month = i['date']['month'] # Numéro du mois
tmp.pop = i['pop'] # Pourcentage de chance que ça arrive
tmp.qpf_allday = i['qpf_allday']['mm'] # Précipitations totales en mm
tmp.snow_day = i['snow_day']['cm'] # Neige totale en cm
if i['period'] == 1:
tmp.name = 'today'
today = copy.copy(tmp)
elif i['period'] == 2:
tmp.name = 'tomorrow'
tomorrow = copy.copy(tmp)
elif i['period'] == 3:
tmp.name = 'after_tomorrow'
after_tomorrow = copy.copy(tmp)
elif i['period'] == 4:
tmp.name = 'latest'
latest = copy.copy(tmp)
else:
sys.stderr.write("Il y a un jour inconnu : \"period = " + i['period'] + "\"\n")
with open(error_file, 'w') as err:
err.write("Il y a un jour inconnu : \"period = " + i['period'] + "\"\n")
sys.exit(2)
# Partie écriture
with open(data['file'], 'w') as c:
c.write("Weather = " + now.current_weather + "\n")
c.write("City = " + now.city + "\n")
c.write("Hour = " + now.hour + "\n")
c.write("Temperature = " + str(now.current_temp) + "\n")
c.write("Feelslike_c = " + now.feelslike_c + "°C\n")
c.write("Humidity = " + now.humidity + "\n")
c.write("Wind = " + str(now.wind_kph) + "Km/h\n")
c.write("Wind_dir = " + now.wind_dir + "\n")
c.write("Pressure = " + now.pressure_mb + "mb\n")
c.write("Dewpoint = " + str(now.dewpoint_c) + "°C\n")
c.write("Visibility = " + now.visibility + "Km\n")
c.write("UV = " + now.UV + "\n")
c.write("Precipitation = " + now.precip + "mm\n")
c.write("Icon = " + now.icon + "\n")
for var in [today, tomorrow, after_tomorrow, latest]:
c.write(var.name + "_temp_max = " + var.temp_max + "\n")
c.write(var.name + "_temp_min = " + var.temp_min + "\n")
c.write(var.name + "_conditions = " + var.conditions + "\n")
c.write(var.name + "_icon = " + var.icon +"\n")
c.write(var.name + "_wind_max = " + str(var.wind_max) + "\n")
c.write(var.name + "_wind_max_dir = " + var.wind_max_dir + "\n")
c.write(var.name + "_wind_max_deg = " + str(var.wind_max_deg) + "\n")
c.write(var.name + "_wind_ave = " + str(var.wind_ave) + "\n")
c.write(var.name + "_wind_ave_dir = " + var.wind_ave_dir + "\n")
c.write(var.name + "_wind_ave_deg = " + str(var.wind_ave_deg) + "\n")
c.write(var.name + "_humidity_max = " + str(var.humidity_max) + "\n")
c.write(var.name + "_humidity_min = " + str(var.humidity_min) + "\n")
c.write(var.name + "_humidity_ave = " + str(var.humidity_ave) + "\n")
c.write(var.name + "_pop = " + str(var.pop) + "%\n")
c.write(var.name + "_qpf_allday = " + str(var.qpf_allday) + "mm\n")
c.write(var.name + "_day = " + str(var.day) + "\n")
c.write(var.name + "_month = " + str(var.month) + "\n")
time.sleep(data['sleep'])
file: /tmp/weather
# For sleep, becarefull of the limit
sleep: 1800
url: http://api.wunderground.com/api/xxxx_your_key_xxxx/forecast/geolookup/conditions/lang:FR/q/France/Saint-etienne.json
Chipster a écrit :Par contre il faut s'enregistrer . L'avantage c'est de pouvoir faire 500 requêtes dans la journée et 5 par minute avant d'être banni (c'est beaucoup moins quand on ne l'est pas).
Personnellement je ne suis pas enregistré sous wunderground ce qui ne m'empêche de l'utiliser via conky et de l'actualiser toutes les 3 heures.
Qui a vraiment besoin d'actualiser sa météo toutes les secondes?
[ Vaio S (VJS131X0211B) ]==[Arch64 i3 Bépo]==[KISS spirit]
@GuilouV: Je n'ai pas dit que nous étions des barbares à synchro toutes les secondes
Par contre tu as des scripts qui font de nombreuses requêtes pour avoir toutes les informations. Ici tu peux faire des appels pour avoir :
- Les conditions météo
- Tout ce qui concerne la lune
- Les différentes cartes radar (pluie, nuage, ...)
- ...
Il faut prendre en compte les scripts qui n'utilisent aucun cache et le tout cumulé, tu arrives vite à un nombre d'appel conséquent
Tu as raison Chipster, je n'avais pas vu les choses sous cet angle étant donné que je n'utilise qu'un seul script pour recevoir toutes mes infos. J'avoue d'ailleurs être un peu perdu en voyant tous ces scripts en lisant ce sujet. M'enfin chacun sa méthode tant que le résultat est là.
[ Vaio S (VJS131X0211B) ]==[Arch64 i3 Bépo]==[KISS spirit]