### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Guide per gli utenti »

# Come impostare ‘hourly’ per la registrazione oraria con pywws

## Introduzione

Ci sono due abbastanza differenti modalità di funzionamento con pywws. Tradizionalmente con `Hourly` viene eseguito a intervalli regolari (di solito un’ora) da cron. Questo è adatto per siti Web abbastanza statici, ma aggiornamenti più frequenti possono essere utili per i siti come Weather Underground (http://www.wunderground.com/). Il più recente programma `LiveLog` gira continuamente e può i caricare dati ogni 48 secondi.

Nota che sebbene questo documento (e il nome del programma) si riferisce alla registrazione ‘hourly’(‘oraria’), è possibile eseguire `Hourly` come più frequente o meno come ti piace, ma non cercare di eseguirlo più frequente per raddoppiare l’intervallo di registrazione. Ad esempio, se l’intervallo di registrazione è di 10 minuti, non eseguire `Hourly` più frequente che ogni 20 minuti.

## Guida introduttiva

Prima di tutto, è necessario installare pywws e assicurarsi che si possono ottenere i dati dalla tua stazione meteo. Vedere Come iniziare con pywws per i dettagli.

Esecuzione una prova con `Hourly` dalla riga di comando, con un alto livello di verbosità in modo da poter vedere ciò che sta accadendo:

    python -m pywws.Hourly -vvv ~/weather/data

Entro cinque minuti (supponendo di aver impostato un intervallo di registrazione di 5 minuti) si dovrebbe vedere un messaggio ‘live_data new ptr’, seguita dal recupero di eventuali nuovi dati dalla stazione meteo ed elaborarli.

## Percorsi dei file di configurazione

Aprire il file weather.ini con un editor di testo. Si dovrebbe avere una sezione di `[paths]` simile al seguente (dove `xxx` è il tuo nome utente):

    [paths]
    work = /tmp/weather
    templates = /home/xxx/weather/templates/
    graph_templates = /home/xxx/weather/graph_templates/
    local_files = /home/xxx/weather/results/

Modificare queste per soddisfare le vostre preferenze di installazione. `work` è una directory temporanea utilizzata per archiviare i file intermedi, `templates` è la directory per i tuoi file modello di testo e `graph_templates` è la directory per i tuoi file grafici di modello e `local_files` è una directory dove viene messo l’output del modello che non è stato caricato in un sito web. Non usare le directory di esempio pywws per questi, perchè saranno sovrascritti quando si aggiorna pywws.

Copiare i modelli di testo e grafico nelle directory appropriate. Si possono trovare alcuni esempi forniti con pywws utili per iniziare. Se hai installato pywws con `pip` gli esempi dovrebbero essere in `/usr/share/pywws` o `/usr/local/share/pywws` o simili.

## Configurazione dell’esecuzione periodica

In weather.ini si dovrebbe avere le sezioni `[logged]`, `[hourly]`, `[12 hourly]` e `[daily]` simili ai seguenti:

    [logged]
    services = []
    plot = []
    text = []

    [hourly]
    ...

Questo specifica cosa `Hourly` dovrebbe fare quando viene eseguito. Attività nella sezione `[logged]` vengono eseguite ogni volta che ci nuovi dati registrati, le attività nella sezione `[hourly]` vengono effettuate ogni ora, le attività nella sezione `[12 hourly]` vengono eseguite due volte al giorno e le attività nella sezione `[daily]` vengono eseguite una volta al giorno.

La voce `services` è un elenco di servizi meteo online per inviare i dati meteo. Le voci `plot` e `text` sono elenchi di file di modello grafico e file di testo per essere elaborati e, opzionalmente, caricati su un sito web. Aggiungere i nomi dei file di modello e servizi meteo alle voci appropriate, ad esempio:

    [logged]
    services = ['underground', 'metoffice']
    plot = []
    text = []

    [hourly]
    services = []
    plot = ['7days.png.xml', '24hrs.png.xml', 'rose_24hrs.png.xml']
    text = [('tweet.txt', 'T'), '24hrs.txt', '6hrs.txt', '7days.txt']

    [12 hourly]
    services = []
    plot = []
    text = []

    [daily]
    services = []
    plot = ['28days.png.xml']
    text = [('forecast.txt', 'T'), 'allmonths.txt']

Si noti l’uso del flag `'T'` – questo dice a pywws si inviare il risultato a Twitter invece di caricarlo sul proprio sito ftp.

È possibile verificare che tutti questi stiano lavorando rimuovendo tutte le linee `last update` da status.ini, quindi eseguire nuovamente `Hourly`:

    python -m pywws.Hourly -v ~/weather/data

Cambiato nella versione 13.06_r1015: added the `'T'` flag. Previously Twitter templates were listed separately in `twitter` entries in the `[hourly]` and other sections. The older syntax still works, but is deprecated.

Cambiato nella versione 13.05_r1009: The last update information was previously stored in weather.ini, with `last update` entries in several sections.

## Utilizzare gli script di utilità

L’installazione di pywws include un breve script `pywws-hourly.py` che viene installato nel `/usr/bin` o `/usr/local/bin` o simili. Si dovrebbe essere in grado di utilizzare questo script per eseguire `Hourly`:

    pywws-hourly.py -v ~/weather/data

## Eseguire con cron job

La maggior parte dei sistemi UNIX/Linux hanno un demone ‘cron’ che può eseguire programmi in certi momenti, anche se non si è connessi al computer. Si modifica un file ‘crontab’ per specificare cosa eseguire e quando per farlo funzionare. Ad esempio, per eseguire `Hourly` a zero minuti di ogni ora:

    0 * * * *       pywws-hourly.py /home/jim/weather/data

Questo potrebbe funzionare, ma probabilmente non sarà possibile ottenere eventuali messaggi di errore per dirvi che cosa è andato storto. È molto meglio eseguire uno script che esegue `Hourly` e poi invia tramite e-mail qualsiasi output prodotto. Ecco lo script che uso:

    #!/bin/sh
    #
    # weather station logger calling script

    if [ ! -d /data/weather/ ]; then
      exit
      fi

    log=/var/log/log-weather

    pywws-hourly.py -v /data/weather >$log 2>&1

    # mail the log file
    /home/jim/scripts/email-log.sh $log "weather log"

Sarà necessario modificare questo file un bel pò per soddisfare i vostri percorsi di file e così via, ma dà un’idea di cosa fare.

Commenti o domande? Si prega di iscriversi per al mailing list pywws http://groups.google.com/group/pywws e facci sapere.

### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Guide per gli utenti »