Module UltimateMeteo FR

From Dolibarr ERP CRM Wiki
Jump to navigation Jump to search


Module UltimateMeteo

Présentation

Le module UltimateMeteo est une extension pour Dolibarr ERP/CRM éditée par Atoo-Net.

Il affiche la météo en temps réel directement dans les fiches de vos tiers, fournisseurs, contacts et adhérents, en se basant sur l'adresse enregistrée dans Dolibarr. Il utilise des APIs gratuites et ne nécessite aucune clé API.

Propriété Valeur
Auteur Philippe Grand — Atoo-Net
Version 24.0.2
Licence GNU GPL v3+
Dolibarr minimum v24.0
PHP minimum v8.0

Pourquoi utiliser UltimateMeteo ?

Les conditions météorologiques ont un impact direct sur de nombreuses activités professionnelles. UltimateMeteo intègre les informations météo là où vous en avez besoin — directement dans vos fiches Dolibarr — pour prendre de meilleures décisions sans changer d'outil.

Cas d'utilisation

BTP & Métiers du bâtiment

Avant de planifier une intervention extérieure (toiture, peinture, fondations), consultez les prévisions météo à l'adresse de votre client directement depuis sa fiche. Évitez d'envoyer une équipe sur un chantier sous la pluie ou le gel.

Agriculture & Espaces verts

Lors de la planification de traitements, de semis ou de tonte, vérifiez les conditions météo chez votre client. Un simple coup d'œil sur l'onglet Météo vous indique si la semaine est favorable — sans quitter Dolibarr.

Transport & Logistique

Lors de la préparation d'une livraison ou d'un enlèvement, vérifiez la vitesse du vent et les conditions météo à destination. Cela permet d'anticiper les retards, d'adapter les itinéraires ou de prévenir le client à l'avance.

Événementiel & Services extérieurs

Pour les traiteurs, organisateurs d'événements ou sociétés de location, connaître les prévisions à l'adresse du lieu permet de confirmer ou d'ajuster la logistique sur site (chapiteaux, chauffage, équipement du personnel).

Forces de vente terrain

Les commerciaux en déplacement peuvent consulter la météo à chaque étape avant de partir. Combiné à la gestion de l'agenda dans Dolibarr, cela offre une planification intégrant les aléas climatiques.

Service client & SAV

Lorsqu'un client signale un problème (infiltration d'eau, panne d'équipement, coupure de courant), visualiser instantanément la météo récente à son adresse aide à qualifier l'incident et à prioriser l'intervention.

Installation

  1. Télécharger le module depuis DoliStore
  2. Décompresser et placer le dossier ultimatemeteo/ dans htdocs/custom/
  3. Aller dans Accueil → Configuration → Modules/Applications
  4. Localiser UltimateMeteo dans la section AtooNet
  5. Activer le module en cliquant sur le bouton de la colonne Activé
Activation du module UltimateMeteo dans la section AtooNet

Configuration

Configuration des droits

Après activation, configurer les droits d'accès par groupe d'utilisateurs dans Accueil → Configuration → Utilisateurs & Groupes → Groupes :

Permission Description
Lire les données météo Permet de voir les onglets météo sur les fiches
Créer / Modifier Permet de déclencher une actualisation des données
Supprimer Permet de supprimer des enregistrements météo

Paramètres du module

Depuis la version 24.0.1, l'onglet Paramètres de la page de configuration du module (Accueil → Configuration → Modules/Applications → UltimateMeteo → icône engrenage) regroupe l'ensemble des réglages. Depuis la version 24.0.2, ils sont répartis en cinq sections.

Les valeurs par défaut sont posées automatiquement à l'activation du module. Elles sont conservées si le module est désactivé puis réactivé.

Objets concernés
Paramètre Valeurs Défaut Description
Objets sur lesquels afficher la météo Tiers, Contact, Adhérent (choix multiple) Les trois Détermine les fiches Dolibarr qui reçoivent l'onglet Météo et, le cas échéant, la ligne de résumé sur la fiche.

Le choix Adhérent n'est proposé que si le module natif Adhérents est activé.

Remarque : la modification est prise en compte immédiatement, dès le rechargement de la fiche concernée. Il n'est pas nécessaire de désactiver puis réactiver UltimateMeteo. Décocher un objet masque son onglet et interdit l'accès direct à la page correspondante, mais ne supprime aucune donnée déjà enregistrée.

Affichage de la météo actuelle
Paramètre Valeurs Défaut Description
Unité de température Celsius / Fahrenheit Celsius Unité demandée à l'API Open-Meteo et affichée dans l'onglet Météo. Le changement s'applique à la météo actuelle et au tableau des prévisions.
Unité de vitesse du vent km/h, m/s, mph, nœuds km/h Idem pour la vitesse du vent. L'unité nœuds est utile pour les activités nautiques.
Afficher la météo sur la fiche Oui / Non Oui Ajoute une ligne de résumé météo directement sur la fiche des objets sélectionnés ci-dessus, en plus de l'onglet Météo. Chaque affichage de fiche déclenche un appel aux API externes, dans la limite du cache.
Seuil d'alerte vent 0 à 300 0 Au-delà de cette valeur, la vitesse du vent est mise en évidence en rouge, sur la fiche comme dans la colonne Vent maximal des prévisions. La valeur 0 désactive l'alerte.

Important : le seuil d'alerte est exprimé dans l'unité de vent sélectionnée. Si vous passez de km/h à mph, pensez à réajuster le seuil : aucune conversion automatique n'est effectuée.

Prévisions
Paramètre Valeurs Défaut Description
Afficher le tableau des prévisions Oui / Non Oui Affiche ou masque le tableau des prévisions sous la météo actuelle.
Nombre de jours de prévisions 1 à 16 5 Nombre de jours affichés. Open-Meteo accepte jusqu'à 16 jours, avec une fiabilité décroissante au-delà d'une semaine.
Colonnes supplémentaires des prévisions liste à choix multiples aucune Colonnes optionnelles ajoutées aux températures minimale et maximale.

Les colonnes optionnelles disponibles sont :

Colonne Donnée Open-Meteo Intérêt
Description météo weathercode Condition dominante de la journée, avec pictogramme
Précipitations precipitation_sum Cumul de pluie du jour, en mm
Vent maximal windspeed_10m_max Rafale maximale prévue ; suit le seuil d'alerte vent
Lever / coucher du soleil sunrise, sunset Amplitude horaire exploitable pour une intervention extérieure
Indice UV maximal uv_index_max Exposition solaire, utile pour la sécurité des équipes

Ces colonnes n'entraînent aucun appel supplémentaire : elles sont demandées dans la même requête à l'API Open-Meteo.

Carte
Paramètre Valeurs Défaut Description
Afficher la carte Oui / Non Oui Affiche la carte OpenStreetMap localisant le tiers. La désactiver évite le chargement de la librairie Leaflet depuis un CDN externe.
Niveau de zoom de la carte 1 à 19 12 1 correspond au monde entier, 19 au niveau de la rue.
Hauteur de la carte (px) 150 à 1200 500 Hauteur du bloc carte, en pixels.
Services externes et paramètres techniques
Paramètre Valeurs Défaut Description
Durée du cache (minutes) 1 à 1440 30 Durée de validité d'un relevé avant qu'un nouvel appel API ne soit effectué. Une valeur élevée réduit le nombre d'appels aux services externes.
Délai d'attente HTTP (secondes) 1 à 60 5 Délai maximal d'attente lors des appels aux API. Une valeur trop élevée ralentit l'affichage des fiches si un service est indisponible.
Email de contact technique email email de la société Transmis dans l'en-tête User-Agent des appels. La politique d'utilisation de Nominatim impose de pouvoir identifier l'exploitant. Si le champ est vide, l'email de la société configurée dans Dolibarr est utilisé.
URL du service de géocodage url https://nominatim.openstreetmap.org/search Service convertissant la ville du tiers en coordonnées GPS. Peut pointer vers une instance Nominatim auto-hébergée.
URL de l'API météo url https://api.open-meteo.com/v1/forecast Service fournissant les données météo. Peut pointer vers une instance Open-Meteo auto-hébergée.

Remarque : si l'un des deux champs URL est laissé vide, le module retombe automatiquement sur le service public correspondant.

Cache des données

Depuis la version 24.0.0, le module utilise un cache intelligent :

  • Les données météo sont stockées en base de données dans la table llx_ultimatemeteo_currentweather
  • Si un enregistrement existe pour un tiers depuis moins que la durée du cache configurée (30 minutes par défaut), les données sont mises à jour (UPDATE) au lieu de créer un nouvel enregistrement
  • Si aucun enregistrement récent n'existe, un nouveau est créé
  • Ce mécanisme évite l'accumulation excessive de lignes en base de données

Fuseau horaire

Les heures des prévisions sont exprimées dans le fuseau horaire du lieu géocodé (paramètre timezone=auto de l'API Open-Meteo). Un tiers situé à l'étranger affiche donc ses horaires locaux, et non ceux du serveur Dolibarr.

Utilisation

Onglet Meteo

Le module ajoute un onglet Météo sur chaque fiche tiers (clients, prospects, fournisseurs), si l'objet Tiers est coché dans le paramètre Objets sur lesquels afficher la météo.

En ouvrant cet onglet, Dolibarr :

  1. Récupère l'adresse (code postal + ville) enregistrée sur la fiche
  2. Géocode l'adresse via l'API OpenStreetMap Nominatim pour obtenir les coordonnées GPS
  3. Interroge l'API Open-Meteo pour récupérer la météo actuelle et les prévisions
  4. Affiche les résultats avec une carte interactive
Onglet Météo sur une fiche Tiers — météo actuelle, prévisions et carte

Les informations affichées sont :

Champ Description
Température Température actuelle, dans l'unité configurée (°C ou °F)
Vitesse du vent Vitesse du vent, dans l'unité configurée (km/h, m/s, mph ou nœuds). Mise en évidence en rouge si le seuil d'alerte est dépassé
Description météo Condition météorologique (Ciel clair, Couvert, Pluie, Neige, Orage…)
Date Date et heure de la dernière observation

Si l'option Afficher la météo sur la fiche est active, un résumé sur une ligne (pictogramme, condition, température et vent) est également ajouté sur la fiche elle-même, sans avoir à ouvrir l'onglet Météo.

Prévisions météo des prochains jours

Sous les données actuelles, un tableau affiche les prévisions sur le nombre de jours configuré (5 jours par défaut, jusqu'à 16). Chaque ligne comporte :

  • La date, dans le fuseau horaire du lieu
  • La température minimale (Min)
  • La température maximale (Max)
  • Les colonnes optionnelles activées dans la configuration : description météo, précipitations, vent maximal, lever / coucher du soleil, indice UV maximal

Ce tableau peut être entièrement masqué via le paramètre Afficher le tableau des prévisions.

Carte interactive

Une carte OpenStreetMap interactive (via Leaflet 1.9.4) est affichée en bas de page avec :

Le niveau de zoom initial et la hauteur du bloc sont configurables, et la carte peut être désactivée pour éviter tout chargement depuis un CDN externe.

Onglet Contact

Le même onglet Météo est disponible sur les fiches contacts/adresses. Il fonctionne de manière identique en utilisant l'adresse du contact.

Onglet Météo sur une fiche Contact

Onglet Adherent

Depuis la version 24.0.2, le même onglet Météo est disponible sur les fiches adhérents, à deux conditions :

  • le module natif Adhérents est activé ;
  • l'objet Adhérent est coché dans le paramètre Objets sur lesquels afficher la météo.

Le géocodage utilise le code postal et la ville renseignés sur la fiche de l'adhérent. Un adhérent sans ville affiche l'onglet, mais aucune donnée météo ne peut être calculée.

Les relevés sont enregistrés dans la table llx_ultimatemeteo_currentweather avec la colonne fk_member. Si l'adhérent est rattaché à un tiers, la colonne fk_soc est également renseignée ; sinon elle reste vide.

Remarque : la colonne fk_member est ajoutée automatiquement lors de la mise à jour du module. Sur une installation existante, désactivez puis réactivez UltimateMeteo une fois pour que la modification de structure soit appliquée. L'opération n'est pas destructive : les enregistrements existants sont conservés.

Conditions météo supportées

Le module utilise les codes WMO standard et les traduit automatiquement dans 5 langues (FR, EN, DE, ES, IT) :

Code WMO Description
0 Ciel dégagé
1 Principalement dégagé
2 Partiellement nuageux
3 Couvert
45 / 48 Brouillard / Brouillard givrant
51 / 53 / 55 Bruine légère / modérée / dense
61 / 63 / 65 Pluie légère / modérée / forte
71 / 73 / 75 Neige légère / modérée / forte
77 Grains de neige
80 / 81 / 82 Averses faibles / modérées / violentes
85 / 86 Averses de neige faibles / fortes
95 Orage
96 / 99 Orage avec grêle légère / forte

APIs utilisées

Le module repose sur des APIs entièrement gratuites, sans inscription ni clé API requise :

API Rôle URL
Open-Meteo Météo actuelle et prévisions https://api.open-meteo.com
OpenStreetMap Nominatim Géocodage adresse → coordonnées GPS https://nominatim.openstreetmap.org
Leaflet 1.9.4 Bibliothèque de carte interactive https://leafletjs.com
OpenStreetMap Tiles Tuiles cartographiques https://tile.openstreetmap.org

Nouveautés de la version 24.0.2

Améliorations

  • Onglet Météo sur les adhérents : nouvelle page currentweather_member.php affichant la météo actuelle, les prévisions et la carte à l'adresse de l'adhérent. Disponible uniquement si le module natif Adhérents est activé
  • Objets concernés paramétrables : un nouveau paramètre Objets sur lesquels afficher la météo permet de choisir les fiches recevant l'onglet Météo (Tiers, Contact, Adhérent). La modification est prise en compte immédiatement, sans réactivation du module
  • Résumé sur fiche généralisé : la ligne de résumé météo, jusqu'ici réservée aux tiers, s'affiche désormais aussi sur les fiches contact et adhérent sélectionnées
  • Cache respecté sur les trois onglets : les onglets tiers, contact et adhérent mettent à jour l'enregistrement existant tant qu'il est plus récent que la durée de cache configurée, au lieu de créer une ligne à chaque affichage

Corrections

  • Cache réellement effectif : la fraîcheur d'un enregistrement était comparée sur la colonne tms, un TIMESTAMP MySQL restitué en UTC, alors que Dolibarr écrit les dates dans le fuseau du serveur. L'écart de fuseau invalidait systématiquement le cache et provoquait un appel aux API externes et une nouvelle ligne à chaque affichage. La comparaison se fait désormais sur date_weather
  • Warnings PHP supprimés : lorsque la ville était absente ou que le géocodage échouait, les onglets affichaient des messages « Undefined variable ». Les variables météo sont désormais initialisées avant l'affichage
  • Colonne Adhérent masquée : le champ fk_member n'apparaît plus dans le tableau des onglets tiers et contact

Base de données

  • Nouvelle colonne fk_member dans llx_ultimatemeteo_currentweather, ajoutée automatiquement au chargement du module. L'opération n'est pas destructive

Nouveautés de la version 24.0.1

Améliorations

  • Onglet Paramètres : 14 paramètres de configuration remplacent les valeurs codées en dur (unités, prévisions, carte, services externes, cache, délai HTTP)
  • Unités configurables : température en °C ou °F, vent en km/h, m/s, mph ou nœuds, transmises directement à l'API Open-Meteo
  • Alerte vent : seuil paramétrable au-delà duquel la vitesse du vent est mise en évidence en rouge
  • Prévisions paramétrables : nombre de jours (1 à 16) et colonnes optionnelles (description, précipitations, vent maximal, lever / coucher du soleil, indice UV)
  • Carte paramétrable : zoom initial, hauteur du bloc, et possibilité de désactiver complètement le chargement du CDN externe
  • Services auto-hébergeables : les URL de Nominatim et d'Open-Meteo sont configurables pour pointer vers vos propres instances
  • Email de contact technique : transmis dans l'en-tête User-Agent, conformément à la politique d'utilisation de Nominatim
  • Traductions complètes : les 5 langues (fr, en, de, es, it) couvrent désormais l'intégralité des libellés et infobulles de la configuration

Corrections

  • Hook tiers réparé : la classe de hook a été déplacée de core/hooks/ vers class/actions_ultimatemeteo.class.php, seul emplacement analysé par le HookManager de Dolibarr. Le résumé météo sur la fiche du tiers ne s'affichait donc jamais
  • Valeurs par défaut : elles sont désormais posées à l'activation du module via $this->const, conformément aux pratiques du module builder
  • Géocodage plus précis : la recherche utilise le code postal et la ville au lieu de la seule ville
  • Unités dans les libellés : les mentions « (°C) » et « (km/h) » codées en dur ont été retirées des traductions, l'unité réellement configurée étant affichée à côté de la valeur

Nouveautés de la version 24.0.0

Corrections

  • Erreur 403r sur les cartes OpenStreetMap : ajout du referrerPolicy et de l'attribution conformément à la politique de tuiles OSM 2026
  • Leaflet épinglé à la version 1.9.4 avec vérification d'intégrité SRI (au lieu d'une URL CDN non versionnée)
  • Appels API sécurisés : remplacement de file_get_contents par cURL avec User-Agent conforme dans le hook tiers
  • Cache des données : mécanisme UPDATE/INSERT avec cache de 30 minutes (supprime l'INSERT systématique à chaque affichage)
  • Fuseau horaire dynamique : utilisation de la configuration Dolibarr au lieu d'un fuseau Europe/Paris codé en dur

Améliorations

  • Codes météo complets : ajout des codes WMO 71-99 (neige, averses, orages, grêle) dans les 5 fichiers de langue
  • Internationalisation : les descriptions météo utilisent désormais le système de traduction Dolibarr ($langs->trans())
  • Liens d'aide wiki : ajout de liens contextuels vers la documentation wiki dans toutes les pages du module
  • Compatibilité Dolibarr v24 : mise à jour des patterns pour respecter les conventions v24

FAQ

La météo ne s'affiche pas

Vérifier que la fiche tiers, contact ou adhérent possède bien un code postal et une ville renseignés. Le géocodage nécessite au minimum une ville.

L'onglet Météo n'apparaît pas sur une fiche

Ouvrir l'onglet Paramètres du module et vérifier que l'objet concerné est bien coché dans Objets sur lesquels afficher la météo. Pour les adhérents, vérifier également que le module natif Adhérents est activé : sans lui, le choix n'est même pas proposé.

J'ai mis à jour le module mais l'onglet adhérent renvoie une erreur SQL

La colonne fk_member n'a pas encore été créée. Désactiver puis réactiver UltimateMeteo une fois : Dolibarr rejoue alors les scripts SQL du module et ajoute la colonne. L'opération n'est pas destructive.

La carte affiche "Access blocked" ou "403r"

Ce problème a été corrigé dans la version 24.0.0. OpenStreetMap a renforcé sa politique de Referer début 2026. La mise à jour inclut :

  • L'ajout du referrerPolicy: "strict-origin-when-cross-origin" dans la configuration Leaflet
  • L'attribution © OpenStreetMap contributors obligatoire
  • L'épinglage de Leaflet à une version stable (1.9.4)

Si vous voyez encore cette erreur, vérifiez que vous utilisez bien la version 24.0.0 du module.

Les données météo sont-elles mises à jour automatiquement ?

Les données sont récupérées à chaque ouverture de l'onglet Météo. Un cache évite les appels API répétitifs : si le dernier relevé est plus récent que la durée du cache configurée (30 minutes par défaut), il est simplement mis à jour en base au lieu de créer un nouvel enregistrement. Cette durée se règle dans l'onglet Paramètres du module.

Comment afficher les températures en Fahrenheit ?

Dans l'onglet Paramètres du module, choisir Fahrenheit (°F) comme unité de température. L'unité est transmise directement à l'API Open-Meteo : la conversion est donc faite à la source, et l'unité choisie est affichée à côté de chaque valeur.

Le seuil d'alerte vent est-il converti automatiquement ?

Non. Le seuil est exprimé dans l'unité de vent sélectionnée. Si vous passez de km/h à mph, pensez à réajuster la valeur du seuil en conséquence.

Le module fonctionne-t-il hors ligne ?

Non. Le module nécessite un accès Internet pour interroger les APIs Open-Meteo et Nominatim.

Il est toutefois possible de rester sur un réseau interne en renseignant, dans l'onglet Paramètres, les URL d'instances Nominatim et Open-Meteo auto-hébergées, et en désactivant la carte pour éviter le chargement de Leaflet depuis un CDN externe.

Quelles langues sont supportées ?

Le module est disponible en : Français, Anglais, Allemand, Espagnol, Italien.

Comment accéder à l'aide en ligne ?

Chaque page du module dispose d'un lien d'aide contextuel (icône ? en haut à droite) qui renvoie vers la section correspondante de cette page wiki.

Voir aussi

Autres langues