
pywws.toservice
***************

Poster des mise à jour météo pour des services tels que Weather
Underground

   usage: python RunModule.py 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


Introduction
============

Plusieurs organisations permettent aux stations météorologiques de
télécharger des données en utilisant une simple requête 'POST' ou
'GET' HTTP, avec les données codées comme une séquence "clé=valeur ``
séparées par des paires de caractères ``&".

Ce module permet à pywws de téléverser les données lues à ces
organisations. Il est hautement personnalisable en utilisant les
fichiers de configuration. Chaque 'service' nécessite un fichier de
configuration et de deux gabarits dans "pywws/services" (ne devrait
pas avoir besoin d'être modifié par l'utilisateur) et une section dans
le fichier "weather.ini" contenant des données spécifiques sur
l'utilisateur telles que votre identificateur de site et le mot de
passe.

Il existe actuellement six services pour lesquels des fichiers de
configuration ont été créés.

+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| organisation                                                            | service name            | fichier de configuration                                     |
+=========================================================================+=========================+==============================================================+
| UK Met Office                                                           | "metoffice"             | "../../code/pywws/services/metoffice.ini"                    |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| Open Weather Map                                                        | "openweathermap"        | "../../code/pywws/services/openweathermap.ini"               |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| Stacja Pogody                                                           | "stacjapogodywawpl"     | "../../code/pywws/services/stacjapogodywawpl.ini"            |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| temperatur.nu                                                           | "temperaturnu"          | "../../code/pywws/services/temperaturnu.ini"                 |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| Weather Underground                                                     | "underground"           | "../../code/pywws/services/underground.ini"                  |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+
| wetter.com                                                              | "wetterarchivde"        | "../../code/pywws/services/wetterarchivde.ini"               |
+-------------------------------------------------------------------------+-------------------------+--------------------------------------------------------------+


Configuration
=============

Si vous ne l'avez pas déjà fait, visitez le site Web de l'organisation
et créez un compte pour votre station météo. Prenez note de tous les
détails d'identification du site et du mot de passe vous ayant été
donnés.

Stop any pywws software that is running and then run "toservice" to
create a section in "weather.ini":

   python RunModule.py toservice data_dir service_name

"service_name" est le nom de services en un seul mot, tels que
"metoffice", "data_dir" est votre répertoire de données météo, comme
d'habitude.

Editer le fichier "weather.ini" et trouver la section correspondant au
nom du service, par exemple, "[underground]". Copier les détails de
votre site dans cette section, par exemple:

   [underground]
   password = secret
   station = ABCDEFG1A

Maintenant, vous pouvez tester votre configuration:

   python RunModule.py toservice -vvv data_dir service_name

Celà devrait vous afficher la chaîne de données qui est téléversé.
Tout manquement devrait générer un message d'erreur.


Téléverser les anciennes données
================================

Now you can upload your last 7 days' data, if the service supports it.
Edit your "weather.ini" file and remove the "last update" line from
the appropriate section, then run "toservice" with the catchup option:

   python RunModule.py toservice -cvv data_dir service_name

Cela peut prendre 20 minutes ou plus, en fonction de la quantité de
données que vous avez.


Ajoutez le(s) téléversement de(s) service(s) aux tâches régulières
==================================================================

Modifiez votre fichier "weather.ini" de nouveau et ajoutez une liste
de services dans la section "[live]", "[logged]", "[hourly]", "[12
hourly]" ou "[daily]", en fonction de la fréquence à laquelle vous
souhaitez envoyer les données. Par exemple:

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

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

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

Notez que la section "[live]" n'est utilisée que lors de l'exécution
de "LiveLog.py". C'est une bonne idée de répéter tout service
sélectionné dans "[live]" dans la section "[connecté]" ou "[hourly]"
au cas où vous passez au fonctionnement "horaires".

Redémarrez votre programme pywws régulier  ("Hourly" ou "LiveLog") et
visitez le site Web approprié pour voir les mises à jour régulières de
votre station météo.


Notes sur les services
======================


UK Met Office
-------------

* Créer un compte: https://register.metoffice.gov.uk/WaveRegistrationC
  lient/public/register.do?service=weatherobservations

* API:
  http://wow.metoffice.gov.uk/support?category=dataformats#automatic

* Exemple "weather.ini" section:

     [metoffice]
     site id = 12345678
     aws pin = 987654


Open Weather Map
----------------

* Créer un compte: http://openweathermap.org/login

* API: http://openweathermap.org/API

* Exemple "weather.ini" section:

     [openweathermap]
     lat = 51.501
     long = -0.142
     alt = 10
     user = Elizabeth Windsor
     password = corgi
     id = Buck House

Le comportement par défaut est d'utiliser votre nom d'utilisateur pour
identifier la station météo. Cependant, il est possible pour un
utilisateur d'avoir plus d'une station météo, il y a donc un
paramètre``name`` dans l'API qui peut être utilisé pour identifier la
station. Cela apparaît comme "id" dans "weather.ini". Assurez-vous que
vous ne choisissez pas un nom qui est déjà utilisé.


Weather Underground
-------------------

* Créer un compte: http://www.wunderground.com/members/signup.asp

* API:
  http://wiki.wunderground.com/index.php/>>PWS_<<-_Upload_Protocol

* Exemple "weather.ini" section:

     [underground]
     station = ABCDEFGH1
     password = xxxxxxx


API
===

-[ Classes ]-

+------------+--------------------------------------------------------------------------------------------+
| "ToService | Téléverse les données météo pour les services météorologiques tels que Weather             |
+------------+--------------------------------------------------------------------------------------------+

class class pywws.toservice.ToService(params, calib_data, service_name=None)

   Téléverse les données météo pour les services météorologiques tels
   que Weather Underground.

   Paramètres:
      * **params** ("pywws.DataStore.params") -- pywws configuration.

      * **calib_data** ("pywws.DataStore.calib_store") -- 'calibrated'
        data.

      * **service_name** (*string*) -- name of service to upload to.

   translate_data(current, fixed_data)

      Convertir un enregistrement de données météorologiques en format
      à téléverser.

      Le paramètre "current" contient les données à envoyer. Il
      devrait y avoir un enregistrement de données 'calibré', tels que
      stockés dans "pywws.DataStore.calib_store".

      Le paramètre "fixed_data" contient des données invariables qui
      sont dépendantes du site, par exemple un code d'identification
      et des données d'authentification.

      Paramètres:
         * **current** (*dict*) -- the weather data record.

         * **fixed_data** (*dict*) -- unvarying upload data.

      Retourne:
         converted data, or "None" if invalid data.

      Type retourné:
         dict(string)

   send_data(data, server, fixed_data)

      Téléverse un enregistrement de données météo.

      Le paramètre "data" contient les données à être téléversées. Il
      devrait y avoir un enregistrement 'calibré' de données, tels que
      stockés dans "pywws.DataStore.calib_store".

      Le paramètre "fixed_data" contient des données invariables qui
      sont dépendantes du site, par exemple un code d'identification
      et des données d'authentification.

      Paramètres:
         * **data** (*dict*) -- the weather data record.

         * **server** (*string*) -- web address to upload to.

         * **fixed_data** (*dict*) -- unvarying upload data.

      Retourne:
         success status

      Type retourné:
         bool

   Upload(catchup)

      Upload one or more weather data records.

      Cette méthode téléverse le plus récent enregistrement de données
      météo ou tous les enregistrements depuis le dernier
      téléchargement (jusqu'à 7 jours), selon la valeur de "catchup".

      Il définit la valeur de configuration "last update" à
      l'horodatage de l'enregistrement le plus récent correctement
      téléversé.

      Paramètres:
         **catchup** (*bool*) -- upload all data since last upload.

      Retourne:
         success status

      Type retourné:
         bool

   RapidFire(data, catchup)

      Upload a 'Rapid Fire' weather data record.

      Cette méthode téléverse un enregistrement de données unique
      (généralement celui qui est produit pendant l'enregistrement
      'live') ou tous les enregistrements depuis le dernier
      téléversement (jusqu'à 7 jours), selon la valeur de "catchup".

      Il définit la valeur de configuration "last update" à
      l'horodatage de l'enregistrement le plus récent correctement
      téléversé.

      Le paramètre "data" contient les données à être téléversées. Il
      devrait y avoir un enregistrement 'calibré' de données, tels que
      stockés dans "pywws.DataStore.calib_store".

      Paramètres:
         * **data** (*dict*) -- the weather data record.

         * **catchup** (*bool*) -- upload all data since last upload.

      Retourne:
         success status

      Type retourné:
         bool

pywws.toservice.main(argv=None)
