Utilisation de Weewx en 1 seule instance pour 2 stations octobre 18, 2020 Préambule : Avant d’activer ma nouvelle station dans Weewx sur mon Raspberry Pi , il faut en effet que je transforme mon installation Weewx « mono station » en installation « 2 stations ». 1 seule instance Weewx mais avec 2 stations déconnectées . Je vais donc « migrer » mes données Weewx « mono station » sur une instance WMR200 et dans un second temps « créer » de nouvelles données pour une instance FROGGIT il faudra : Créer 2 fichiers de conf Modifier la base de données Modifier les reports (attention tous les reports) Modifier le chemin du ftp Copier les scripts de start and stop du weewx-multi Modifier les logs pour avoir les logs séparés Conclusion 1- Modifier Weewx de mono en Multi instance Source : https://github.com/weewx/weewx/wiki/weewx-multi Créer 2 fichiers de conf sous /home/weewx/ : WMR200.conf FROGGIT.conf J’ai recopié le fichier existant weewx.conf en WMR200.conf puisque c’est ma « vieille station » en modifiant les noms J’ai également recopié la base de données sous /var/lib/weewx/ pour conserver mon historique : root@raspberrypi:/var/lib/weewx# ls -lisa total 184900 133741 4 drwxr-xr-x 2 root root 4096 oct. 18 16:40 . 130059 4 drwxr-xr-x 44 root root 4096 nov. 18 2016 .. 133836 92444 -rw-r--r-- 1 root root 94655488 oct. 18 15:20 weewx.sdb 184576 92448 -rw-r--r-- 1 root root 94662656 oct. 18 16:40 weewx-WMR200.sdb root@raspberrypi:/var/lib/weewx# Dans le fichier WMR200.conf : modifier le nom de la base sqlite : [Databases] # A SQLite database is simply a single file [[archive_sqlite]] database_type = SQLite database_name = weewx-WMR200.sdb # MySQL [[archive_mysql]] database_type = MySQL database_name = weewx-WMR200 Modifier le chemin de tous les « Reports » Pour avoir encore une configuration propre, j’ai également décidé de séparer le dossier de destination des reports. Il faut se rendre dans le fichier de configuration dans la section « Report » et modifier TOUS les chemins : /var/www/weewx => vers /var/weewx/weewx-WMR200. On fera de même pour l’autre station. [StdReport] # Where the skins reside, relative to WEEWX_ROOT SKIN_ROOT = /etc/weewx/skins # Where the generated reports should go, relative to WEEWX_ROOT HTML_ROOT = /var/www/weewx-WMR200 # The database binding indicates which data should be used in reports. data_binding = wx_binding On utilise un « faux » skin ftp pour uploader les fichiers générés par Weewx et il faut donc modifier le chemin source du ftp. Dans le futur proche, je modifierai également le dossier de destination afin de séparer egalement les fichiers sur mon site. [[FTP]] # FTP'ing the results to a webserver is treated as just another report, # albeit one with an unusual report generator! skin = Ftp # If you wish to use FTP, uncomment and fill out the next four lines. #user = replace with the ftp username #password = replace with the ftp password #server = replace with the ftp server name, e.g, www.threefools.org #path = replace with the ftp destination directory (e.g., /weather) # Set to True for a secure FTP (SFTP) connection. Not all servers # support this. secure_ftp = False # To upload files from something other than what HTML_ROOT is set # to above, specify a different HTML_ROOT here. HTML_ROOT = /var/www/weewx-WMR200 2- Copie et modification du script de démarrage (start and stop) il faut modfiier le script qui gère le demarrage/ l’arret / le statut de weewx afin que le programme gère correctement 2 instances différentes. depuis /home/weewx/ : sudo cp util/init.d/weewx-multi /etc/init.d/weewx sudo update-rc.d weewx defaults echo 'WEEWX_INSTANCES="WMR200 FROGGIT"' | sudo tee /etc/default/weewx-multi 3- Modification des logs pour les avoir séparés Source : https://github.com/weewx/weewx/wiki/logging Modifier le fichier de configuration des logs suivant /etc/rsyslog.d/weewx.conf comme ceci : # use this syntax for rsyslog in most modern distributions :programname,isequal,"weewx" /var/log/weewx/weewx.log :programname,isequal,"weewx" stop :programname,startswith,"wee_" /var/log/weewx/weewx.log :programname,startswith,"wee_" stop # older versions of rsyslog use this syntax #:programname,isequal,"weewx" /var/log/weewx/weewx.log #:programname,isequal,"weewx" ~ #:programname,startswith,"wee_" /var/log/weewx/weewx.log #:programname,startswith,"wee_" ~ # some prefer this dialect of rsyslog #if $programname == 'weewx' then /var/log/weewx/weewx.log #if $programname == 'weewx' then ~ :programname,isequal,"weewx-WMR200" /var/log/weewx/WMR200.log :programname,isequal,"weewx-WMR200" ~ :programname,isequal,"weewx-FROGGIT" /var/log/weewx/froggit.log :programname,isequal,"weewx-FROGGIT" ~ ne pas oublier de créer le répertoire de destination des logs weewx, si il n’est pas créé : mkdir /var/log/weewx Ne pas oublier de modifier le logrotate (système permettant de sauvegarder les logs des différentes instances , ici sur 12 jours) (le chemin /var/log/weewx/*.log) /var/log/weewx/weewx.log { weekly missingok rotate 12 compress delaycompress notifempty create 644 root adm sharedscripts postrotate /etc/init.d/weewx reload > /dev/null endscript } 4- Le fonctionnement de Weewx en multi-instance Une fois tout installé (et modifié) , un simple start du service va lancer les instances paramétrées : Dans mon cas (au moment ou j’écris ce billet), le paramétrage de la station Froggit n’est pas fait. root@raspberrypi:/# service weewx start WMR200 is running. FROGGIT is not running. root@raspberrypi:/# root@raspberrypi:/# service weewx status WMR200 is running. FROGGIT is not running. root@raspberrypi:/# Dans mon cas le fichier FROGGIT.conf sous /home/weewx/ n’existe pas encore c’est pour cela que ca ne fonctionne pas encore. sous /var/log/weewx/ root@raspberrypi:/var/log/weewx# pwd /var/log/weewx root@raspberrypi:/var/log/weewx# ls -lisa total 100 303847 4 drwxr-xr-x 2 root root 4096 oct. 18 17:56 . 134592 4 drwxr-xr-x 9 root root 4096 oct. 18 15:56 .. 303851 0 -rw-r----- 1 root adm 0 oct. 18 17:56 FROGGIT.log 303848 0 -rw-r----- 1 root adm 0 oct. 18 16:08 weewx.log 303849 92 -rw-r----- 1 root adm 89581 oct. 18 17:56 WMR200.log root@raspberrypi:/var/log/weewx# Les logs également se génèrent bien aussi ! 4- Conclusion Avec un peu de connaissances et de rigueur , il est assez aisé de passer d’une configuration mono station a 2 stations sans difficulté. Navigation de l’article Le paramétrage de la Froggit WH-6000Utilisation des données de Weather Underground (toutes stations confondues…)