Mbell est une série de scripts PHP pour utilisateurs de station Davis Weatherlink via datalogger IP ou USB, vous permettant d'afficher vos propres données météorologiques en lieu et place de l'interface Weatherlink par défaut.
MBell est très simple d'installation. Vous n'avez besoin que d'un hébergement Internet (avec FTP) acceptant le PHP, de rentrer vos identifiants Weatherlink dans l'interface MBell et les scripts s’occupent du reste.
MBell a été optimisé pour l'affichage rapide sur mobile et permet à n'importe quel utilisateur consultant vos données météo de changer quand bon lui semble certains paramètres :
Il est nécessaire de vous inscrire 1 fois pour pouvoir accéder au lien de téléchargement. Vous n'aurez ensuite besoin que de vous connecter à chaque fois que vous voudrez télécharger MBell.
Votre Nom de famille, le lien complet du site (sans le http://) sur lequel Mbell sera utilisé et un email où l'on peut vous contacter. L'Email n'est pas obligatoire. Il permet simplement de vous contacter plus rapidement en cas de problème. Si vous n'avez pas encore de nom de site et voulez simplement tester Mbell en local, mettez simplement "Local".
Il peut être étonnant de demander une inscription pour un projet en open-source, mais il s'agit d'une sécurité permettant de limiter les téléchargements de Mbell par des robots mal intentionnés.
Je vous rassure cependant, il n'y a aucun risque (vos données d'identifications météos étant cryptés directement sur votre propre serveur-ftp), raison pour laquelle je ne vous demande pas de mot de passe, mais simplement quelques informations basiques. Cela permet notamment d'éviter aussi le téléchargement de MBell ailleurs qu'en passant par www.meteobell.com ou par lien direct sans être connecté.
Note : le dossier "src" n'est pas indispensable et peut être supprimé sans risque, il ne contient que des images de présentations non nécessaires à l'exécution de Mbell.
Note : L'ID (appelé aussi DID) / la clef (appelé aussi KEY) de votre station, sont inscrites sur le cordon de votre datalogger branché à votre console. Vous pouvez aussi trouver ces informations en vous connectant à weatherlink.com : https://www.weatherlink.com/account ). Vous trouverez également sur le site weatherlink.com votre Mot de Passe (appelé aussi PASS) et le numéro d'API Token (appelé aussi TokenID) nécessaire à une connexion en version 2.0.
Depuis que Weatherlink a migré en version 2.0 au cours de l'année 2018, les informations de connexions à Mbell ont changé également. Lors de la première connexion à Mbell, il faut toujours inscrire "admin". Mais ensuite si vous avez enregistré votre station en version 1.0, il faudra inscrire seulement le "KEY" pour vous connecter à Mbell. Si vous l'avez enregistré en version 2.0, il faudra inscrire seulement le "PASS".
A l'heure actuelle, Weatherlink en version 1.0 fonctionne parfaitement si vous avez un datalogger IP et aucune date n'a été donné pour son arrêt, vous pouvez donc très bien rester en version 1.0 sans que vous ne voyez aucun changement. Depuis 2018 la version 2.0 fonctionne aussi en parallèle et permet à ceux ne disposant pas de datalogger IP de pouvoir utiliser Mbell. En revanche l'utilisation obligatoire des TokenID n'a pas encore été activé à ce jour et aucune date n'a encore été donné pour son activation de la part de Weatherlink. Si vous disposez d'un datalogger IP, il n'y a donc aucune obligation à passer en version 2.0, même si votre station a été migré pour l'accepter sur le site weatherlink.com.
Depuis sa version 1.3c, Mbell est cependant prêt et parfaitement fonctionnel pour accepter Weatherlink 1.0 et Weatherlink 2.0 avec ou sans TokenID. Vous n'aurez donc rien à faire le jour où Weatherlink décidera d'activer ou de désactiver l'une ou l'autre version, vous n'aurez simplement qu'à changer dans les paramètres de Mbell vos identifiants selon la version choisi.
Les utilisateurs de Mac peuvent parfois rencontrer un problème lors de l'installation. Le fichier .htaccess est en effet parfois invisible car considéré comme un fichier caché par Mac. Il faut donc activer les fichiers cachés pour le voir et pourvoir ensuite l'installer. Il existe différentes méthodes, cherchez sur le net comment afficher un fichier caché sur Mac.
Si vous n'arrivez pas à vous connecter à votre station, il s'agit peut-être d'un problème de droit d'accès (CHMOD) avec votre FTP (sur FileZilla, faites un clic droit, puis "Droits d'accès au fichier..."). En effet Mbell n'utilisant pas de base de données (mysql), il doit pouvoir modifier certains fichiers directement sur votre ftp quand nécessaire (notamment les informations de sécurité). Tous les fichiers doivent avoir comme CHMOD : 755, ainsi que le dossier "mbell". Pour plus de sécurité mettez tout de même le dossier "config" en CHMOD : 744 (mais pas le contenu du dossier).
Attention, si vous inscrivez de mauvaises informations d'identifications (DID + KEY pour la V1.0 ou DID + PASS + TokenID pour la v2.0), que vous sauvegardez puis que vous vous déconnectez sans vous souvenir de la mauvaise clef précédemment inscrite, vous ne pourrez plus vous reconnecter à vos fichiers Mbell. C'est une sécurité. Il vous faut dans ce cas retélécharger l'ensemble des scripts Mbell et l'installer de nouveau sur votre FTP (ou au moins le fichier "var.enc" dans le dossier "config"). Puis recommencez la procédure depuis le début (KEY = admin).
Si vous installez une nouvelle version de mbell, vous devez impérativement supprimer et remplacer totalement le précédent dossier mbell, ne vous contentez pas de simplement copier-coller en remplaçant les fichiers existants. Vous devez supprimer l'ancienne version avant d'installer la nouvelle et recommencer la procédure d'installation depuis le début.
Si vous rencontrez des problèmes d'encodages (notamment sur les accents de la langue française), c'est probablement parce que le site sur lequel vous avez installé MBell est sur un autre type d'encodage. MBell est encodé en unicode UTF-8 :
- Vous pouvez dans ce cas forcer votre site à utiliser UTF-8 pour MBell en rajoutant la ligne de code suivante dans le htaccess : AddDefaultCharset utf-8
- Si cela ne fonctionne pas, certains hébergeurs préconisent de créer un fichier nommé php.ini ou .php.ini (à mettre dans le dossier mbell) avec la ligne de code suivante : default_charset="UTF-8"
NOTE sur la notion de FTP et d'hébergeur :
Il y a 44 cases de tableau actualisé toutes les minutes automatiquement :
NOTE sur l'évapotranspiration (v1.3) : la formule d'ETP utilisé par Davis est la formule de CIMIS Penman et est performante en taux horaire, mais sous-estime un peu la valeur sur des cumuls mensuels et annuels. Pour l'ETR, c'est le contraire. Il y a en fait 2 formules d'ETR utilisé par MBell. La formule de Coutagne est utilisé en priorité, mais n'est significative qu'entre certaines valeurs de température et de précipitation, la formule de Turc prend alors le relais. Ces 2 formules en revanche sur-estiment les valeurs en taux horaires et deviennent donc intéressantes surtout en bilan annuel (donc en fin d'année). Il n'existe en fait aucune formule d'évapotranspiration parfaite. Ce sont des estimations.
La priorité sera toujours donné au choix de l'utilisateur lui-même via le menu contextuel de gauche. Cependant lorsque celui-ci se connecte à Mbell la toute première fois ou lorsque il vide ses cookies, un choix par défaut peut être choisi pour lui via le menu Paramètre pour les unités, le style et la langue.
Le choix de la langue est cependant un peu particulier car n'utilise pas de cookies. Il est en effet possible de récupérer la langue directement via l'adresse URL :
Lorsqu'une langue est choisi, ce sont ainsi tous les liens du site qui pointeront vers celle-ci. Si vous mettez une adresse par défaut (www.votre-site.com/mbell/ ou www.votre-site.com/mbell/index.php), alors le paramètre par défaut prend le relais. Notez cependant que la priorité sera donné à la langue du navigateur, il est donc possible que vous ne voyez pas de changement si votre navigateur utilise une des langues traduite par Mbell. Par exemple si vous vous connectez via la Turquie, votre navigateur est écrit en Turc, Mbell n'étant pas traduit en Turc, alors, c'est le choix par défaut qui sera utilisé. Par contre si vous vous connectez via la France, votre navigateur est écrit en Français, c'est donc ce choix là qui sera prioritaire par rapport au choix par défaut (même si le choix par défaut est l'Anglais). Mais dans les deux cas, l'utilisateur peut forcer une autre langue via le menu contextuel s'il le désire.
A la toute première connexion d'un administrateur (donc juste après l'installation des scripts Mbell sur votre FTP et avant même d'avoir utilisé les Paramètres par Défaut), les réglages par défaut sont fixés sur :
Vous pouvez afficher les données dans n'importe quel ordre que ce soit dans les 30 cases (3 colonnes et 10 lignes). Par défaut, Mbell est configuré sur 4 lignes :
Vous pouvez choisir d'afficher de 1 à 10 lignes.
Afin de permettre plus de souplesse d'affichage, certaines cases de données possèdent un système de switch automatique en fonction des choix préalable de configuration que l'administrateur effectuera. A ce jour 3 cases possèdent ce système de switch :
Ce système de switch a été créé dans l'idée de fabriquer plus de possibilité d'affichage différents (est-ce que je veux une case "Cumul de Pluie" qui regroupe les 3 cases "Pluie du Jour", "Pluie Mensuel", "Pluie Annuel", ou non ?) afin de permettre notamment à ceux disposant d'1 sonde ou 2 de Température Extra d'avoir un affichage qui restent bien sur 3 colonnes. En effet si vous avez une sonde supplémentaire mesurant par exemple la température du sol, vous n'avez besoin qu'une d'1 seule case supplémentaire, or Mbell ne peut pas afficher autre chose que 3 colonnes. Il vous faut donc trouver 2 autres cases à remplir ou bien en supprimer 1 quelque-part. Le système de switch vous permet facilement de remédier à ça.
D'autres cases viendront compléter ce système de switch à l'avenir permettant une infinité d'affichage différents.
Si vous possédez de multiples stations Davis et voulez avoir votre propre script mbell pour chacune de vos stations il suffit de créer à la racine de votre site un dossier pour chaque station et d'inclure dans chacun le dossier mbell avec les identifiants de chacune de vos stations :
Ne mettez pas le .htaccess dans ce cas à la racine de votre site, mais mettez un .htaccess dans chacun des dossiers de votre station.
Vous trouverez plus de renseignements sur le site Davis à cette adresse sur l'ensemble des capteurs auxiliaires et combinaisons possibles : davis-meteo.com
Depuis la version 1.5b (et plus encore depuis la version 1.5d), le niveau de sécurité de Mbell a été considérablement renforcé et est conforme aux toutes dernières évolutions en la matière. En effet vos données sensibles (KEY, PASS et API TOKEN) sont chiffrés depuis le début de Mbell, mais la méthode de chiffrement utilisée avant la version 1.5b, en MCRYPT était devenu obsolète depuis PHP 7.2 et certains hébergeurs faisant évolués automatiquement leur version PHP ne la reconnaissaient alors plus, ce qui provoquait des bugs sur MBell, à moins de forcer son site à utiliser une version PHP inférieur à 7.2. De plus la clef de chiffrement-déchiffrement était codé en dur dans le code PHP, ce qui est normalement la meilleure méthode pour ne pas y avoir accès, à condition de ne pas proposer le code source en téléchargement, hors c'est précisément ce que fait MBell. Cela supposait en plus que vous ayez tous la même clef. Il était donc impératif de changer de méthode pour plus de sécurité.
Dorénavant le système de chiffrement MCRYPT a été remplacé par le système OPENSSL bien plus évolué et performant. Pour que le chiffrement OPENSSL fonctionne, la configuration minimum nécessaire est maintenant le PHP 5.6 (PHP 5.5 précédemment) sur votre hébergement et devrait normalement être compatible avec la toute dernière version PHP (7.3 en décembre 2018). Il est impossible aujourd'hui pour un pirate de décoder des informations chiffrées en OPENSSL sans disposer de la clef (contrairement à MCRYPT). Vos données chiffrées et inscrites dans le fichier "var.enc" sont de plus mises en lecture seul (ajout de la v1.5c) afin que seul en cas de piratage ou si vous avez un problème de sécurité inhérent à votre hébergement, on puisse accéder à ces données. Mais elles resteront chiffrées. Sans la clef, ce sont des données qui restent illisibles, même si un hacker a réussi à y accéder.
Restait un problème de taille à résoudre : le stockage de la clef qui permet de décoder les données chiffrées. Pour ceux qui ont suivis l'évolution des mises à jour et les discussions sur le forum Infoclimat, vous aurez compris que c'est un sujet compliqué, du fait de l'absence d'utilisation de base de données (MYSQL) et du fait même du projet en open source, puisque le code PHP est visible lorsque vous le téléchargez. Ce sont 2 choses qui compliquent considérablement le stockage de cette clef et donc la sécurité. J'ai donc essayé plusieurs méthodes différentes, certaines non publiés (stockage dans un cookies de sécurité, chiffrement asymétrique en OPENSSL, file_get_contents en https depuis un serveur distant), d'autres oui (v1.5b : système de double clef, l'une publique aléatoire et unique stocké dans le fichier "var.enc" et clef privé commune caché par obfuscation dans le code source), sans réussir à trouver la solution idéale jusqu'à la version 1.5d.
Depuis la version 1.5d, il n'y a maintenant qu'une seule clef de chiffrement et elle est inscrite en dur dans le code PHP (et non pas dans le fichier "var.enc" comme en 1.5b) pour qu'elle ne soit accessible qu'en lecture par le serveur et jamais en téléchargement par le client. C'est la meilleure méthode pour stocker une clef de chiffrement. Enfin pour que cette clef soit unique à chaque utilisateur (et non pas commune à tous comme c'était le cas avant la version 1.5b et pour la clef dites privé lors des versions 1.5b et 1.5c), elle sera généré de manière totalement aléatoire au moment du téléchargement de MBell sur le site www.meteobell.com et automatiquement inscrite dans le fichier compressé avant le téléchargement des dossiers MBell.
Cette nouvelle méthode introduite par la version 1.5d garantie que la clef de chiffrement soit inscrite dans un fichier protégé ne pouvant être lu depuis l'extérieur. Cette création de clef avant le téléchargement de Mbell, permet aussi que cette clef soit unique et indépendante, sans qu'une personne téléchargeant aussi le code source de Mbell ne puisse connaitre la clef sur votre hébergement. On ne pourra en effet connaitre que sa propre clef, jamais celle de quelqu'un d'autres. Il n'y a donc plus d'utilité à obfusquer le code source (l'obfuscation avait été mis en place en v1.5b).
NOTE : si vous utilisez un serveur qui utilise Nginx au lieu du .htaccess, vous devez dans votre fichier de configuration nginx.conf, ajouter les lignes suivantes pour mettre en lecture seule le fichier "var.enc" :
Avant de signaler un bug, assurez-vous que celui-ci vient bien de MBell et non pas de Weatherlink. Pour cela rien de plus simple, munissez-vous de vos identifiants et allez sur un des 2 liens :
Ce lien va vous charger toutes vos données sous forme de fichier XML. C'est ce lien dont se sert MBell pour afficher toutes les données de votre station météo. Donc si l'erreur (ou l'absence de données) est également présente dans ce fichier, c'est donc que le problème ne vient pas de MBell, mais de Weatherlink. Il est donc inutile de me signaler ce bug, je ne pourrais rien y faire, je n'y suis pour rien. Contactez dans ce cas Davis et les services Weatherlink.
En revanche si les données sont bien présentes dans le lien XML, mais bugs ou sont manquantes dans MBell, c'est que le problème vient de MBell. Contactez-moi dans ce cas.
Mbell est un script dévelloppé par Damien BELLIARD, www.meteobell.com
L'ensemble des scripts Mbell sont sous Licence Creative Commons BY-NC-SA : Le titulaire des droits autorise l’exploitation de l’œuvre originale à des fins NON commerciales, ainsi que la création d’œuvres dérivées, à condition qu’elles soient distribuées sous une licence identique à celle qui régit l’œuvre originale.
Je remercie G-Davis comme source d'inspiration initiale à ce projet, qui était un service d'alerte mail avec un système Cron. Je n'ai pas repris ce concept et ai finalement réalisé quelque-chose de totalement différent, mais je tenais à remercier quand même cette personne, aujourd'hui disparu de la toile, pour m'avoir donné l'idée de me lancer dans un projet open-source pour remplacer l'interface Weatherlink à l'époque très vieillotte (en 1.0). Je remercie également Erik Flowers et Lukas Bischoff pour leurs icônes Weather Icons http://weathericons.io ainsi que toute l'équipe Bootstrap https://getbootstrap.com/ pour leurs builds html-css-jquery. Merci enfin aux personne d'Infoclimat et notamment à bianconero pour me permettre de tester MBell sur sa station avec toutes les sondes disponibles.