Eseguire istanze multiple

Introduzione

Ci sono alcune applicazioni in cui potresti voler eseguire più di un'istanza di Weewx. Potresti voler testare una nuova versione di Weewx usando il simulatore senza interrompere i dati dalla tua stazione meteorologica. Oppure potresti avere più di una stazione meteorologica da cui vorresti raccogliere i dati.

Stazioni meteo multiple, un'installazione Weewx

Puoi eseguire qualsiasi numero di istanze di Weewx da una singola installazione. Tuttavia, ogni istanza di Weewx deve avere il proprio:

  • File di configurazione
  • Database
  • Rapporti

Supponiamo di avere due stazioni meteorologiche collegate a un singolo computer, una stazione è una Davis Vantage Pro installata in una casa e l'altra è una stazione Acurite installata in un paddock. Li identificheremo come 'house' e 'paddock'. Le istruzioni variano leggermente a seconda che tu abbia installato Weewx come pacchetto o tramite l'approccio setup.py. Queste variazioni sono evidenziate ove applicabile.

  1. Crea i file di configurazione. I file di configurazione possono essere nominati come preferisci; tuttavia, tieni presente che il nome del file stem verrà utilizzato in seguito con lo script init per controllare ogni istanza e nelle voci di registro. In genere, una singola parola descrittiva evidente è buono. Crea un file per ogni stazione, diciamo house.conf e paddock.conf. Metti questi file nella directory /etc/weewx:

Per installazioni setup.py:

sudo mkdir /etc/weewx
sudo cp /home/weewx/weewx.conf /etc/weewx/house.conf
sudo cp /home/weewx/weewx.conf /etc/weewx/paddock.conf

Per le installazioni con pacchetti:

sudo cp /etc/weewx/weewx.conf /etc/weewx/house.conf
sudo cp /etc/weewx/weewx.conf /etc/weewx/paddock.conf

  1. Verificare le configurazioni del driver. In ogni file di configurazione, assicurati che station_type sia impostato correttamente. In house.conf:
[Station]
        ...
        station_type = Vantage
[Vantage]
        ...

e in paddock.conf:

[Station]
        ...
        station_type = Acurite
[Acurite]
        ...

  1. Verificare le configurazioni del database. In ogni file di configurazione, assicurati che ci sia un database univoco. In house.conf:
[Databases]
        [[archive_sqlite]]
            database_name = house.sdb
            database_type = SQLite
        [[archive_mysql]]
            database_name = house
            database_type = MySQL

e in paddock.conf:

[Databases]
        [[archive_sqlite]]
            database_name = paddock.sdb
            database_type = SQLite
        [[archive_mysql]]
            database_name = paddock
            database_type = MySQL

  1. Verificare le configurazioni dei rapporti. In ogni file di configurazione, assicurati che HTML_ROOT sia univoco. In house.conf:
[StdReport]
        HTML_ROOT = public_html/house
        ...

e in paddock.conf:

[StdReport]
        HTML_ROOT = public_html/paddock
        ...

  1. Configura lo script di avvio.

Se stai utilizzando systemd , consulta i dettagli sulle istanze multiple nella pagina Eseguire Weewx sotto systemd e ignora il resto di questa sezione.

Se stai usando initscripts , usa l'init script weewx-multi per avviare ogni istanza all'avvio del computer. Lo script init weewx-multi può essere trovato in /home/weewx/util/init.d se Weewx è stato installato con l'approccio setup.py. Se Weewx è stato installato come pacchetto, dovrai scaricarlo dal repository GitHub di Weewx.

Per installazioni setup.py:

sudo cp util/init.d/weewx-multi /etc/init.d/weewx
sudo update-rc.d weewx defaults
echo 'WEEWX_INSTANCES="house paddock"' | sudo tee /etc/default/weewx-multi
echo 'WEEWX_CFGDIR=/etc/weewx' | sudo tee -a /etc/default/weewx-multi

Per installazioni con pacchetti:

wget -P /var/tmp https://raw.githubusercontent.com/weewx/weewx/master/util/init.d/weewx-multi
sudo cp /var/tmp/weewx-multi /etc/init.d/weewx
sudo update-rc.d weewx defaults
echo 'WEEWX_INSTANCES="house paddock"' | sudo tee /etc/default/weewx-multi
echo 'WEEWX_CFGDIR=/etc/weewx' | sudo tee -a /etc/default/weewx-multi
echo 'WEEWX_BINDIR=/usr/share/weewx' | sudo tee -a /etc/default/weewx-multi

Avvio e arresto

Ora puoi avviare e arrestare ogni istanza in questo modo:

# Controllare lo stato di ogni istanza
/etc/init.d/weewx status

# Avviare solo l'istanza paddock
sudo /etc/init.d/weewx start paddock

# Riavviare solo l'istanza paddock
sudo /etc/init.d/weewx restart paddock

# Fermare solo l'istanza house
sudo /etc/init.d/weewx stop house

Logging

Le voci di registro per ogni istanza verranno identificate in modo univoco. Ad esempio, le voci di registro dell'istanza house conterranno weewx-house, e le voci di registro dell'istanza paddock saranno identificate da weewx-paddock. Per impostazione predefinita, le voci di registro per ogni istanza verranno scritte nello stesso file di log. Questo può rendere difficile la lettura del file e la risoluzione dei problemi, specialmente se le voci del log di Weewx sono scritte nel log di sistema. Potresti considerare di configurare il sistema di logging per memorizzare le voci di registro di Weewx in un file separato, o anche avere voci di registro per ciascuna istanza di Weewx scritte su file separati. Fai riferimento alla guida Salvare i log in un file separato.

Autore: CameronD73