Comment démarrer avec pywws

Installation

Vous devez d’abord installer Python et une bibliothèque USB (pour permettre à Python d’accéder à la station météo). Voir Pré-requis pour plus d’informations.

Créer un dossier pour tous vos fichiers reliés à la météo et vous positionner dans ce dossier. Par exemple (avec un système d’exploitation Linux ou similaire):

mkdir ~/weather
cd ~/weather

Installation facile

Le plus simple consiste à installer pywws avec la commande pip:

sudo pip install pywws

La mise à niveau de pywws est également une commande d’une seule ligne:

sudo pip install -U pywws

Vous êtes maintenant prêt pour Tester la connexion de la station météo..

Téléchargement et extraction

If you prefer not to use pip, or you want easy access to the pywws source files (e.g. to translate the documentation – see Comment utiliser pywws dans une autre langue), you can download and extract the files into your weather directory.

Visit http://pypi.python.org/pypi/pywws/ and download one of the .tar.gz or .zip files. Put it in your weather directory, then extract all the files, for example:

cd ~/weather
tar zxvf pywws-14.03.dev1178.tar.gz

ou:

cd ~/weather
unzip pywws-14.03.dev1178.zip

This should create a directory (called pywws-14.03.dev1178 in this example) containing all the pywws source files. It is convenient to create a soft link to this awkwardly named directory:

cd ~/weather
ln -s pywws-14.03.dev1178 pywws

Upgrading a downloaded snapshot is the same process as the first installation. Download the .tar.gz or .zip file, extract its contents, then delete the soft link pointing to the old download and create one pointing to the new download. Once you are satisfied the new version is working OK you can delete the old download entirely.

Cloner l’entrepôt

The PyPI files contain a snapshot release of the software - a new one is issued every few months. If you want to use the very latest version of pywws, e.g. to work on fixing a bug, you can get all the files you need from the GitHub repository. Install git and use it to clone the repos:

cd ~/weather
git clone https://github.com/jim-easterbrook/pywws.git

To upgrade you use git to pull any changes:

cd ~/weather/pywws
git pull

Install pywws

If you have downloaded or cloned the pywws source files, you need to use setup.py to install it:

cd ~/weather/pywws
python setup.py compile_catalog
python setup.py build
sudo python setup.py install

The python setup.py compile_catalog step is only needed if you want to use pywws in a language other than English. See Test the pywws translations for more detail.

Note to Python 3 users: this will generate and use Python 3 versions of the pywws software in ~/weather/pywws/build/lib.

Compile documentation (optional)

If you’d like to have a local copy of the pywws documentation (and have downloaded the source or cloned the repo) you can « compile » the English documentation. This requires the sphinx package:

cd ~/weather/pywws
python setup.py build_sphinx

Compiling the documentation in another language requires the additional step of compiling the translation files, which requires the sphinx-intl package. For example, to compile the French documentation:

cd ~/weather/pywws
sphinx-intl build --locale-dir src/pywws/lang -l fr
LANG=fr python setup.py build_sphinx

The compiled documentation should then be found at ~/weather/pywws/doc/html/index.html. See Comment utiliser pywws dans une autre langue for more detail.

Tester la connexion de la station météo.

Now you’re ready to test your pywws installation. Connect the weather station (if not already connected) then run the pywws.TestWeatherStation module:

pywws-testweatherstation

Si tout fonctionne correctement, vous devriez voir apparaitre un lot de chiffres ressemblant à ceci:

0000 55 aa ff ff ff ff ff ff ff ff ff ff ff ff ff ff 05 20 01 51 11 00 00 00 81 00 00 0f 00 00 60 55
0020 ea 27 a0 27 00 00 00 00 00 00 00 10 10 12 13 45 41 23 c8 00 32 80 47 2d 2c 01 2c 81 5e 01 1e 80
0040 96 00 c8 80 a0 28 80 25 a0 28 80 25 03 36 00 05 6b 00 00 0a 00 f4 01 18 03 00 00 00 00 00 00 00
0060 00 00 4e 1c 63 0d 2f 01 73 00 7a 01 47 80 7a 01 47 80 e4 00 00 00 71 28 7f 25 bb 28 bd 25 eb 00
0080 0c 02 84 00 0e 01 e3 01 ab 03 dc 17 00 10 08 21 08 54 10 03 07 22 18 10 08 11 08 30 10 04 21 16
00a0 26 08 07 24 17 17 08 11 01 06 10 09 06 30 14 29 09 01 06 07 46 09 06 30 14 29 09 01 06 07 46 08
00c0 08 31 14 30 10 05 14 15 27 10 01 26 20 47 09 01 23 05 13 10 01 26 20 47 09 01 23 05 13 10 02 22
00e0 11 06 10 02 22 11 06 08 07 07 19 32 08 12 13 22 32 08 09 07 08 48 01 12 05 04 43 10 02 22 14 43

Si ce test ne fonctionne pas, plusieurs facteurs peuvent être en cause, mais le plus courant est un problème de “permissions”; ce qui peut être vérifié en exécutant la commande suivante avec les droits “root”:

sudo pywws-testweatherstation

If this works then you may be able to allow your normal user account to access the weather station by setting up a “udev” rule. The exact method may depend on your Linux version, but this is typically done by creating a file /etc/udev/rules.d/39-weather-station.rules containing the following:

ACTION!="add|change", GOTO="weatherstation_end"
SUBSYSTEM=="usb", ATTRS{idVendor}=="1941", ATTRS{idProduct}=="8021", GROUP="weatherstation"
LABEL="weatherstation_end"

Unplug and replug the station’s USB connection to force udev to apply the new rule. This allows any user in the group weatherstation to access the weather station. You need to create this group and add your normal user account to it – many Linux systems have a GUI for user and group management.

Pour tout autre problème, n’hésitez pas à demander de l’aide sur la liste de publipostage de pywws: http://groups.google.com/group/pywws

Configurer votre station météo.

If you haven’t already done so, you should set your weather station to display the correct relative atmospheric pressure. (See the manual for details of how to do this.) pywws gets the offset between relative and absolute pressure from the station, so this should be set before using pywws.

Vous pouvez obtenir la bonne pression relative de votre emplacement en recherchant sur Internet des rapports météorologiques d’une station à proximité, idéalement une source officielle, tel un aéroport. Il est préférable de le faire durant une période calme lorsque la pression est presque constante sur une longue période.

Configurer l’intervalle d’enregistrement de la station météo.

Votre station météo a probablement quitté l’usine avec un intervalle d’enregistrement de 30 minutes. Ceci permet à la station d’enregistrer environ 11 semaines de données. La plupart des utilisateurs de pywws configurent leur ordinateur pour lire les données de la station à chaque heure, ou plus fréquemment et souhaitent que la station contienne assez de données pour couvrir d’éventuelles panne d’ordinateur. L’intervalle recommandé est de 5 minutes, ce qui représente 2 semaines de données. Utilisez le programme pywws.SetWeatherStation pour fixer l’intervalle:

pywws-setweatherstation -r 5

Note that the weather station will not start using the new interval until the current 30 minute logging period is finished. This may cause « station is not logging data » errors when running pywws logging. If this happens you need to wait until the 30 minute logging period ends.

Enregistrer les données de votre station météo.

First, choose a directory to store all your weather station data. This will be written to quite frequently, so a disk drive is preferable to a flash memory stick or card, as these have a limited number of writes. In most cases your home directory is suitable, for example:

mkdir ~/weather/data

Ce répertoire est référé dans la documentation pywws en tant que votre “répertoire de données”.

Assurez-vous que votre ordinateur ait la date et l’heure précise, ainsi que le fuseau horaire approprié, puisqu’ils seront utilisés pour identifier les données de votre station météo. Si vous ne l’avez pas déjà fait, il pourrait être utile d’utiliser la synchronisation horaires par réseau (NTP) pour synchroniser votre ordinateur à un “serveur de temps”.

La première fois que vous exécutez pywws.LogData un fichier de configuration, nommé “weather.ini”, sera créé dans votre répertoire de données, puis s’arrêtera. Vous devez éditer ce fichier de configuration et y modifier la ligne ws type = Unknown à ws type = 1080 ou ws type = 3080. (Si la console de votre station météo affiche la luminosité solaire, vous avez une station de type 3080, sinon, vous indiquez le type 1080.) Puis exécutez pywws.LogData de nouveau. Cette fois, l’exécution peut durer quelques minutes, puisqu’il copiera l’intégralité des données météo emmagasinées dans la mémoire de votre station météo. Le programme pywws.LogData possède une option “verbose” qui augmente le nombre de messages affichés pendant l’exécution. Cette option est utile lors d’exécution manuelle, par exemple:

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

(Remplacez ~/weather/data par votre répertoire de données, si différent.)

Vous devriez maintenant avoir quelques fichiers de données à regarder. Par exemple:

more ~/weather/data/raw/2012/2012-12/2012-12-16.txt

(Remplacez année, mois et jour par la date pour laquelle vous devriez avoir des données.)

Convertir les anciennes données de EasyWeather (optionnel).

Si vous utilisiez EasyWeather avant de décider d’utiliser pywws, vous pouvez convertir les données que EasyWeather a enregistré, vers format de pywws. Localisez votre fichier EasyWeather.dat et convertissez-le ainsi:

python -m pywws.EWtoPy EasyWeather.dat ~/weather/data

Indiquer certaines options de configuration.

Après avoir exécuté pywws.LogData, il devrait y avoir un fichier de configuration nommé “weather.ini” dans votre répertoire de données. Ouvrez ce fichier avec un éditeur de texte. Vous devriez y trouver des lignes semblables à celle-ci:

[config]
ws type = 1080
logdata sync = 1
pressure offset = 9.4

Vous devez ajouter une nouvelle entrée nommée day end hour dans la section [config]. Ceci indique à pywws quelle convention vous souhaitez utiliser pour le calcul du sommaire des données quotidiennes. En Grande-Bretagne, le “jour météorologique” s’étale habituellement de 09:00 à 09:00 GMT (10:00 à 10:00 BST durant l’été), j’utilise donc 9 pour l’heure de fin du jour. Dans d’autres pays une valeur de 24 (ou 0) peut être souhaitable. Noter que cette valeur est définie à l’heure hivernale locale. Vous ne devriez pas avoir besoin de changer cette valeur pendant la saison chaude.

Après édition, votre fichier weather.ini devrait resembler à ceci:

[config]
ws type = 1080
logdata sync = 1
pressure offset = 9.4
day end hour = 9

You can also edit the pressure offset value to adjust how pywws calculates the relative (sea level) air pressure from the absolute value that the station measures. If you change the pressure offset or day end hour in future, you must update all your stored data by running pywws.Reprocess.

Pour plus de détails sur les options du fichier de configuration, voir weather.ini - format du fichier de configuration.

Modifié dans la version 13.10_r1082: made pressure offset a config item. Previously it was always read from the weather station.

Traitement des données brutes.

pywws.LogData ne fait que copier les données brutes à partir de la station météo. Pour faire quelque chose d’utile avec ces données vous avez probablement besoin des sommaires horaire, quotidien et mensuel. Ces sommaires sont produits à partir du programme pywws.Process. Par exemple:

python -m pywws.Process ~/weather/data

Vous devriez avoir ainsi quelques fichiers traités à consulter:

more ~/weather/data/daily/2012/2012-12-16.txt

Si vous changez votre période de fin du jour avec l’option de configuration day end hour, vous devrez re-traiter toutes vos données météo. Pour ce faire, exécutez le programme pywws.Reprocess:

python -m pywws.Reprocess ~/weather/data

Vous êtes maintenant prêt pour fixer une journalisation régulière ou continue, tel que décrit dans la section Comment configurer la journalisation horaire avec pywws ou Comment configurer le mode “live” avec pywws.

Lire la documentation.

You’re looking at it right now! The Guides utilisateur section is probably the most useful bit to read first, but the Programmes et modules Python section has a lot more detail on the various pywws modules and commands.


Commentaires et questions? SVP, abonnez-vous à la liste pywws http://groups.google.com/group/pywws et faites-vous entendre.