Le package ForecastIO vous permet de connaitre les conditions météorologique actuelles et prévisions jusqu’à 8 jours.

image

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.

image

Une fois inscrit, copiez la clé API que vous devrez rentrer dans la configuration du package Constellation.

image

Installation du package Constellation

Depuis le “Online Package Repository” de votre Console Constellation, déployez le package ForecastIO :

image

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 :

image

Le XML de configuration du package a la structure suivante :

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:

Bien entendu vos  pouvez également déployer ce package manuellement dans la configuration de votre Constellation :

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.

image

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

image

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
ForecastIO : les prévisions météo dans Constellation
Editer la page sur GitHub
Étiqueté avec :            

Sur le forum :

  1. 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 :slightly_smiling_face:

  2. 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,

  3. Bonjour,

    Mise à jour faite à l’instant et c’est fonctionnel!!

    Un grand merci et bravo

  4. 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 :

    [StateObjectLink("PCCONSTELLATION", "ForecastIO", "Quibou")]
    public StateObjectNotifier ForecastIO_Quibou { get; set; }
    

    je n’arrive pas à récupérer les informations de ce dernier pour les binder sur mon TextBlock :

    <TextBlock x:Name="Quibou"
                            Margin="0,578,82,0" VerticalAlignment="Top"
                            Style="{StaticResource MaterialDesignBody2TextBlock}" FontSize="20" Height="61" 
                            Text="{Binding ForecastIO_Quibou.Value.DynamicValue.Latitude}" TextAlignment="Left" HorizontalAlignment="Right" Width="176"/>
    

    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

  5. 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

  6. 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.

  7. Bonsoir,

    Il faut déclarer un setting de type “content” nommé “forecastIOConfigurationSection” pour définir la configuration du package.

    Voici un exemple :

    <package name="ForecastIO">
      <settings>
        <setting key="forecastIOConfigurationSection">
          <content>
            <forecastIOConfigurationSection xmlns="urn:ForecastIO" apiKey="xxxxxxxxxxxxxxx" refreshInterval="00:30:00">
              <stations>
                <station name="Wasquehal" longitude="3.1307819999999538" latitude="50.669276" />
              </stations>
            </forecastIOConfigurationSection>
          </content>
        </setting>
      </settings>
    </package>

    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+

Continuez la discussion sur le forum Constellation

Participants