My Own Memory Hole

Station météo Netatmo & WeeWX

Dans le cadre de la «digitalisation» de La Sculpture : les Pluies de Patrick Dubrac, nous cherchons à aller au-delà de ce que nous avons mis en place avec Le Calendrier des pluies, mis à jour mensuellement à partir des données météorologiques quotidiennes. D'où l'idée de développer un prototype associant une station météo Netatmo à un Raspberry Pi sur lequel serait installé WeeWX, un petit programme en Python qui permet d'interagir avec de multiples modèles de stations météo, de publier les données sur de multiples sites, de conserver les données dans des bases de données...

Cependant, le pilote pour les stations Netatmo (https://github.com/matthewwall/weewx-netatmo) n'est pas compatible avec la version 4 de WeeWX...

[EDIT : depuis, je suis parvenu à rendre compatible le plugin avec les versions 4 de WeeWX tel que présenté dans cet article ; certains éléments de cet article sont toujours valables, tels ceux consacrés à la base de données.]

On bascule donc sur la dernière des versions 3 de WeeWX disponibles, la 3.9.2 :

wget http://weewx.com/downloads/released_versions/weewx-3.9.2.tar.gz

On installe les dépendances nécessaires :

sudo apt install python-configobj python-pil python-serial python-usb python-pip python-cheetah python-ephem mariadb-client python-mysqldb

Puis on lance l'installation :

tar xvfz weewx-3.9.2.tar.gz
cd weewx-3.9.2
python2 setup.py build
sudo python setup.py install

L'ensemble des exécutables se trouve dans /home/weewx/bin/ ; le fichier de configuration est à l'emplacement /home/weewx/weewx.conf

On installe ensuite le pilote weewx-netatmo (https://github.com/matthewwall/weewx-netatmo) :

wget -O weewx-netatmo.zip https://github.com/matthewwall/weewx-netatmo/archive/master.zip
sudo /home/weewx/bin/wee_extension --install weewx-netatmo.zip

Puis on configure weewx :

sudo /home/weewx/bin/wee_config --reconfigure

On édite ensuite le fichier de configuration à la main  :

sudo nano /home/weewx/weewx.conf

On s'assure que nos identifiants Netatmo sont bien pris en compte et on bascule, dans la sous-section [[wx_binding]] de la section [DataBindings] sur une base de données MySQL :

database = archive_mysql

On crée une base de données avec les mêmes identifiants que ceux que nous avons indiqués dans la sous-section [[archive_mysql]] de la secion [Databases], par défaut :

    # MySQL
    [[archive_mysql]]
        database_name = weewx
        database_type = MySQL
sudo mysql -u root -p
MariaDB [(none)]> CREATE DATABASE weewx;
MariaDB [(none)]> CREATE USER 'weewx'@localhost IDENTIFIED BY 'weewx';
MariaDB [(none)]> GRANT ALL PRIVILEGES ON weewx.* TO 'weewx'@localhost;
MariaDB [(none)]> FLUSH PRIVILEGES;

Enfin, on fait en sorte que WeeWX soit lancé au démarrage comme un service :

cd /home/weewx
sudo cp util/init.d/weewx.debian /etc/init.d/weewx
sudo chmod +x /etc/init.d/weewx
sudo update-rc.d weewx defaults 98
sudo /etc/init.d/weewx start