### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Programmi Python e moduli »

# pywws.toservice

Posta gli aggiornamenti delle condizioni meteo a servizi come Weather Underground

    usage: python -m pywws.toservice [options] data_dir service_name
    options are:
     -h or --help     display this help
     -c or --catchup  upload all data since last upload
     -v or --verbose  increase amount of reassuring messages
    data_dir is the root directory of the weather data
    service_name is the service to upload to, e.g. underground

## Introduzione

Diverse organizzazioni consentono alle stazioni meteorologiche di caricare i dati utilizzando un semplice HTTP ‘POST’ o ‘GET’ richiesta, con i dati codificati come una sequenza di coppie `key=value` separate dal carattere &.

Questo modulo permette a pywws di caricare letture a queste organizzazioni. E ‘altamente personalizzabile utilizzando i file di configurazione. Ogni ‘servizio’ richiede un file di configurazione e di due modelli in `pywws/services` (Che non dovrebbe essere necessario modificare dall’utente) e una sezione in `weather.ini` contenente i dati specifici dell’utente, quali l’ID del sito e la password.

Attualmente ci sono sei servizi per i quali i file di configurazione sono stati scritti.

ente | nome del servizio | file di configurazione
--- | --- | ---
UK Met Office | `metoffice` | `../../pywws/services/metoffice.ini`
Open Weather Map | `openweathermap` | `../../pywws/services/openweathermap.ini`
PWS Weather | `pwsweather` | `../../pywws/services/pwsweather.ini`
Stacja Pogody | `stacjapogodywawpl` | `../../pywws/services/stacjapogodywawpl.ini`
temperatur.nu | `temperaturnu` | `../../pywws/services/temperaturnu.ini`
Weather Underground | `underground` | `../../pywws/services/underground.ini`
wetter.com | `wetterarchivde` | `../../pywws/services/wetterarchivde.ini`

## Configurazione

Se non lo hai già fatto, visitate il sito web dell’organizzazione e creare un account per la vostra stazione meteo. Prendere nota di qualsiasi ID del sito e la password che vi vengono dati.

Interrompere qualsiasi software Pywws che è in esecuzione, quindi esegui `toservice` per creare una sezione in `weather.ini`:

    python -m pywws.toservice data_dir service_name

`service_name` è un nome (singola parola) del servizio, ad esempio `metoffice`, `data_dir` è la directory dei dati meteo, come al solito.

Modificare `weather.ini` e trovare la sezione corrispondente al nome del servizio, ad esempio `[underground]`. Copiare i dettagli del tuo sito in questa sezione, ad esempio:

    [underground]
    password = secret
    station = ABCDEFG1A

Ora si può verificare la configurazione:

    python -m pywws.toservice -vvv data_dir service_name

Questo dovrebbe mostrare la stringa di dati che viene caricata. Qualsiasi inconveniente dovrebbe generare un messaggio di errore.

## Carica i dati vecchi

Ora potete caricare il vostri ultimi 7 giorni di dati, se il servizio lo supporta. Modifica il tuo file `status.ini` e cancella la riga relativa nella sezione `last update`, quindi eseguire di nuovo `toservice` con l’opzione ‘catchup’:

    python -m pywws.toservice -cvv data_dir service_name

Questo può durare 20 minuti o più, a seconda della quantità di dati.

## Aggiungere servizi di upload ad intervalli regolari

Modificare nuovamente il file `weather.ini` e aggiungere un elenco dei servizi per nella sezione `[live]`, `[logged]`, `[hourly]`, `[12 hourly]` o ``[daily]`, a seconda di quante volte si desidera inviare i dati. Ad esempio:

    [live]
    twitter = []
    plot = []
    text = []
    services = ['underground_rf']

    [logged]
    twitter = []
    plot = []
    text = []
    services = ['metoffice', 'stacjapogodywawpl']

    [hourly]
    twitter = []
    plot = []
    text = []
    services = ['underground']

Si noti che la sezione `[live]` viene utilizzata solo quando si esegue `LiveLog`. È una buona idea di ripetere qualsiasi servizio selezionato in `[live]` nella sezione `[logged]` o `[hourly]` nel caso in cui si passa all’ esecuzione di `Hourly`.

Riavviare il programma pywws (`Hourly` o `LiveLog`) e visitare il sito web appropriato per vedere gli aggiornamenti per la tua stazione meteo.

## API

Funzioni

`ApplicationLogger`(verbose[, logfile]) |
`main`([argv]) |

Classi

`SafeConfigParser`([defaults, dict_type, ...]) |
`ToService`(params, status, calib_data, ...) | Carica dati meteo a servizi meteorologici quali Meteo
`datetime` | datetime(year, month, day[, hour[, minute[, second[, microsecond[,tzinfo]]]]])
`timedelta` | Differenza tra due valori datetime.

class `pywws.toservice.``ToService`(params, status, calib_data, service_name)

  Carica dati meteo a servizi meteorologici come Weather Underground.

  Parametri: | params (`pywws.DataStore.params`) – pywws configuration. status (`pywws.DataStore.status`) – pywws status store. calib_data (`pywws.DataStore.calib_store`) – ‘calibrated’ data. service_name (string) – name of service to upload to.

  `encode_data`(data)

    Codificare un record di dati meteo.

    Il parametro `data` contiene i dati da codificare. Dovrebbe essere un record di dati ‘calibrato’, memorizzato in `pywws.DataStore.calib_store`.

    Parametri: | data (dict) – the weather data record.
    Ritorna: | urlencoded data.
    Tipo di ritorno:
    | string

  `send_data`(coded_data)

    Carica un set di dati meteo.

    Il parametro `coded_data` contiene i dati da caricare. Dovrebbe essere una stringa url codificata.

    Parametri: | coded_data – the data to upload.
    Ritorna: | success status
    Tipo di ritorno:
    | bool

  `next_data`(start, live_data)

    Riceve i record di dati meteo da caricare .

    Questo metodo restituisce i record meteo più recenti oppure tutti i record di un oggetto datetime, secondo il valore di `start`.

    Parametri: | start (datetime) – datetime of first record to get, or None to get most recent data only. live_data (dict) – a current ‘live’ data record, or None.
    Ritorna: | yields weather data records.
    Tipo di ritorno:
    | dict

  `set_status`(timestamp)
  `catchup_start`()

    Ottiene data e ora del primo ‘catchup’ record per inviare.

    Tipo di ritorno:
    | datetime

  `Upload`(catchup=True, live_data=None)

    Caricare uno o più record di dati meteorologici.

    Questo metodo carica o il più recente record di dati meteo, o tutti i record dopo l’ultimo caricamento (fino a 7 giorni), secondo il valore di `catchup`.

    Imposta il valore di configurazione `last update` il timestamp del record più recente correttamente caricato.

    Parametri: | catchup (bool) – upload all data since last upload.
    Ritorna: | success status
    Tipo di ritorno:
    | bool

`pywws.toservice.``main`(argv=None)

### Navigazione

- indice
- moduli |
- successivo |
- precedente |
- pywws 13.12.dev1118 documentation »
- Programmi Python e moduli »