Forum Lifedomus
JS pour récupérer température api wunderground - Version imprimable

+- Forum Lifedomus (http://forum-lifedomus.com)
+-- Forum : Les outils de configuration et design (http://forum-lifedomus.com/forumdisplay.php?fid=7)
+--- Forum : Config Studio (CS) (http://forum-lifedomus.com/forumdisplay.php?fid=8)
+---- Forum : Connecteurs (http://forum-lifedomus.com/forumdisplay.php?fid=10)
+----- Forum : Universel (http://forum-lifedomus.com/forumdisplay.php?fid=29)
+----- Sujet : JS pour récupérer température api wunderground (/showthread.php?tid=1702)

Pages : 1 2 3


JS pour récupérer température api wunderground - connecs35 - 08-26-2016

Bonjour,

Je souhaiterais, par exemple, récupérer la valeur de la température extérieur en utilisant cette API: http://api.wunderground.com/api/9cb1abd7e38ad18f/conditions/q/de/noyal-sur-vilaine.xml
Je me suis inspiré de ce post:http://www.lifedomus.com/forum/showthread.php?670-sonde-oregon/page2.
Mais, je bloque, mes connaissances en javascript sont quasi nul. J'ai réussi à affiche l'ensemble du XML dans un widget, mais je n'arrive pas a sélectionner la valeur qui se trouve entre le deux <temp_c>: "<temp_c>25.8</temp_c> "

Merci d'avance pour votre aide.[Image: icon11.png]


JS pour récupérer température api wunderground - mcp - 08-26-2016

Bonsoir


D'abord, perso je préfère privilégier le json, plus facile à parser.

dans ton cas, utiliser l'adresse : http://api.wunderground.com/api/9cb1abd7e38ad18f/conditions/q/de/noyal-sur-vilaine.json

Créer un connecteur ip avec l'adresse : http://api.wunderground.com

Insérer le js suivant dans ton connecteur pour récupérer la température :

Code :
var retour = trame;
    var temp_c = retour.indexOf('"temp_c"');      
if (temp_c!=-1) {                                                      
        var cherche = retour.substr(temp_c);                                
        if (temp_c!=-1) {                                                    
            temp_c = cherche.indexOf(',');                                  
            if (temp_c!=-1) {
                 cherche = cherche.substring(9,temp_c);                          
                 var temp_c = cherche;                                        
            }
        }
    }

Ensuite créer un équipement avec une commande (refresh du json) et une variable (temp_c)

Code :
command="/api/9cb1abd7e38ad18f/conditions/q/de/noyal-sur-vilaine.json"

[ATTACH=CONFIG]743[/ATTACH]

C'est tout, ensuite à toi de voir si tu veux utiliser un automate pour faire régulièrement un "refresh" ou alors un bouton sur DS qui actualisera la température.

J’espère avoir été clair :)

[ATTACH=CONFIG]744[/ATTACH][ATTACH=CONFIG]745[/ATTACH]

Philippe


JS pour récupérer température api wunderground - JT28_vbulletin4_import503 - 08-27-2016

Bonjour Philippe, merci pour cet exemple clair.

J'ai testé, mais il manque "/api/9cb1abd7e38ad18f/conditions/q/de/noyal-sur-vilaine.json" dans la trame d'initialisation du connecteur.

A+

jean-Thierry


JS pour récupérer température api wunderground - mcp - 08-27-2016

Bonjour Jean-Thierry

Pas obligatoire, je ne mets rien en trame d'initialisation et ça fonctionne correctement.
Tu veux dire que tu n'arrive pas à activer ce connecteur sans trame d'init ?

Philippe


JS pour récupérer température api wunderground - Jlr - 08-27-2016

Peux tu me dire si c'est bien un connecteur Universel HTTP???
Qu'utilises-tu comme équipement???? un équipement générique Universel????
quand je créé mon connecteur, il semble se connecter, par contre dans l'équipement, j'ai bien d'autres connecteurs déjà créés,
mais pas le connecteur de la température sur le site....
pourtant tes explications me semblent claires....
je ne vois pas ce que j'ai louppé...
par avance merci pour ton aide...
Jean-Louis


JS pour récupérer température api wunderground - Jlr - 08-27-2016

je n'avais rien mis dans la trame d'initialisation....
en la mettant j'ai un retour dans le listen


JS pour récupérer température api wunderground - Jlr - 08-27-2016

Je suis vraiment nul, le connecteur était bien présent mais pas visible sans descendre
dans le menu des choix de
connecteurs


JS pour récupérer température api wunderground - JT28_vbulletin4_import503 - 08-27-2016

mcp a écrit :Bonjour Jean-Thierry

Pas obligatoire, je ne mets rien en trame d'initialisation et ça fonctionne correctement.
Tu veux dire que tu n'arrive pas à activer ce connecteur sans trame d'init ?

Philippe

Exact, pas de retour si j'ai pas la trame d'init.

Jean-Thierry


JS pour récupérer température api wunderground - Jlr - 08-27-2016

J'ai bien le listener avec la temperature, mais dans le widjet, la temperature s'affiche vide..???


JS pour récupérer température api wunderground - Jlr - 08-27-2016

Finalement, j'ai un problème de rafraîchissement du Widget, il semble s'initialiser que lorsque l'on ferme le connecteur
et que je le reconnecte....