Rainette v3+, une évolution majeure

Ce plugin est une évolution majeure du plugin Rainette v1 et permet d’afficher les conditions et les prévisions météorologiques d’un lieu donné à partir d’un web service météorologique. Cette version supporte plusieurs services météo fournissant une API pour les conditions temps réel et les prévisions.

Il est clairement conseillé de migrer les versions v1 et v2 vers cette nouvelle version v3, la seule maintenue aujourd’hui.

De la v1 à la v3 ou v4

Les problèmes de la version v1

Depuis quelques années, Weather.com® - qui était le service unique utilisé par Rainette v1 - avait perdu en fiabilité, du moins pour les lieux à « faible popularité ». Il a été récemment arrêté après des années de bons services.

Il a donc été nécessaire de faire évoluer Rainette pour pallier au problème posé par Weather® et permettre à tous de disposer d’une météo locale.

Incompatibilité avec la version v1

La version v3 est un refactoring complet de la version v1 (et aussi v2). Outre l’utilisation transparente de divers services météo elle amène une grande facilité de configuration de nouveaux services, une cohérence plus importante dans l’API et les modèles et des prévisions horaires en plus des prévisions jour.

La version v3 n’assure donc aucune compatibilité avec les versions précédentes mais la migration reste simple comme on le verra plus avant dans l’article.

Caractéristiques minimales

La v3 demande d’avoir au minimum php 5.3.0 et ne fonctionne qu’en spip 3.1 et 3.2 !

La v4 elle est compatible avec spip 4 uniquement.

Extension de la liste des services météo

La principale évolution a donc consisté à acquérir et restituer les données météo fournies par différents services et permettre ainsi à chaque utilisateur de choisir le meilleur flux correspondant à sa localisation.

Suite à une petite étude des flux disponibles, la liste des services proposant une API de récupération des données météo retenus dans la version v3 de Rainette est donnée ci-dessous. Cette liste évolue rapidement, la tension mercantile sur ces services étant forte. Certains deviennent payants et d’autres disparaissent comme notre vieux compagnon Weather®.

  • OpenWeather, toujours gratuit et devenu le service par défaut de Rainette ;
  • Weatherbit.io, propose un plan gratuit ;
  • WeatherAPI, propose un plan gratuit ;
  • World Weather Online, uniquement payant mais toujours aussi performant ;
  • AccuWeather, propose un plan gratuit limité mais ce service historique est l’un des plus performants et complets ;
  • Météo Concept, propose un plan gratuit pour la France et quelques localités limitrophes en Belgique, au Luxembourg et en Andorre ;
  • Open-Meteo, dont le code est open-source (Github) et qui fournit un plan gratuit pour une utilisation non commerciale ou personnelle. Une bonne alternative à OpenWeather qui ne demande aucune inscription ;
  • APIXU, a disparu au profit de WeatherStack ;
  • WeatherStack qui finalement n’a pas été retenu étant donné la pauvreté de son offre gratuite et le prix de ses offres payantes ;
  • Weather Underground, ne fournit plus d’API ;
  • Weather.com®, a fermé définitivement.

Tous les services proposés sauf Open-Meteo, utilisent une clé d’inscription pour repérer les utilisations de leur flux.

Il est aujourd’hui conseillé d’utiliser le service OpenWeather qui est proposé par défaut. Open-Meteo, Weatherbit.io et WeatherAPI sont de bonnes alternatives qui proposent encore des options gratuites satisfaisantes. En version payante, le service World Weather Online est toujours d’excellente qualité et AccuWeather est le plus complet.

Configuration

Contrairement à la version v1, chaque service de Rainette v3 possède une configuration qu’il est impératif de positionner avant utilisation. Cette configuration permet de définir la clé d’inscription, le système d’unité et le type de résumé/icône (fourni par le service ou converti vers celui de Weather.com®).

Les services

Les services proposés dans la version actuelle sont connus du plugin par leur alias qui sont les suivants :

  • OpenWeather : owm ;
  • Weatherbit.io : weatherbit ;
  • WeatherAPI : weatherapi ;
  • World Weather Online : wwo ;
  • AccuWeather : accuweather.
  • Météo Concept : meteoconcept.
  • Open-Meteo : openmeteo.

Les alias permettent d’identifier le service dans l’appel des modèles.

Mise en œuvre du plugin

L’indication du lieu

Chaque service possède sa propre liste de format pour indiquer le lieu. Rainette v3 ne retient pas toutes les possibilités mais uniquement les formes suivantes (l’id Weather® n’est plus utilisé par les services actuellement proposés) :

  • le nom d’une ville complétée éventuellement par le pays ville,pays comme Paris,France ou Paris,FR ;
  • l’ID d’une ville de plus de 1000 habitants qui est un nombre entier (2988507 pour Paris), disponible à partir de la version 3.10.1. Il est possible de trouver la correspondance sur le site d’opendatasoft. Pour le service AccuWeather l’ID est spécifique et peut être récupéré via une requête spécifique de l’API (à lancer sur le site lui-même) ;
  • des coordonnées géographiques sous la forme latitude,longitude sachant que latitude et longitude sont exprimées en nombre réel avec un point pour séparer les décimales (45.7 par exemple) ;
  • le code INSEE d’une commune française ;
  • et une adresse IP.

Le mapping avec les services est le suivant :

ServicesVille, PaysCoordonnéesID VilleIPINSEE
OpenWeather x (code pays) x x
Weatherbit.io x (code pays) x x
WeatherAPI x x x
World Weather Online x x x
AccuWeather x
Météo Concept x x
Open-Meteo x

Unité

Quelque soit le service utilisé il est possible d’obtenir les données météorologiques dans le système métrique ou impérial US. La plupart du temps le service fournit la conversion mais quand ce n’est pas le cas, Rainette convertit de lui-même la donnée concernée.

Traduction

Certains services proposent une traduction du résumé météorologique dans une liste de langues. Dans ce cas, Rainette propose soit d’utiliser ce résumé (ce qui est conseillé) soit d’utiliser une conversion vers le résumé de Weather.com® qui lui est traduit en quelques langues par le plugin depuis sa création.

Actuellement tous les services proposés fournissent des traductions : il est donc conseillé de les utiliser. Sans précision dans l’appel du modèle, la langue du site est utilisée. Si cette langue n’est pas fournie par le service une configuration permet de choisir une langue alternative « proche ».

Les modèles

Le nom des modèles conditions, prévisions et informations n’ont pas été modifiés entre la v1 et cette v3. Néanmoins, les paramètres ont été modifiés, en particulier pour fournir le service à utiliser. Les appels sont fournis ci-dessus :

Modèle rainette_infos ou rainette_conditions
1. lieu obligatoire, désigne le lieu sous une forme qui dépend du service.
2. sous_modele facultatif, détermine la présentation des données temps réel. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, conditions_tempsreel.
3. service facultatif, désigne le service à utiliser. La valeur par défaut correspond à owm.
Modèle rainette_previsions
1. lieu obligatoire, désigne le lieu sous une forme qui dépend du service.
2. sous_modele facultatif, détermine la présentation des données prévisionnelles sur plusieurs jours. La valeur par défaut correspond au sous-modèle fourni par Rainette, à savoir, previsions_24h
3. premier_jour facultatif, désigne le premier jour de prévision (0 par défaut pour le jour courant).
4. nombre_jours facultatif, indique le nombre de jours de prévision (tous les jours possibles par défaut) à afficher à partir du premier_jour.
5. periodicite facultatif, fournit la périodicité des données de 1h à 24h pour les prévisions (la valeur par défaut dépend du service)
6. service facultatif, désigne le service à utiliser. La valeur par défaut correspond à owm.

Un modèle erreur permet d’afficher un problème de chargement des données mais cela reste transparent pour l’utilisateur. Les tableaux précédents permettent de facilement migrer de la v1 à la v3 pour ceux qui n’ont pas définis de sous-modèles propres.

Les sous-modèles

Les sous-modèles ont été complètement revus même si leur nom a été conservé ainsi que la fonctionnalité de base. Un sous-modèle de prévisions au format tabulaire a aussi été ajouté.

Un bloc de crédits a été inséré systématiquement pour chaque sous-modèle et chaque service. Il est important de respecter ces termes si vous devez définir vos propres sous-modèles.

Les filtres utilisés dans les sous-modèles ont été renommés et les paramètres d’utilisation ont parfois changé. Cela rend donc les modèles v3 incompatibles avec les modèles v1. Néanmoins, si vous utilisez les sous-modèles Rainette de base vous ne verrez pas de différence. Par contre, si vous avez défini vos propres sous-modèles, il est très facile de les adapter en consultant le tableau de correspondance des fonctions de l’API Rainette au paragraphe suivant et en regardant le code des sous-modèles v3 de Rainette.

L’API fonctionnelle

L’API fonctionnelle a évoluée entre la v1 et la v3. Pour que vous puissiez facilement adapter vos propres modèles voici le tableau de correspondance :

Filtre v1Filtre v3Utilisation
rainette_icone_meteo rainette_afficher_icone Affiche l’icone météo correspondant au résumé
rainette_resume_meteo rainette_afficher_resume Affiche le texte du résumé dans la langue choisie
rainette_afficher_tendance rainette_afficher_tendance Affiche la tendance de pression
rainette_afficher_direction rainette_afficher_direction Affiche la direction du vent
rainette_afficher_unite rainette_afficher_unite Affiche l’unité d’une donnée
rainette_croaaaaa_previsions rainette_coasser Appelle le sous-modèle de prévisions, de conditions ou d’informations choisi.
rainette_croaaaaa_conditions
rainette_croaaaaa_infos

Pour comprendre l’utilisation exacte de ces fonctions il est conseillé de lire le code des sous-modèles de Rainette voire de consulter la documentation du code du plugin https://code.plugins.spip.net/rainette/.

La gestion des icônes

Les services actuels peuvent parfois fournir via l’API un icône adapté à chaque résumé météo natif. Dans ce cas, ce mode d’affichage est celui proposé par défaut par Rainette. En outre, certains services proposent un ensemble de thèmes d’icônes directement accessibles via l’API. Le choix d’un thème est disponible dans la page de configuration du service.

Depuis la version 3.5.0, Rainette propose aussi deux autres possibilités pour afficher un icône météo :

  • utiliser un icône d’un thème installé en local et compatible avec le service concerné.
  • utiliser un icône d’un thème weather.com® installé en local. Ceci est particulièrement intéressant car il existe de nombreux jeux d’icônes pour weather.com®.
    Ces thèmes locaux sont installés dans themes/nom_du_service/nom_du_theme.

Rainette embarque un seul thème par service qui en propose. Le plugin Thèmes pour Rainette fournit de nombreux thèmes supplémentaires et une interface de visualisation. Tous ces paramètres sont modifiables dans la configuration de Rainette.

Les crédits

Il est important de respecter les crédits de chaque service lors de l’affichage de vos propres modèles comme cela est fait pour les modèles fournis par Rainette. Pour cela Rainette fournit un modèle de crédits nommé inc-credits.html que vous devez inclure dans vos modèles de la façon suivantes :

#INCLURE{fond=modeles/inc-credits,
	classe_div=condtr,
	env}

Le paramètre classe_div prend des valeurs différentes suivant le modèle Rainette utilisé et permet d’affecter une classe CSS au bloc englobant les crédits.

La standardisation des données

Rainette compile les données issues des différents service dans un tableau qui possède pour chaque mode une structure standard afin d’utiliser les modèles d’affichage de la même manière quelque soit le service.

Chaque tableau est propre à un mode mais possède un agencement commun sous la forme d’un tableau associatif et arborescent dont le premier niveau est composé des deux index suivants :

  • [’donnees’] : tableau associatif des données météorologiques pour les modes « conditions », « infos » ou « previsions »..
  • [’extras’] : tableau associatif qui contient les crédits, la configuration statique et dynamique positionnée par l’utilisateur et le code d’erreur éventuel.

Pour les modes conditions et infos, l’ensemble des données météorologiques sont directement incluses sous l’index [’donnees’].

Pour le mode prévisions, la structure est plus complexe. Tout d’abord , le premier niveau sous l’index [’donnees’] correspond au jour de la prévision, soit de 0 pour le jour courant à n pour le dernier jour proposé (varie suivant le service). Pour chaque jour, la structure distingue :

  • les données commune du jour comme la date, les heures de lever et coucher du soleil, les températures minimale et maximale de la journée ;
  • les données heure incluses dans l’index [’heure’]. Ces données sont indexées numériquement de 0 à n suivant la périodicité choisie. Pour une périodicité de 24h il n’existe qu’un index [0], pour une périodicité de 12h il existe deux index [0] et [1] etc. Sous chacun de ces index on retrouve une liste standard de données météorologiques.

L’article de la Taverne https://blog.smellup.net/spip.php?a... décrit la structure de données exacte pour chaque mode.

Démo de Rainette

Une page de démo complète est disponible à l’adresse ?page=demo/rainette. N’hésitez pas à l’utiliser pour comparer les services sur votre lieu préféré (les clés d’enregistrement doivent avoir été saisies pour les services concernés).

Historique des modifications majeures

  • 4.1.10 : Ajout du service Open-Meteo et de la donnée « rafales de vent »
  • 4.1.8 : Robustifier le code pour PHP 8.2 et passage des caches en JSON
  • 4.1.2 : Version spip 4 et ajout du service Météo Concept
  • 3.2.1 : Déplacement du cache de tmp/cache vers local/cache-rainette/ afin d’éviter de supprimer les caches Rainette lors d’un vidage du cache SPIP. Cette fonction est utile pour limiter les appels aux services qui sont de plus en plus réglementés.
  • 3.3.2 : Ajout du traitement et de l’affichage des erreurs renvoyées par les services eux-mêmes.
  • 3.3.3 : Introduction d’un filtre sur l’envoi des requêtes afin de ne jamais dépasser les seuils autorisés par les services pour une unité de temps donnée.
  • 3.4.4 : Ajout du service Weatherbit.io et amélioration de la configuration des services .
  • 3.5.0 : Ajout de la gestion des thèmes d’icônes pour tous les services.
  • 3.6.0 : Passage à Cache Factory pour la gestion des caches Rainette.
  • 3.7.0 : Ajout du service WeatherStack censé remplacer APIXU mais qui sera finalement supprimé.
  • 3.8.0 : Nettoyage dans les services ; Weather®, APIXU sont désactivés, OpenWeatherMap devient le service par défaut et beaucoup de corrections dans les services (versions successives 3.8.z)
  • 3.8.7 : Ajout de la nébulosité utilisable dans les modèles
  • 3.9.0 : Suppression du service WeatherStack qui est un vrai foutage de gueule !
  • 3.10.0 : Ajout du service WeatherAPI
  • 3.10.1 : Ajout du city id pour identifier le lieu des services OpenWeather et Weatherbit.io
  • 3.11.0 : Mise en conformité avec la version multi-config de Cache Factory
  • 3.11.1 : Correction des limites de requêtes pour certains services
  • 3.12.0 : Passage de la configuration des services en YAML. Rainette nécessite maintenant le plugin YAML 2.0.11 au minimum.
  • 3.12.1 : Ajout d’un bouton pour recharger la configuration YAML des services si besoin et ajout du service AccuWeather.

Discussion

31 discussions

  • 3

    J’ai installé Reinette hier et le service APIXU (c’est celui qui donnait les valeurs les + réalistes)
    Est-ce normal si les données ne se mettent pas à jour tous les jours sur le site public ?
    Je dois me connecter et recalculer la page pour avoir des données à jour.
    Sue l’admin du service dans SPIP j’ai bien la date du jour :
    Dernier appel 2019-03-14 17:07:41
    Compteur mois 9 / 5000

    alors que sur le site public j’ai les données d’hier.

    donc cela semble venir du cache de la page ?

    J’ai installé le modèle comme ceci sur la page d’accueil du site : [(#MODELE{rainette_conditions,lieu=ville FR,service=apixu,sous_modele=conditions_tempsreel})]

    Merci

    • Hello,

      Je me suis demandé si j’avais pas fait une erreur quand j’ai greffé Cache Factory à Rainette. Mais a priori en regardant le code je passe bien la bonne valeur de conservation du cache. Et d’ailleurs tu constates bien que le cache est mis à jour d’après le compteur et la date de dernier appel.
      Pour mémoire, avec APIXU les conditions sont mises à jour toutes les 3 heures et les prévisions toutes les 4 heures ce qui a l’air de correspondre à ton compteur.

      Après ça c’est le cache de Rainette. La page elle utilise un cache propre pour s’afficher qui est lui géré par SPIP. Il faudrait vérifier si tu as un #CACHE avec une valeur donnée sur ta page qui indique justement la durée du cache.

      Comment as tu inséré le modèle dans ta page ? Dans le code de sommaire.html ? On peut voir ça ?

    • Oui c’est ça dans sommaire.html
      Le site est pas récent donc il y a peut-être des vieux trucs qui interfèrent.
      D’ailleurs en testant cette histoire de cache je viens de voir une erreur SQL sur la table documents
      https://www.roscoff-nautique.com

    • (je reprends ma réponse postée hier, il semble y avoir des problèmes d’envoi sur contrib)

      Oui c’est bien ça dans sommaire.html. Le site n’est pas récent donc il y a peut-être des interférences.
      roscoff-nautique.com
      (d’ailleurs je viens de voir en essayant de debugger cette histoire de cache que j’avais des erreurs sql sur un appel à la table documents.)

    Répondre à ce message

  • 9

    bjr eric
    je viens de mettre rainette v3 dans mon site
    je voudrais simplement les conditions de la journée en temps réél.dans ce site.(avec weather.com)
    pourrais tu m’aider stp car je galère depuis plusieurs jours ?
    j’ai créé des articles pour plusieurs villes, pour Dijon, par ex mais je ne sais pas quelle formule glisser dans l’article. je sais mettre le code de la ville
    FAUT IL AGIR DANS LE PLUGIN AUSSI ?
    si oui merci de m’expliquer en détail et simplement que faire ?
    J’ai spip 3.2.1 et le plugin est activé.
    merci pour ton aide (un sénior qui s’accroche !)

    • La solution a été donnée sur IRC :

      <rainette_conditions
      |lieu=FRXX0036
      |sous_modele=conditions_tempsreel
      |service=weather>
    • Eric, je suis déjà allé plusieurs fois sur cette page de configuration quand je clique sur les outils puis sur weatherbit j’ai enregistrement mais je ne peux rien écrire sur cette page donc je ne peux pas coller ma clé
      voici la copie :
      Weather Underground
      Enregistrement
      input, inscription, explication=#GETexplication, label=<:rainette:label_cle :>, obligatoire=oui, size=#ENV_configuration/enregistrement/taille_cle, maxlength=#ENV_configuration/enregistrement/taille_cle

    • Tu t’es trompé de fil de discussion pour répondre. C’est pas grave je continue donc ici.

      Je ne comprends pas de quoi tu parles et à quoi correspond le code que tu as copié dans ton message et qui est illisible. C’est pas comme ça qu’on va avancer.
      Moi je te parle de cette page de configuration :

    • Éric je m’excuse mais c’est ce que je vois en faisant la manipulation.
      En fait je vois le codage du tableau d’enregistrement, je ne vois pas ce tableau qui bien sûr me paraît facile à remplir.
      Et là je ne comprends pas puisque le plugin est bien installé.
      Si tu en as encore le courage peux tu m’expliquer ?
      Merci Éric !!!

    • Ce n’est pas un problème de courage mais je ne comprends pas où tu es dans ton site et ce que tu fais. Aller dans la page que je te dis est la seule solution mais si tu n’y arrives pas je ne peux rien à distance.

      Si tu veux envoie moi un message privé avec des coordonnées admin pour rentrer dans ton site ert aussi la clé d’enregistrement. Sinon je ne pourrais rien de plus.

    • merci eric
      mais je me suis tourné vers weather qui ne me demande aucun enregistrement. même si tout n’est pas ok pour l’affichage des icones dans les coditions
      celà fonctionne bien pour les prévisions, celà dépend des stations météo il me semble. je n’ai pas gfait d’erreur pour aller sur la page d’enregistrement pour weatherbit, ma page d’enregistrement s’affiche comme celà :

      Configuration du plugin Rainette
      weather.com®
      Enregistrement

      Ce service ne nécessite aucune clé d’inscription pour être utilisé.

      Affichages des données
      radio, unite, datas=#ARRAYm, <:rainette:label_unite_metrique :>, s, <:rainette:label_unite_standard :>, explication=<:rainette:explication_configurer_unite :>, label=<:rainette:label_unite :>, radio, theme_local, datas=#ENV_themes/locaux, explication=<:rainette:explication_configurer_theme :>, label=<:rainette:label_theme :>,
      Offres & conditions d’utilisation
      Ce service historique ne propose plus qu’une seule offre gratuite dont la pérennité n’est plus assurée étant donné que le service Weather Underground a remplacé l’API de weather.com®. Cette offre n’impose aucune limitation du nombre de requêtes.

      Dernier appel 2019-02-03 09:17:42Crédits
      Ce service fournit des données météorologiques pour une utilisation personnelle. Il est demandé de toujours créditer le service avec un lien vers le site web si possible agrémenté du logo du service.

      Les modèles d’affichage fournis par Rainette créditent toujours le service indépendamment de l’offre utilisée. Si vous créez vos propres modèles veillez absolument à respecter les règles d’usage de l’offre de service choisie ou plus simplement à créditer systématiquement le service.

      le pb est il dû à cet erreur d’affichage qui est apparu dans mon espace privé depuis mon passage à spip 3 2 1 ??? :

      Erreur dans les plugins : /homepages/14/d310346748/htdocs/www/utan_bourgogne/plugins-dist/organiseur/organiseur_pipelines.php, /homepages/14/d310346748/htdocs/www/utan_bourgogne/plugins-dist/organiseur/organiseur_autoriser.php

      Je ne sais pas ce que veut dire ce message et comment le corriger, j’ai déjà demandé de l’aide et n’ai pas trouvé de solution !
      merci

    • Hello,

      Ce type d’erreur est souvent temporaire le temps de vider les caches et de réinitialiser les plulgins en allant sur la page d’admin. Maintenant la page de configuration que je vois est celle de Weather pas de Weatherbit.

      Quand tu veux nous montrer une page il serait mieux d’avoir une image que le contenu texte qui est illisible. Maintenant, tant que nous ne pourrons pas voir le site lui-même ils nous sera difficile de t’aider.

      Bon courage.

    • comment te joindre en privé stp ?
      je clique sur ton prénom et ne vois pas la possibilité de te joindre personellement

    • Mon adresse mail est eric at smellup.net

    Répondre à ce message

  • 4

    bjr eric

    ayant utilisé weather pour ma météo de Dijon je désire passer à weatherbit par contre je ne sais pas du tout mettre ma clé que j’ai obtenue de weatherbit
    de plus quelle est la formule que je dois mettre dans un article pour afficher d’abord les conditions météo de Dijon par ex puis les prévisions pour Dijon
    un grand merci à toi pour des explications plus compréhensibles et détaillées pour moi quei ne connait pas le codage

    • Bonjour,
      tu rentres ta clé dans le paramétrage du plugin : voir image capture 1
      Après, comme je suis sous ZPIP et que j’utilise composition, j’ai créé une composition qui comprend les noisettes Conditions météorologiques et Prévisions météorologiques 24h (avec un nombre de jours affichés à 10).

      Le paramétrage weatherbit pour Dijon me semble être Dijon,27 (sans garantie).

      J’ai ensuite créé un article qui utilise cette composition et j’obtiens ça :
      https://www.cpalb.fr/la-meteo-du-la...

      J’ai testé weatherbit et je suis revenu à Weather car les prévisions étaient parfois un peu fantaisistes :D (15° C d’écart).

      Le code ville pour Dijon me semble être Dijon,27 (sans garantie)

      Bonne journée

    • Hello,

      La documentation est quand même explicite pour le nommage des lieux : le tableau indique que Weatherbit accepte le format « ville,pays », coordonnées géographiques et adresse IP. Donc si tu veux Dijon, tu peux saisir le format « Dijon, France ».

      Pour appeler le modèle dans l’article je t’ai déjà donné le code à inclure pour Weather. Pour Weatherbit il faut juste changer le service et le nom du lieu ainsi :

      <rainette_conditions
      |lieu=Dijon,France
      |sous_modele=conditions_tempsreel
      |service=weatherbit> 

      Pour les prévisions l’appel est similaire. Pour les prévisions des 5 prochains jours sans répéter le jour courant ça donne :

      <rainette_previsions
      |lieu=Dijon,France
      |sous_modele=previsions_24h
      |premier_jour=1
      |nombre_jours=5
      |service=weatherbit>

      Voilà voilà

    • bjr eric je te remercie beaucoup pour ta réponse claire

      mais peux tu me dire où et comment dois je mettre ma clé recue de weatherbit ?
      ce sera tout j’espère !
      MERCI encore POUR TA REPONSE

    • Edouard te l’a expliqué en réponse à ton premier message. Il faut aller dans la configuration du plugin qui est accessible à partir de la page d’administration des plugins (l’icone des outils). Une fois sur la page de configuration tu choisis le service Weatherbit et tu saisis ta clé dans l’input idoine.

    Répondre à ce message

  • 17

    Bonjour,
    Depuis la mise à jour de Rainette hier 01/02/2019, les icônes supposées afficher le temps (soleil, nuages, etc.) n’apparaissent plus, Seul un « p » s’affiche au-dessus de la température. je suis sous Escal V4, Spip 3.2.1., PHP 7
    Merci de votre aide.
    Yann

    • Hello,

      Peux-tu me donner la version de Rainette utilisée stp ? J’ai aussi remarqué hier un dysfonctionnement sur les icones pour d’autres services météo. Je vais regarder cela ce week-end.

    • Hello,
      La version de Rainette est la 3.5.7.

      Yann

    • Hello
      Je confirme le souci mais à noter que c’est sur des sites avec Escal qui utilise 3 modèles du plugin légèrement modifiés dont conditions_tempsreel.html mais cette copie contient bien
      <div class="icone">[(#ENV{donnees/icone}|rainette_afficher_icone{grand})]</div>
      comme dans l’original.

    • Hello,

      Je viens de passer en debug pour analyser le problème. Le souci est majeur car c’est Weather.com qui ne renvoie plus la clé correspondant à l’icone et au résumé. Cette clé est une entier de 0 à 47. Donc soit c’est un souci temporaire avec Weather soit c’est définitif et ça va remettre en cause l’utilisation du service.

      Je teste les autres services et je vous dis.

    • Bon alors.

      J’ai testé tous les autres services. En PHP 7.1 j’avais une notice sur une conversion string/array pas autorisée. J’en ai profité pour corriger ça pour l’ensemble des services. En outre, pour Weather j’ai robustifié le calcul de l’icone pour toujours avoir un icone à afficher même si c’est l’icone N/A. Le problème c’est que tout cela n’a rien à voir avec votre problème sous Escal.

      Ceci étant, je confirme que Weather pour l’instant ne renvoie plus le code météo dans les conditions mais qu’il le renvoie dans les prévisions. Pour les autres services tout fonctionne.

      Donc soit vous attendez un retour de Weather (mais je ne suis pas optimiste) soit vous changez de service pour prendre un APIXU ou un Weatherbit par exemple.

    • Pas de souci particulier sous Escal. Je signalais juste que l’utilisation de Rainette se faisait dans ce cadre là au cas où le souci n’existait pas ailleurs.
      Un grand merci pour ton investigation et pour tes conseils.

    • Ok, je comprends qu’il s’agit d’un problème côté Weather. Cela dit ça ne m’explique pas pourquoi l’utilisation d’un autre service avec clé correctement enregistrée (OpenWeatherMap) ne fonctionne pas. Cache rainette vidé, cache SPIP vidé, quoi d’autre ? Essai avec différents navigateurs même résultat. Ma config Rainette revient systématiquement sur Weather.com.
      Yann

    • Hello,

      Chaque service doit être configuré dans le formulaire de Rainette spécifique pour ce service. Et tous les services alternatifs à Weather nécessite une clé d’enregistrement même pour une utilisation gratuite. Si pour toi tout est ok de ce coté là c’est plus embêtant car je viens de tester tous les services et tous fonctionnent.

      Peux-tu me donner le lieu pour lequel tu demandes la météo stp ? Quand tu dis que ça ne fonctionne pas quel est l’affichage.

      Après il y a une autre possibilité. Le cache de Rainette est dans local/cache-rainette/ et pas dans tmp/cache. Es-tu sur d’avoir bien vidé ce cache là ?

    • Dans la config de Rainette j’ai entré la clé pour OpenWeatherMap et validé. Cela m’a répondu que ma configuration était enregistrée. Or lorsque je reviens sur la configuration de rainette et même après avoir vidé les caches SPIP et local/cache-rainette/, c’est weather.com qui réapparaît en service météo. Dans la config Escal pour Rainette, Je demande la météo pour Orléans soit le code FRXX0074.

    • Hello,

      Ce n’est pas parce qu’on saisit une configuration d’un service que ce service va être utilisé par défaut. Les modèles Rainette ont en argument le service à utiliser et si ce service n’est pas fourni alors le choix par défaut est Weather. C’est surement ce qui se passe chez toi. La solution c’est de passer le service au modèle que tu affiches.

      En outre, si tu utilises OWM l’ID Weather FRXX0074 n’est pas utilisable. Il faut utiliser le lieu écrit par exemple comme : Orleans,France. Sur Contrib tu trouves un tableau qui indique quel format de lieu est possible pour chaque service.

    • Le souci c’est que Escal ne me propose pas d’autre choix que d’entrer le code FRXX0074. Il ne permet pas plus de définir un autre service. Voir la pièce jointe.
      Je ne donc pas comment indiquer que je veux utiliser OWM.

      Yann

    • Yep,

      C’est ce que je redoutais un peu. Par contre, le modèle Escal est une recopie presque identique de celui de Rainette et permet bien de préciser le service. Donc c’est pas un gros souci à corriger.

      Pour le nom du lieu c’est une chaine de caractères, donc que tu mettes FRXX0074 ou Orleans,France ça ne changerais rien. Le souci c’est que Weather n’accepte que son ID et qu’il faut donc pouvoir choisir le service avant tout. Il faudrait en parler à Jean-Christophe, ça ne doit être compliqué de rajouter cette variante de configuration.

    • Jean-Christophe est normalement dans la boucle puisqu’il a répondu précédemment. Sinon je lui en parlerai sur le forum Escal car oui on devrait pouvoir choisir le service.

      Après mise à jour de rainette dernière version 3.5.9. les icônes sont réapparues et j’ai bien celle du brouillard aujourd’hui à Orléans. :-)

      Merci pour tout.

      Yann

    • Hello
      Bon va falloir que je me penche sur la question mais je m’y perds un peu dans les modeles et sous-modeles.

    • C’est tout bête. Toi tu dois appeler quelque part le modèle rainette_conditions. Si tu regardes plus haut dans l’article tu vois la liste de ces paramètres : le lieu, le sous-modèle et le service. Aujourd’hui je suppose que pour Escal tu as soit modifié les sous-modèles voire tu les as renommés. Donc tu dois faire quelque part un appel à rainette_conditions en précisant uniquement le lieu et le sous-modèle. Il suffit d’y rajouter le service et de configurer ce service dans le formulaire Escal idoine.

      Tu n’as rien à faire dans les sous-modèles.

      Je vois le code suivant dans ton squelette :

      		[(#PLUGIN{rainette, version}|version_compare{3, >=}|oui) 
      			#MODELE{rainette_conditions, lieu=#CONFIG{escal/config/ville}, sous_modele=escal_conditions_tempsreel}  
      		]    

      Il suffit de le remplacer par :

      		[(#PLUGIN{rainette, version}|version_compare{3, >=}|oui) 
      			#MODELE{rainette_conditions, lieu=#CONFIG{escal/config/ville}, sous_modele=escal_conditions_tempsreel, service=#CONFIG{escal/config/service}}  
      		]    

      et bien sur de rajouter la configuration.

    • Oui j’étais bien parti sur cette piste.
      Je viens donc de livrer un correctif d’Escal pour pouvoir choisir le service.

    • Un grand merci à vous 2.
      Yann

    Répondre à ce message

  • 3

    Bonjour,

    J’utilise wunderground avec une « free api key ». A priori, wunderground ne fournit plus de free api key : « To improve our services and enhance our relationship with our users, we will no longer provide free weather API keys as part of our program. »

    De plus, j’ai eu la surprise de voir que la météo proposée était celle du 4 janvier (on est le 27 mai). Il semble que le code weather.com que j’utilisais FRNC0969 n’est plus reconnu. En passant par la latitude/longitude, ça fonctionne.
    A confirmer…

    • Hello,

      Je viens de faire des essais et un tour sur le site de Wunderground. Nous avons bien à faire à des voyous tout permis (an IBM company !).

      Ton id fonctionne toujours si je l’utilise sur le site de WU directement (ça correspond à la ville Wailly). Non c’est juste qu’ils ont choisi de couper l’API gratuite sans la remplacer par quoi que ce soit. Sur les forums personne n’obtient de réponse c’est juste scandaleux. WU parle de package de données dans le cloud mais je ne vois rien sur le site. Le plus drôle c’est que les comptes user sont toujours disponibles et affiche encore les clés !

      A part gerber je pense que le mieux est d’essayer un autre service. Dès que j’ai le temps, je ferais un update du plugin et de la pub à WU.

    • Pas tout à fait : quand je mets dans rainette v3, la latitude et la longitude de Wailly et non plus une ville ou un code FRxxnnn, l’API WU fonctionne. Tu peux vérifier sur wailly.xyz

    • Ah ben cool. C’est bien étrange mais comme WU ne communique pas personne ne sait très bien ce que va devenir ce service. J’ai essayé avec Weatherbit.io ça fonctionne parfaitement. En tout cas il reste pas mal de services alternatifs dans Rainette pour parer à toute éventualité. Tiens moi au courant si ça tombe en rade.

    Répondre à ce message

  • 16

    Bonjour,
    j’ai voulu tester le service Weatherbit. J’ai donc procédé à mon inscription et j’ai bien reçu ma clé API (Your Weatherbit API Key has been provisioned !). J’ai ensuite paramétré le service et les noisettes (J’utilise Zpip et tous mes plugins et spip sont en dernière version).

    Quand je teste, j’ai un message d’erreur : API key not valid, or not yet activated.

    Si je retourne dans le paramétrage du service, le clé n’apparait pas, le champ est vide. Est-ce que cela est normal ?

    La page : http://www.cpalb.fr/la-meteo-du-lac-du-bourget

    De bonnes fêtes de fin d’année à tous.
    ED

    • Salut ED,

      Ah voilà une bonne nouvelle, quelqu’un qui commence à tester les nouveaux services !

      Si le champ est vide c’est normal que le service te retourne « invalid key ». Il faut que tu prennes ta clé et que tu la copies dans le champ de configuration de Weatherbit et que tu fasses enregistrer sinon Rainette ne peut pas savoir que tu as une clé.

      Ensuite, je vois que tu utilises le code weather FRRA2359. Il va falloir utiliser un autre moyen de localiser ton lieu car ce code n’est pas compatible avec Weatherbit. Comme tu peux le voir plus haut dans l’article, tu peux utiliser les coordonnées géographiques 45.7,5.7 ou un nom de ville comme Aix-les-Bains,France.

      Dis-moi ensuite si ça fonctionne.

    • Bonjour et merci pour la réponse.
      Pour le lieu, j’ai corrigé par Aix-les-Bains,France.

      Quand à la clé, je l’avais enregistré mais on dirait qu’elle n’est pas mémorisée/utilisée.

      Je viens de la rentrer à nouveau et quand je reviens sur la page de paramétrage, elle n’apparait à nouveau plus.

    • Hello,

      Je ne comprends pas. Là ta clé est bien affichée. Peux-tu m’envoyer sur mon mail ta clé afin que je fasse un test chez moi stp ?

      Sinon, quelle version de Rainette as-tu ? Peux-tu faire une mise à jour si nécessaire ?

      Merci d’avance.

    • Hello,

      Il y a bien un bug dans le processus de configuration que j’ai introduit en simplifiant le code de celle-ci. Je suis sur la correction, je te préviens dès que c’est bon.

    • Re,

      Voilà le bug est corrigé. Tu devrais pouvoir mettre à jour Rainette avec la version 3.4.5 dans quelques minutes et essayer. Si tu peux me tenir au courant ensuite ça serait cool.
      Merci d’avance.

    • Je viens de faire la mise à jour vers la dernière version (Rainette 3.4.5 - stable) et la clé reste maintenant mémorisée. J’ai fait des tests en vidant les caches navigateurs et spip et de ce côté, c’est tout bon :)

      Par contre sur la page météo que j’ai mis en place, j’ai toujours l’erreur « API key not valid, or not yet activated. »

      Du coup j’ai fait d’autres tests

      J’ai vérifié le paramétrage de la noisette « Conditions météorologiques » et ça me parait correct.
      L’affichage donne le code d’erreur « API key not valid, or not yet activated. »

      J’ai modifié le paramétrage de la noisette « Prévisions météorologiques 24h » avec les mêmes réglages et pour cette noisette, l’affichage est OK.

      Voilà voilà

      Bonne journée

    • Humm,

      Je pense que c’est un problème de cache. Peux-tu aller dans local/cache-rainette/weatherbit/ et supprimer les fichiers qui s’y trouvent. Ensuite tu vides ton cache spip et tu réaffiches ta page météo. Je pense que ça devrait corriger car je ne vois pas d’erreur dans la noisette conditions.

    • Effectivement la clé ne restait pas... maintenant cela fonctionne aussi avec Weather Underground.
      J’ai voulu tester les différentes icônes, mais sans succès, même avec le cache vidé elles restent les mêmes... http://laccreteil.fr/spip.php?article102
      Bravo Éric !
      Michel

    • Hello Michel,

      Pour choisir un jeu d’icones il faut le faire dans la page de configuration de Weather Underground qui propose des thèmes différent. Mais une fois la configurée enregistrée, il faut vider le cache local/cache-rainette/wunderground pour utiliser le bon thème. Sinon il faut attendre que le cache soit échu.

    • Je fais un test à l’aveugle, car je n’ai pas vu les exemples des icônes : Comtemporary

    • C’est bon les icônes viennent de changer...
      Merci.
      Michel

    • Cool, si tu veux voir les thèmes va sur cette page https://www.wunderground.com/weathe.... Le nom n’est pas donné mais la liste est dans le même ordre a priori.

    • Bonsoir,
      je viens de retester, sans rien toucher d’ailleurs ni vider le cache et tout fonctionne. L’informatique, c’est vraiment magique :D

      Dans tous les cas, merci pour ce travail, c’est un plugin sympa.

      Très bonne soirée et merci encore.
      ED

    • Oui ED,

      C’est normal, le cache a une durée limitée (de 1 à 6 heures suivant le type et le service). Ainsi, si on ne vide pas le cache manuellement (ce qui n’est pas recommandé sauf en cas de problème), il va quand même échoir à un moment et donc être recalculer complètement. C’est donc pour ça que tu viens de voir tes modifications.

    • Bonjour,
      je viens de tester sur deux jours le service Weatherbit et je trouve que pour mon secteur, les prévisions sont un peu fantaisistes. Ce matin d’après les prévisions d’hier, il devait faire -11 et actuellement il fait 2° C.
      Je ne sais pas comment ces différents services collectent les données (Stations communes ?) mais les données Weather.com sont plus conformes pour le secteur d’Aix les bains. Ailleurs je ne sais pas mais dans tous les cas, ça n’enlève rien au plugin que je trouve vraiment pratique et simple à mettre en œuvre.

      Très beau travail.

      Bonne journée et bonnes fêtes de fin d’année.

    • Hello ED,

      Oui c’est bien pour cela que j’ai multiplié les services afin que chacun puisse trouver la meilleure option en fonction de son besoin. Après je pense que certains sont surement meilleurs que d’autres car ils couvrent mieux certaines zones géographiques. Je n’ai pas essayé mais Weather Underground qui est l’API officielle maintenant de The Weather Channel (ie weather.com) et APIXU qui est l’API gratuite de World Weather Online doivent avoir une meilleure couverture voire de meilleurs modèles pour les prévisions.
      L’un des meilleurs est surement AccuWeather mais il n’offre aucune API gratuite.

      Mais en fait avant de choisir je pense qu’il faut essayer sur le site directement quand celui-ci propose une météo et essayer avec sa localisation.

    Répondre à ce message

  • 3

    Noisette météo de Sarka-SPIP 3.4.8 [107132] utilisant Rainette 3.3.0 - stable sur SPIP 3.2.0 [23778]

    Après la mise à jour de ce matin => "Rainette 3.3.0 - stable" :

    -  Affichage de la page des prévision => plus aucune info météo et uniquement le message suivant :
    Fatal error : Uncaught Error : Call to undefined function normaliser_configuration_utilisateur() in /home/laccrete/www/plugins/auto/rainette/v3.3.0/inc/charger_meteo.php:77 Stack trace : #0 /home/laccrete/www/plugins/auto/rainette/v3.3.0/rainette_fonctions.php(58) : inc_charger_meteo_dist(’FRXX0284’, ’infos’, 0, ’weather’) #1 /home/laccrete/www/tmp/cache/skel/html_dc8da91f5f74b4b6af48ad73412b8e02.php(21) : calculer_infos(’FRXX0284’, ’ville’, ’weather’) #2 /home/laccrete/www/ecrire/public/parametrer.php(128) : html_dc8da91f5f74b4b6af48ad73412b8e02(Array, Array) #3 /home/laccrete/www/ecrire/public/assembler.php(314) : public_parametrer_dist(’head/meteo’, Array, ’7f537284d6f6ffb...’, NULL) #4 /home/laccrete/www/ecrire/public/assembler.php(278) : public_produire_page_dist(’head/meteo’, Array, 1, ’7f537284d6f6ffb...’, Array, Array, 0, NULL) #5 /home/laccrete/www/ecrire/public/assembler.php(602) : inclure_page(’head/meteo’, Array, NULL) #6 /home/laccrete/www/ecrire/inc/utils.php(3224) : evaluer_fond(’head/meteo’, Array, NULL) #7 /home/la in /home/laccrete/www/plugins/auto/rainette/v3.3.0/inc/charger_meteo.php on line 77

    -  Pour ce qui concerne la noisette dans la colonne extra de droite, elle affiche aussi :
    Fatal error : Uncaught Error : Call to undefined function normaliser_configuration_utilisateur() in /home/laccrete/www/plugins/auto/rainette/v3.3.0/inc/charger_meteo.php:77 Stack trace : #0 /home/laccrete/www/plugins/auto/rainette/v3.3.0/rainette_fonctions.php(58) : inc_charger_meteo_dist(’FRXX0284’, ’infos’, 0, ’weather’) #1 /home/laccrete/www/tmp/cache/skel/html_1507783327bf424ec7d8cd39b416d91f.php(28) : calculer_infos(’FRXX0284’, ’ville’, ’weather’) #2 /home/laccrete/www/ecrire/public/parametrer.php(128) : html_1507783327bf424ec7d8cd39b416d91f(Array, Array) #3 /home/laccrete/www/ecrire/public/assembler.php(314) : public_parametrer_dist(’noisettes/inc_r...’, Array, ’6a97219a70fd582...’, NULL) #4 /home/laccrete/www/ecrire/public/assembler.php(278) : public_produire_page_dist(’noisettes/inc_r...’, Array, 1, ’6a97219a70fd582...’, Array, Array, 0, NULL) #5 /home/laccrete/www/ecrire/public/assembler.php(602) : inclure_page(’noisettes/inc_r...’, Array, NULL) #6 /home/laccrete/www/ecrire/inc/utils.php(3224) : evaluer_fond(’noisettes/inc in /home/laccrete/www/plugins/auto/rainette/v3.3.0/inc/charger_meteo.phpon line 77

    Donc, pas de « météo au quotidien » !

    Pour info.
    je vais devoir désactiver le plugin rapidement pour éviter ce type d’affichage sur la page d’accueil.
    À bientôt.

    • Sarka-SPIP n’est pas compatible avec Rainette v3 c’est le seul souci que je vois.

    • La page des prévisions était fonctionnelle avant cette dernière mise à jour.
      Bonne journée.
      Michel

    • Hello,

      Effectivement il manquait un include mais qui ne provoquait pas d’erreur systématique. J’ai envoyé une version 3.3.1. Il faudrait que tu mettes à jour Rainette avec cette nouvelle version et que tu essaies. Je suis quand même dubitatif car le libellé de l’erreur ne correspond pas vraiment à ma correction.

      En plus, le fait que cela fonctionne avec Sarka-SPIP 3.4 est un mystère franchement.

      Correction, il y avait encore un include manquant, la version 3.3.2 est en construction et sera disponible vers 22h15.

    Répondre à ce message

  • Merci pour cette page et bravo pour le boulot réalisé.

    Répondre à ce message

  • Merci pour cette page et bravo pour le boulot réalisé.

    Répondre à ce message

  • 2

    Pas de souci, je n’y manquerai pas.

    Et donc cette version 3.2.0 sera compatible avec quelles versions de spip ?

    • Comme pour la 3.1.1 : SPIP 3.1 et SPIP 3.2. Je ne vois pas le besoin de backporter plus. J’ai une fonction native de SPIP qui nécessite SPIP 3.1.3 minimum. C’est la fonction table_valeur() qui est utilisée dans les modèles pour extraire correctement les données pour les afficher. J’ai du modifier cette fonction pour distinguer les données indisponible temporairement ou non fournie.

      Je sais pas si c’est utile de dupliquer cette fonction dans Rainette pour assurer la compatibilité avec SPIP 3.0. A voir.

    • Ce qui serait cool, c’est d’être au moins compatible avec toutes les versions de 3.1 mais bon perso, je m’en fous, j’ai adapté mes modèles pour qu’ils testent la version de rainette et ils vont chercher les sous-modèles en fonction de cette version.

    Répondre à ce message

Ajouter un commentaire

Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :

  • Désactiver tous les plugins que vous ne voulez pas tester afin de vous assurer que le bug vient bien du plugin X. Cela vous évitera d’écrire sur le forum d’une contribution qui n’est finalement pas en cause.
  • Cherchez et notez les numéros de version de tout ce qui est en place au moment du test :
    • version de SPIP, en bas de la partie privée
    • version du plugin testé et des éventuels plugins nécessités
    • version de PHP (exec=info en partie privée)
    • version de MySQL / SQLite
  • Si votre problème concerne la partie publique de votre site, donnez une URL où le bug est visible, pour que les gens puissent voir par eux-mêmes.
  • En cas de page blanche, merci d’activer l’affichage des erreurs, et d’indiquer ensuite l’erreur qui apparaît.

Merci d’avance pour les personnes qui vous aideront !

Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.

Qui êtes-vous ?
[Se connecter]

Pour afficher votre trombine avec votre message, enregistrez-la d’abord sur gravatar.com (gratuit et indolore) et n’oubliez pas d’indiquer votre adresse e-mail ici.

Ajoutez votre commentaire ici

Ce champ accepte les raccourcis SPIP {{gras}} {italique} -*liste [texte->url] <quote> <code> et le code HTML <q> <del> <ins>. Pour créer des paragraphes, laissez simplement des lignes vides.

Ajouter un document

Suivre les commentaires : RSS 2.0 | Atom