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  :

  1. Créer 2 fichiers de conf
    1. Modifier la base de données 
    2. Modifier les reports (attention tous les reports)
    3. Modifier le chemin du ftp 
  2. Copier les scripts de start and stop du weewx-multi
  3. Modifier les logs pour avoir les logs séparés
  4. 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é.