Sommaire
Le package ForecastIO vous permet de connaitre les conditions météorologique actuelles et prévisions jusqu’à 8 jours.
Le code source de ce package est disponible sur : https://github.com/myconstellation/constellation-packages/tree/master/ForecastIO
Installation
Prérequis : créer un compte développeur sur Dark Sky
Pour pouvoir utiliser le service Forecast.io vous devez créer un compte développeur Dark Sky sur : https://darksky.net/dev/
Vous disposez de 1.000 appels au service par jour gratuitement.
Une fois inscrit, copiez la clé API que vous devrez rentrer dans la configuration du package Constellation.
Installation du package Constellation
Depuis le “Online Package Repository” de votre Console Constellation, déployez le package ForecastIO :
Une fois le package télécharger votre repository local, sélectionnez la sentinelle sur laquelle déployer le package.
Pour finir, sur la page de Settings, vous devez obligatoirement définir la configuration au format XML :
Le XML de configuration du package a la structure suivante :
1 2 3 4 5 |
<forecastIOConfigurationSection xmlns="urn:ForecastIO" apiKey="xxxxxxxxxxxxxxxxx" refreshInterval="00:30:00" language="en"> <stations> <station name="Paris" longitude="2.35" latitude="48.853" /> </stations> </forecastIOConfigurationSection> |
Sur la balise racine, vous devez obligatoirement spécifier dans l’attribut “apiKey” votre clé d’API obtenue sur le portail développeur Dark Sky. Vous pouvez également modifier l’intervalle de rafraichissement des prévisions (par défaut 30 minutes), la langue des commentaires (par défaut en anglais) ainsi que les unités (en rajoutant l’attribut « unit »).
Dans la listes “<stations>” vous pouvez configurer autant de stations que vous souhaitez. Chaque station est définie par un nom et une position GPS (Latitude et Longitude).
Par exemple, pour maintenir à jour dans vos StateObjects Constellation, la météo (en Francais), pour Paris, Lille et Londres toutes les 10 minutes:
1 2 3 4 5 6 7 |
<forecastIOConfigurationSection xmlns="urn:ForecastIO" apiKey="xxxxxxxxxxxxxxxxx" refreshInterval="00:10:00" language="fr"> <stations> <station name="Paris" longitude="2.35" latitude="48.853" /> <station name="Lille" longitude="3.05" latitude="50.629" /> <station name="Londre" longitude="-0.14" latitude="51.557" /> </stations> </forecastIOConfigurationSection> |
Bien entendu vos pouvez également déployer ce package manuellement dans la configuration de votre Constellation :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
<package name="ForecastIO"> <settings> <setting key="forecastIOConfigurationSection"> <content> <forecastIOConfigurationSection xmlns="urn:ForecastIO" apiKey="xxxxxxxxxxxxxxxxx" refreshInterval="00:30:00" language="fr"> <stations> <station name="Paris" longitude="2.35" latitude="48.853" /> <station name="Lille" longitude="3.05" latitude="50.629" /> <station name="Londre" longitude="-0.14" latitude="51.557" /> </stations> </forecastIOConfigurationSection> </content> </setting> </settings> </package> |
Détails du package
Les Settings
Nom | Type | Détail | Description |
forecastIOConfigurationSection | ConfigurationSection | Obligatoire | XML de configuration du package |
Les StateObjects
Vous retrouverez autant de StateObjects que de stations spécifiées dans la configuration du package. Ces StateObjects sont mis à jour pour l’intervalle défini dans la configuration (toutes les 30 minutes par défaut).
Nom | Type | Description |
<< nom de la station >> | ForecastIO.ForecastIOResponse | StateObject dont le nom est le nom de la station que vous avez défini dans la configuration, et la valeur contient les conditions actuelles et prévisions météorologique pour la station. |
Les MessageCallbacks
Le package expose 2 MessageCallbacks :
Nom | Réponse (saga) | Description |
GetWeatherForecast | ForecastIO.ForecastIOResponse | Récupère les conditions actuelles et prévisions météorologique pour une position GPS donnée |
Quelques exemples
- Afficher la météo dans un Dashboard HTML
- Envoyer une notification depuis un package C# en cas de pluie dans l’heure
Bonjour,
je viens d’installer ce package et sa fonctionne nickel.
J’ai remarqué quand dans l’api il était possible de choisir la langue. C’est possible également dans les setting du package ?
merci
Bonjour,
Le package vient d’être mis à jour dans la catalogue en version 1.2 ! Vous devrez avoir une notification dans votre console Constellation pour procéder à sa mise à jour !
Vous pouvez maintenant rajouter dans la configuration du setting l’attribut « language » à « fr » comme ceci :
<forecastIOConfigurationSection xmlns="urn:ForecastIO" apiKey="xxxxxxxxxxxxxxxxx" language="fr">
Bien à vous,
Bonjour,
Mise à jour faite à l’instant et c’est fonctionnel!!
Un grand merci et bravo
Bonjour,
Nouvel utilisateur depuis peu sur Constellation, je souhaite récupérer la météo locale dans mon package WPF C#.
Après avoir déclaré l’abonnement au stateObject suivant :
je n’arrive pas à récupérer les informations de ce dernier pour les binder sur mon TextBlock :
Pour mon premier test je souhaite récupérer la latitude, mais je ne sais pas quoi saisir comme adresse de binding… Je sais que les données récupérées sont du type « ForecastIO.ForecastIOResponse » mais en vain.
Merci
Cordialement
Bonjour Sébastien,
J’ai remarqué qu’il était possible d’avoir l’indice UV dans l’api de dark Sky.
Serait-il possible de l’ajouter dans le SO constellation?
Merci d’avance
Bonjour,
Quand je lance le package ForecastIO il se stoppe de suite en indiquant ceci dans la console log : “Setting ‘forecastIOConfigurationSection’ required but none set”. Que faire pour réparer ce problème ?
Merci d’avance pour toute réponse.
Bonsoir,
Il faut déclarer un setting de type “content” nommé “forecastIOConfigurationSection” pour définir la configuration du package.
Voici un exemple :
Tu peux ajouter autant de station que tu veux en spécifiant les coordonnées GPS et un nom de ton choix. Le package poussera autant de StateObject que de station déclarée (le nom du StateObject est le nom de la station que tu auras défini).
L’attribut “refreshInternal” indiquera la fréquence d’interrogation au service forecast.io pour la mise à jour des StateObjects.
A noter que le package expose aussi le MessageCallback “GetWeatherForecast” qui permet de faire un requête spontané pour une coordonnée GPS (résultat des prévision dans une saga).
Pour finir, il te faudra définir l’attribut “apiKey” avec une clé pour accéder au service. Pour obtenir cette clé, rdv ici : https://developer.forecast.io/
a+