weather.ini - configurazione del formato del file

Quasi tutta la configurazione di pywws è tramite un unico file nella directory dei dati: weather.ini. Questo file ha una struttura simile a quella del file Microsoft Windows INI. Esso è diviso in «sections»”, ognuna delle quali ha un numero di voci «name = value». L’ordine in cui appaiono spesso delle sezioni non è importante.

Qualsiasi editor di testo può essere utilizzato per modificare il file. (Non provare a modificarlo durante l’esecuzione di qualsiasi altro software pywws). In molti casi sarà pywws inizializzare le voci a valori ragionevoli.

Un altro file, status.ini, viene utilizzato per memorizzare alcune informazioni che pywws utilizza internamente. È descritto alla fine di questo documento. Nell’uso normale non è necessario modificarlo.

Le seguenti sezioni sono attualmente in uso:

  • config: varie configurazioni di sistema.
  • paths: directory in cui sono memorizzati i modelli ecc.
  • live: attività da fare ogni 48 secondi.
  • logged: attività da fare ogni volta la stazione registra un record di dati.
  • cron: tasks to be done at a particular time or date.
  • hourly: attività da fare ogni ora.
  • 12 hourly: attività da fare ogni 12 ore.
  • daily: attività da fare ogni giorno.
  • ftp: configurazione per il caricamento di un sito Web.
  • twitter: configurazione per postare su Twitter
  • underground, metoffice, temperaturnu etc: configurazione di postare sui “services”.

config: varie configurazione di sistema

[config]
ws type = 1080
day end hour = 21
pressure offset = 9.4
gnuplot encoding = iso_8859_1
template encoding = iso-8859-1
language = en
logdata sync = 1
rain day threshold = 0.2
asynchronous = False
usb activity margin = 3.0
gnuplot version = 4.2
frequent writes = False

ws type è il «tipo» della stazione meteo. Esso deve essere impostato 1080 per la maggior parte delle stazioni meteorologiche, o 3080 se la vostra console stazione visualizza illuminazione solare.

day end hour è la fine del «giornata meteorologica», nell’ora locale, senza tenere conto dell’ora legale. Valori tipici sono 21, 9, o 24. È necessario aggiornare tutti i vostri dati memorizzati eseguendo pywws.Reprocess per rielaborare tutto dopo aver modificato questo valore.

pressure offset è la differenza tra la pressione dell’aria assoluta e relativa (al livello del mare). È copiata dalla stazione meteo, supponendo che è stata impostata fino a visualizzare la corretta pressione relativa, ma è possibile modificare il valore in weather.ini per calibrare la vostra stazione. È necessario aggiornare tutti i vostri dati memorizzati tramite l’esecuzione di pywws.Reprocess dopo aver modificato questo valore.

Cambiato nella versione 13.10_r1082: inserito pressure offset un elemento di configurazione. In precedenza è sempre stata letta dalla stazione meteo.

gnuplot encoding è la codifica del testo utilizzato per tracciare i grafici. Il valore predefinito di iso_8859_1 che consente di usare il simbolo del grado, il che è utile per un’applicazione meteo! Altri valori potrebbero essere necessari se la lingua comprende i caratteri accentati. I possibili valori dipendono dalla vostra installazione gnuplot così alcuni esperimenti possono essere necessari.

template encoding è la codifica del testo utilizzato per i modelli. Il valore predefinito è iso-8859-1, che è la codifica utilizzata nell’esempio dei modelli. Se è necessario creare modelli con un diverso set di caratteri, è necessario modificare questo valore in base ai vostri modelli.

language è utilizzata per localizzare pywws. E” facoltativa, siccome pywws solitamente utilizza il computer come lingua di default impostata dalla variabile di ambiente LANG. Le lingue disponibili sono quelle della sottodirectory translations del vostra installazione pywws. Se si imposta un’altra lingua non presente, pywws tornerà in Inglese.

logdata sync imposta la qualità di sincronizzazione utilizzato da pywws.LogData. Impostare a 0 è più veloce ma imprecisa o 1 più lento ma preciso.

rain day threshold è la quantità di pioggia (in mm) che deve cadere in un giorno per poter qualificare come un giorno di pioggia nei dati di riepilogo mensili. È necessario aggiornare tutti i vostri dati memorizzati tramite l’esecuzione di pywws.Reprocess dopo aver modificato questo valore.

Nuovo nella versione 13.09_r1057: asynchrouous controlla l’utilizzo di un processo separato in upload di pywws.LiveLog.

Nuovo nella versione 13.10_r1094: usb activity margin controlla l’algoritmo che evita il problema «USB lockup» che colpisce alcune stazioni. Imposta un numero di secondi su entrambi i lati in attesa di attività della stazione (ricevendo una lettura dall’esterno o la registrazione di una lettura) finchè pywws non ottiene i dati dalla stazione. Se la stazione non è interessato dal problema blocco USB è possibile impostare usb activity margin to 0.0.

Nuovo nella versione 13.11_r1102: gnuplot version dice pywws.Plot e pywws.WindRose quale versione di gnuplot è installata sul tuo computer. Questo permette loro di utilizzare le caratteristiche specifiche della versione per dare una migliore qualità di stampa.

Nuovo nella versione 14.01_r1133: frequent writes tells pywws.Tasks to save weather data and status to file every time there is new logged data. The default is to save the files every hour, to reduce «wear» on solid state memory such as the SD cards used with Raspberry Pi computers. If your weather data directory is stored on a conventional disc drive you can set frequent writes to True.

paths: directory in cui sono memorizzati modelli ecc.

[paths]
templates = /home/$USER/weather/templates/
graph_templates = /home/$USER/weather/graph_templates/
user_calib = /home/$USER/weather/modules/usercalib
work = /tmp/weather
local_files = /home/$USER/weather/results/

Queste tre voci specificano dove i tuoi modelli testo e modelli di grafici vengono archiviati, dove devono essere creati i file temporanei, dove l’output dei file (che non sono stati caricati) dovrebbe essere messo e (se ne hai uno) la posizione del tuo modulo di calibrazione.

live: attività da fare ogni 48 secondi

[live]
services = ['underground_rf']
text = [('yowindow.xml', 'L')]
plot = []

This section specifies tasks that are to be carried out for every data sample during “live logging”, i.e. every 48 seconds.

services is a list of “services” to upload data to. Each one listed must have a configuration file in pywws/services/. See ../api/pywws.toservice for more detail. pywws will automatically limit the frequency of service uploads according to each service’s specification.

text and plot sono elenchi di modelli di testo e grafici che devono essere elaborati ed, opzionalmente, caricati sul tuo sito Web.

Cambiato nella versione 13.05_r1013: aggiunto il modello 'yowindow.xml'. Precedentemente il file yowindow era generato da un modulo separato, richiamato dalla voce yowindow nella sezione [live]. La sintassi precedente funziona ancora, ma è obsoleta.

logged: attività da fare ogni volta la stazione registra un record di dati

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

Questa sezione specifica le attività che devono essere effettuate ogni volta che viene registrato un record di dati in modalità “live logging” o ogni volta che viene eseguito un attività di cron.

services è un elenco di “servizi” per caricare i dati. Ognuno qui elencato deve avere un file di configurazione pywws/services/. See ../api/pywws.toservice per ulteriori dettagli.

text and plot sono elenchi di modelli di testo e grafici che devono essere elaborati ed, opzionalmente, caricati sul tuo sito Web.

cron: tasks to be done at a particular time or date

Nuovo nella versione 14.05.dev1211.

[cron prehourly]
format = 59 * * * *
plot = [('tweet.png.xml', 'L')]
services = []
text = []

[cron hourly]
format = 0 * * * *
plot = ['7days.png.xml', '2014.png.xml', '24hrs.png.xml', 'rose_12hrs.png.xml']
text = [('tweet.txt', 'T'), '24hrs.txt', '6hrs.txt', '7days.txt', '2014.txt']
services = []

[cron daily 9]
format = 0 9 * * *
plot = ['28days.png.xml']
text = [('forecast.txt', 'T'), 'forecast_9am.txt', 'forecast_week.txt']
services = []

[cron daily 21]
format = 0 21 * * *
text = ['forecast_9am.txt']
services = []
plot = []

[cron weekly]
format = 0 9 * * 6
plot = ['2008.png.xml', '2009.png.xml', '2010.png.xml', '2011.png.xml',
        '2012.png.xml', '2013.png.xml']
text = ['2008.txt', '2009.txt', '2010.txt', '2011.txt', '2012.txt', '2013.txt']
services = []

[cron name] sections provide a very flexible way to specify tasks to be done at a particular time and/or date. name can be anything you like, but each [cron name] section must have a unique name.

To use [cron name] sections you need to install the «croniter» package. See Dipendenze for more detail.

format specifies when the tasks should be done (in local time), in the usual crontab format. (See man 5 crontab on any Linux computer.) Processing is not done exactly on the minute, but when the next live or logged data arrives.

hourly: le attività da fare ogni ora

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

Questa sezione specifica le attività che devono essere eseguite ogni ora in modalità “live logging” o l’esecuzione oraria di un attività di cron.

services è un elenco di “servizi” per caricare i dati. Ognuno qui elencato deve avere un file di configurazione pywws/services/. See ../api/pywws.toservice per ulteriori dettagli.

text and plot sono elenchi di modelli di testo e grafici che devono essere elaborati ed, opzionalmente, caricati sul tuo sito Web.

Cambiato nella versione 13.06_r1015: Aggiunto il flag 'T'. Precedentemente i modelli Twitter sono stati indicati separatamente in voci twitter in [hourly] e di altre sezioni. La sintassi precedente funziona ancora, ma è obsoleta.

12 hourly: le attività da fare ogni 12 ore

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

This section specifies tasks that are to be carried out every 12 hours when “live logging” or running an hourly cron job. Use it for things that don’t change very often, such as monthly graphs. The tasks are done at your day end hour, and 12 hours later.

services è un elenco di “servizi” per caricare i dati. Ognuno qui elencato deve avere un file di configurazione pywws/services/. See ../api/pywws.toservice per ulteriori dettagli.

text and plot sono elenchi di modelli di testo e grafici che devono essere elaborati ed, opzionalmente, caricati sul tuo sito Web.

daily: le attività da fare ogni 24 ore

[daily]
services = []
text = ['feed_daily.xml']
plot = ['2008.png.xml', '2009.png.xml', '2010.png.xml', '28days.png.xml']

This section specifies tasks that are to be carried out every day when “live logging” or running an hourly cron job. Use it for things that don’t change very often, such as monthly or yearly graphs. The tasks are done at your day end hour.

services è un elenco di “servizi” per caricare i dati. Ognuno qui elencato deve avere un file di configurazione pywws/services/. See ../api/pywws.toservice per ulteriori dettagli.

text and plot sono elenchi di modelli di testo e grafici che devono essere elaborati ed, opzionalmente, caricati sul tuo sito Web.

ftp: configurazione di caricamento su un sito web

[ftp]
local site = False
secure = False
site = ftp.your_isp.co.uk
user = username
password = userpassword
directory = public_html/weather/data/
port = 21

Queste voci forniscono i dettagli del sito web (o delle directory locali) in cui processare i file di testo e le immagini grafiche che devono essere trasferite.

local site Specifica se il file deve essere copiato in una directory locale o inviato a un sito remoto. È possibile impostare questa opzione se si esegue il server web sulla stessa macchina di pywws.

secure specifies whether to transfer files using SFTP (secure FTP) instead of the more common FTP. Your web site provider should be able to tell you if you can use SFTP. Note that you may need to change the port value when you change to or from secure mode.

site è l’indirizzo web del sito FTP dove trasferire i file.

user e password sono i dati di login del sito FTP. Il provider del sito web dovrebbe avere comunicato a voi.

privkey is the path to a private SSH-key. For SFTP (secure FTP) this can be used for authentication instead of a password, which offers additional benefits in terms of security. When this is used the password-parameter can be left empty.

directory specifica il percorso sul sito FTP (o il file system locale) dove devono essere memorizzati i file. Nota che si potrebbe avere la necessità di sperimentare un po” - potrebbe essere necessario un carattere “/” all’inizio del percorso.

Nuovo nella versione 13.12.dev1120: port specifies the port number to use. Default value is 21 for FTP, 22 for SFTP. Your web site provider may tell you to use a different port number.

twitter: Configurazione della pubblicazione su Twitter

[twitter]
secret = longstringofrandomcharacters
key = evenlongerstringofrandomcharacters
latitude = 51.365
longitude = -0.251

secret and key sono i dati di autenticazione forniti da Twitter. Per averli, usa il programma pywws.TwitterAuth.

latitude and longitude sono i dati di posizione facoltativi. Se si include la vostra stazione meteo tweet avrà informazioni sulla posizione in modo che gli utenti possano vedere dov’è la vostra stazione meteo. Potrebbe anche consentire alle persone di trovare la vostra stazione meteo tweet se si cerca per località.

underground, metoffice, temperaturnu ecc: Configurazione della pubblicazione su “servizi”

[underground]
station = IXYZABA5
password = secret

Queste sezioni contengono informazioni quali password e ID stazione necessari per caricare i dati in servizi meteorologici. I nomi dei dati dipendono dal servizio. L’esempio illustrato è per Weather Underground.

station Il PWS ID (identificativo della stazione) assegnato alla stazione meteo da Weather Underground.

password è la tua password di Weather Underground.

status.ini - formato del file di stato

Questo file è stato scritto da pywws e non dovrebbe (solitamente) essere modificato. Le seguenti sezioni che sono attualmente in uso:

  • fixed: valori copiati dalla stazione meteorologica «fixed block».
  • clock: informazioni di sincronizzazione.
  • last update: data e ora del completamento delle attività più recenti.

fixed: valori copiati dalla stazione meteorologica «fixed block».

[fixed]
fixed block = {...}

fixed block tutti i dati memorizzati nei primi 256 byte di memoria della stazione. Questo include i valori massimi e minimi, impostazioni di soglia di allarme, unità di visualizzazione e così via.

clock: informazioni di sincronizzazione

[clock]
station = 1360322930.02
sensor = 1360322743.69

Questi valori sono i tempi misurati quando l’orologio della stazione registra alcuni dati e quando i sensori esterni trasmettono un nuovo set di dati. Essi sono utilizzati per cercare di impedire che l’interfaccia USB si blocca se il computer accede alla stazione meteo al tempo stesso di uno di questi eventi, è un problema comune a molte stazioni compatibile con EasyWeather. I tempi sono misurati ogni 24 ore per consentire la deriva negli orologi.

last update: data e ora del completamento delle attività più recenti

[last update]
hourly = 2013-05-30 19:04:15
logged = 2013-05-30 19:04:15
daily = 2013-05-30 09:04:15
openweathermap = 2013-05-30 18:59:15
underground = 2013-05-30 18:58:34
metoffice = 2013-05-30 18:59:15
12 hourly = 2013-05-30 09:04:15

Questi record data & ora sono dell’ultimo completamento riuscito delle varie attività. Essi sono utilizzati per consentire alle attività infruttuose (per esempio mancanza di rete prevenzione upload) ad essere riprovata dopo pochi minuti.


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