Utilisation du plugin virtual pour lancer une API et récupérer les données en retour (ex météo)

Nota : si vous avez juste besoin de données météo, le plus simple est d’utiliser le plugin MeteoFull. Par contre, si vous avez besoin de données qu’il ne fait pas remonter ou si plus largement, vous souhaitez comprendre comment facilement déclencher des API en récupérant le résultat, ce tuto est fait pour vous.

Il y a peu, j’ai souhaité récupérer des données météo du site https://www.prevision-meteo.ch
Le fonctionnement de leur API est simple, et ne nécessite pas de mot de passe ou de clef API et donc pas besoin de s’enregistrer. C’est un avantage pour un tuto !
Dans votre navigateur, rentrer par exemple cet URL https://www.prevision-meteo.ch/services/json/Paris
et vous récupérez un JSON. Si votre navigateur est configuré pour lire les JSON, vous obtenez quelque chose du style :
image

Le plugin script permet à la fois de lancer la requête ( https://www.prevision-meteo.ch/services/json/Paris ) mais aussi de récupérer son résultat.
Supposons que l’on cherche à récupérer la température qu’il fait,
observez la chaine JSON
image
vous pouvez configurer un script ainsi :


Notez le > entre current_condition et tmp
Faite tester et là, miracle, on obtient la température en question.

Perso, j’ai augmenté le timeout à 10s (essais en cours) (par défaut 2s) car j’avais des timeouts.

Pour aller plus loin dans cet API :

2 « J'aime »

Bonjour et merci pour ce tuto.

Savais-tu que le plugin gratuit MeteoFull utilise les données de ce site pour remonter les informations ?

Oui, effectivement, et il est d’ailleurs très complet. (Edit :J’ai édité mon premier message pour en parler)
Ceci dit, il ne fait pas tout remonter et j’ai eu besoin d’une donné qu’il n’avait pas et j’ai depuis peu un problème que je ne comprends pas (cf mon autre message) qui fait que les données ne remontait plus. Là, je viens de regarder, ça remonte.
Donc effectivement, pour les besoins concret de météo, aller voir ce plugin.
Pour des éléments qu’ils ne fait pas remonté ou plus largement déclencher des API même non météo, voir ce tuto.

1 « J'aime »

Bonjour,

Oui et non: si chaque commande est appelée individuellement alors oui il y aura un appel api pour chaque mais si les commandes sont rafraichie via la commande refresh (à préconiser donc plutôt que d’appeler chaque commande) alors une même requête ne sera exécutée qu’une seul fois pour ensuite être utilisée par toutes les commandes de l’équipement.
Pareil avec l’auto-actualisation: une requête exécutée et utilisée plusieurs fois pour alimenter toutes les commandes infos utilisant la même requête.

Donc ceci n’est pas une super idée puisque c’est déjà géré :wink: :

Ha ok !
Donc si on a par exemple


image
On a un seul appel et non deux toutes les 30mn !
Trop forts ces développeurs !
Je retire la chose du premier message.