Ce tuto va permettre de mettre en oeuvre assez simplement des prévisions météo dans votre eedomus.
Les informations météorologiques sont issues du site météo très complet www.worldweatheronline.com qui dispose d’une API. C’est sur cette API que nous allons nous appuyer pour importer les informations.
4 Pour bénéficier des prévisions météo pour le lendemain, il faut paramétrer les options ainsi (en remplacent Paris par votre localisation)
5 Faites “Try it” et récupérez l’url dans le cadre Request URL, c’est cette url qui servira à appeler vos données par la suite:
http://api.worldweatheronline.com/free/v1/weather.ashx?q=Paris&format=xml&num_of_days=1&date=tomorrow&key=icivotrecléapi
Cette url permet d’obtenir un xml sur mesure l’ors de son appel, par exemple pour mon url j’obtiens ce xml:
[xml highlight=”30,32,35,36,46″] <?xml version="1.0" encoding="UTF-8"?><data>
<request>
<type>City</type>
<query>Paris, France</query>
</request>
<current_condition>
<observation_time>04:24 PM</observation_time>
<temp_C>11</temp_C>
<temp_F>52</temp_F>
<weatherCode>116</weatherCode>
<weatherIconUrl>
<![CDATA[http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png]]>
</weatherIconUrl>
<weatherDesc>
<![CDATA[Partly Cloudy ]]>
</weatherDesc>
<windspeedMiles>12</windspeedMiles>
<windspeedKmph>19</windspeedKmph>
<winddirDegree>160</winddirDegree>
<winddir16Point>SSE</winddir16Point>
<precipMM>0.1</precipMM>
<humidity>87</humidity>
<visibility>10</visibility>
<pressure>996</pressure>
<cloudcover>75</cloudcover>
</current_condition>
<weather>
<date>2014-02-15</date>
<tempMaxC>11</tempMaxC>
<tempMaxF>52</tempMaxF>
<tempMinC>5</tempMinC>
<tempMinF>40</tempMinF>
<windspeedMiles>23</windspeedMiles>
<windspeedKmph>37</windspeedKmph>
<winddirection>SW</winddirection>
<winddir16Point>SW</winddir16Point>
<winddirDegree>221</winddirDegree>
<weatherCode>116</weatherCode>
<weatherIconUrl>
<![CDATA[http://cdn.worldweatheronline.net/images/wsymbols01_png_64/wsymbol_0002_sunny_intervals.png]]>
</weatherIconUrl>
<weatherDesc>
<![CDATA[Partly Cloudy ]]>
</weatherDesc>
<precipMM>0.5</precipMM>
</weather>
</data>
[/xml]
Les données que nous souhaitons affichées sont les dans les lignes en surbrillance.
Notre url acquise et le xml appréhendé, passons à présent à configuration coté eedomus.
7 Dans cette pièce, ajoutez un nouveau périphérique “capteur HTTP” auquel vous donnez le nom que vous souhaitez, chez moi c’est “Pluie demain”, ce capteur comme son nom l’indique, donnera la prévision pluviométrique du lendemain. Configurer ce périphérique comme suit:
Un peu de détail:
coller l’url obtenu à l’étape précédente dans le champ URL de la requête et pour afficher la donnée de la ligne 46 <precipMM>, entrer le chemin XPATH /data/weather/precipMM.
Une fréquence à 600 minutes soit toutes les 10 heures permet 2 rafraîchissements par jour, un étant amplement suffisant, mais au cas ou…
Faites-en de même pour les indicateurs suivants avec leurs chemins XPATH respectifs:
- /data/weather/tempMaxC pour la température maxi
- /data/weather/tempMinC pour la température mini
- /data/weather/windspeedKmph pour la vitesse du vent
- /data/weather/winddirection pour la direction du vent*
*Notez que pour ce périphérique le type de données est “liste de valeurs”.
En place;) ça marche super bien 😉 Merci encore pour cet excellent tuto
Cool, tu peux également sur la même méthode, récupérer les données climatiques actuelles, je pense particulièrement à la pluviométrie qui est très juste comparé au périphérique proposé par défaut sur la box qui ne reflète pas du tout la réalité.
Apparemment il faut être en premium pour creer une autre application car si j’ai bien compris si on prend la même application que ci dessus on utiliserait les précipitations tomorrow ?
En fait, quand tu demande la génération de tomorrow, tu as tout de même les conditions du jour J dans le première partie du xml, tu peux donc faire un seul appel pour avoir non seulement les datas du jour mais également les prévisions du lendemain. Il faut simplement faire un update plus régulier pour actualiser les conditions du jour.
OK, merci Aurel je vais tester ça 😉
++
Bonjour,
Ou peut on trouver ce genre d’image (thermomètre) ?
Merci,
Olivier
Salut, je prépare un pack d’icônes a ce sujet, thermo, pluvio, vent…
bientôt en ligne !
Salut Aurel,
tout est implémenté et avec tes icônes c’est superbe.
mais comme tout le monde, j’en veux toujours plus 😉
il faudrait aussi récupérer le contenu de WeatherDesc, et l’afficher avec un pack de tes icônes
Pierre
Salut Aurel,
d’abord merci à toi de partager cette merveille,
je suis en train de mettre les prévisions météo sur le raspberry, j’ai donc coller mon url dans ton fichier enregistrement_meteo.php que j’ai placé dans var/www/previsionmeteo si j’ai bien suivi, tu conseilles une actualisation à 1h tout les jours.Dis moi que j’ai tout bon pour mon crontab!
0 1 * * * /usr/bin/php /var/www/previsionmeteo/enregistrement_meteo.php
ça correspond à quoi ça dans le chemin? /usr/bin/php /
du coup sur notre capteur eedomus on peut faire un appel toute les heures vu que c’est le cron qui génère l’actualisation à 1h tout les jours.J’ai juste?
merci d’avance
salut, tu as bien tout bon pour ta crontab! /usr/bin/php indique simplement ou est installé php pour l’interprétation de ton script.
merci pour ton retour Aurel,
je viens de mettre en place le crontab, avec exécution du php toute les heures,
ensuite j’ai modifier l’url de mon capteur par
http://ip du rasp/previsionmeteo/enregistrement_meteo.php
et la j’ai une erreur : Ouverture source OKOuverture destnation : Echec
sur eedomus :Température Mini demain données climatiques en erreur: [Valeur non numérique []]. Aperçu du contenu.
quand j’appelle l’url pareil, une idée?
essaye de créer manuellement le fichier “previsions.xml” et donne les droits full dessus.
Bonjour,
Je débute dans la domotique et je viens d’acquérir une box eedomus..
je bloque sur la partie ou il faut insérer son app/key.. je ne sais pas quoi mettre dedans.. surement une adresse qui contient mon API users et APIsecrets ?
Quelqu’un pourrais me renseigner ?
En tout cas, Merci pour ci blog et les tutos qui permette d’exploiter au maximum nos box.
Cordialement,
Salut, il faut en effet générer tes codes api eedomus. Pour cela il faut aller dans configuration/mon compte et faire envoyer sur la ligne identifiants pour l’api.
Merci pour ta réponse.
j’ai bien reçu mes identifiants. Mais comment les utiliser dans le champ “app key” ?
pourriez vous me faire l’adresse que je dois insérer ?
merci par avance.
Cdt
de retour du ski…
mon cron fonctionne en revanche mon fichier prevision.xml se créer dans mon dossier /root et impossible de pointer vers lui dans mes periph meteo, sinon j’ai une erreur
404 Not Found
Not Found
<p […]
une idée? merci d'avance
Finalement j’ai laché l’affaire pour la maj du xml avec le cron tab, je la fais depuis l’eedomus comme pour la vigilance meteo et sa marche nikel…
un petit chmod 777 sur le fichier xml et le tour est joué pour avoir l’update par cron mais ça fonctionne également sous l’eedomus ; )
Je viens de mettre ça en place.
T’es juste un peu fou/mazo d’avoir créé 16 icones pour les directions du vent.
ça m’oblige à le mettre en place maintenant pour respecter ton travail… 🙂
🙂
je ferai la modif dans le pack pour WSW
Par contre, ton pack d’icone n’est pas complet.
Tu n’as pas le WSW, et tu as 2 fois le NNW/NWN.
Si par hasard tu peux mettre à jour le pack…
Bonjour,
Merci pour ce super tuto qui permet d’avoir une météo plus précise que celle de l’eedomus par défaut.
Par contre petite question :
A quand un pack d’icon très jolie (soleil, nuage etc… comme tu sais bien faire 🙂
En fouillant bien tu trouvera ton bonheur ici http://forum.eedomus.com/viewtopic.php?f=50&t=1631
😉
Bonjour et merci pour le tuto
Par contre dans ton exemple tu récupères les données météo du jour () et pas celle du lendemain …
Comment faire pour celle du lendemain ou du surlendemain car quand on demande plusieurs jours , on a pas de distinction, la balise est weather pour tous les jours :
…
…
…
les balises ayant sauté dans mon message …. je reposte
onjour et merci pour le tuto
Par contre dans ton exemple tu récupères les données météo du jour (current_condition) et pas celle du lendemain …
Comment faire pour celle du lendemain ou du surlendemain car quand on demande plusieurs jours , on a pas de distinction, la balise est weather pour tous les jours
Ok j’ai ma réponse 😉
il faut mettre /data/weather[2]/lang_fr pour avoir la prévision de temps du lendemain (jour 2)
Bonjour,
L’API wwo fonctionne très bien de mon côté ! Cependant, les résultats renvoyés chez moi sont en anglais… Avec une bonne liste de traduction on peut obtenir un résultat correct. Pour les icônes fournis par l’API, je ne suis pas fan non plus.
Sinon, j’ai trouvé un plugin widget météo. Ca semble faire tout le travail d’intégration et c’est assez joli.
Cela m’éviter de jouer avec du code (sachant que ce n’est pas tasse de thé).
Sandrine.
salut a toi, tous d’abord merci pour tes partages de connaissance et ton aide, car j’ai selement mon eedomus depuis peu et il me manque des connaissance en programmation, je suis limiter a du Step7 un peu de vbnet (lecture) et un peu de robotique ….oups faut que je m’y attelle
Moi j’ai un pb, j’ai un code erreur 403 sur la page worldweatheronline.com je pense que c lier a mon code API perso dans la zone où il faut renseigner APP/Key, je ne sais pas comment écrire la ligne je pense. j’ai mes codes api_user & api_secret.
si quelqu’un peu m’aider…..
un grand merci a vous
salut, bon c cool, je m’en suis sortie…. maintenant je souhaiterais avoir la météo marine surtout condition pour le surf …..
cependant j’ai un pb, mon acce Xpath doit pas être bon car j’ai un message valeur nul
je souhaite par exemple récupérer la variable suivant swellPeriod_secs du jours et de demain
comment faire ?
merci
Bonjour,
L’API a changé de version et d’url
par contre comment maintenant récupérer les données sachant que l’API renvoie la donnée par heure et il faut mettre 2 jours pour avoir le lendemain ?
Merci
Finalement j’ai trouvé
Il faut utilisé l’url suivant :
api2.worldweatheronline.com/free/v2/weather.ashx?q=lyon&format=xml&num_of_days=2&tp=24&lang=fr&key=xxxxxxxxx
Dans le Xpath renseigner : /data/weather[2]/maxtempC pour le temps max pour demain
/data/weather[1]/maxtempC pour le temps max pour aujourd’hui
Faire de même pour les autres données.
Bonjour Aurel,
Avant tout un grand merci pour ce tuto qui aide bien des quiches comme moi,malgré cela je ne parviens pas récupérer toutes les valeurs seul température mini maxi et indice UV.Pour le reste j’ai comme message d’erreur valeur lue vide
Si tu as une idée je suis preneur!
En tout les cas encore un grand merci pour le partage et bon WE pascal à toi.
Les API ont changé, les liens XPATH ne sont plus a jour et ne fonctionne plus pour récupérer la pluie par exemple…
SNIF !
Ah zut, je vais vérifier tout ca
Ha marche plus!!!
Les API free ont étés désactivés.
Bon, va falloir trouver autre chose. En attendant, je vais désactiver les requètes, car j’ai plein d’erreur sur l’Eedomus…
Bonjour Aurélien
Est-ce que tu n’aurais pas connaissance d’un autre service permettant de remplacer worldweatheronline.com ?
Je te remercie.
Salut,
je n’ai pas creuser le sujet depuis un moment mais de memoire à l’epoque, je n’avais pas trouver mieux non! Après si, il y a mieux, mais c’est l’investissement dans une station netatmo, ainsi, tu dispose de relevés exactes et concrets, mais cela demande un coût supplementaires…
Merci pour ta réponse.
Tu peux remonter les précisions météo de netatmo dans eedomus ?
Car j’ai une station netatmo …
J’ai trouvé http://api.apixu.com mais pas de forecast à j+1