weather.ini - format du fichier de configuration

Presque toute la configuration de pywws est fait via un seul fichier dans le répertoire de donnée: weather.ini. Ce fichier a été structuré de manière similaire aux fichiers INI de Microsoft Windows. Il est divisé en “sections”, qui contiennent un nom d’entrée “nom = valeur”. L’ordre d’apparition des sections n’a pas d’importance.

Tout éditeur de texte brut peut être utilisé pour éditer le fichier. (Ne pas essayer d’éditer le fichier pendant le fonctionnement de pywws.) Dans plusieurs cas, pywws initialisera les entrées avec des valeurs importantes.

Un autre fichier, status.ini, est utilisé pour emmagasiner certaines informations que pywws utilise à l’interne. Il est décrit à la fin de ce document. En utilisation normale, vous ne devriez pas avoir à éditer ce fichier.

Les sections suivantes sont présentement utilisées:

  • config: diverses configuration système.
  • paths: dossiers dans lesquels sont emmagasinés les gabarits, etc.
  • live: tâches à accomplir à chaque 48 secondes.
  • logged: tâches à accomplir chaque fois que la station enregistre une lecture.
  • cron: tasks to be done at a particular time or date.
  • hourly: tâches à réaliser à chaque heure.
  • 12 hourly: tâches à réaliser à chaque 12 heures.
  • daily: tâches à faire chaque jour.
  • ftp: configuration pour le téléversement du un site web.
  • twitter: configuration pour poster sur Twitter.
  • underground, metoffice, temperaturnu etc: configuration pour poster sur ces “services”.

config: diverses configuration système

[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 est le « type » de station. Il devrait être fixé à 1080 pour la plupart des stations météo, ou 3080 si la console de votre station affiche l’éclairement solaire.

day end hour is the end of the « meteorological day », in local time without daylight savings time. Typical values are 21, 9, or 24. You must update all your stored data by running pywws.Reprocess after you change this value.

pressure offset is the difference between absolute and relative (sea level) air pressure. The initial value is copied from the weather station, assuming you have set it up to display the correct relative pressure, but you can adjust the value in weather.ini to calibrate your station. You must update all your stored data by running pywws.Reprocess after you change this value.

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

gnuplot encoding est l’encodage de texte utilisé lors du tracé de graphes. La valeur par défaut est iso_8859_1 permettant le symbole des degrés, fort utile dans une application météorologique! D’autres valeurs peuvent être nécessaire si votre langue comporte des caractères accentués. Les valeurs possible dépendent de votre installation gnuplot, quelques expérimentations peuvent donc être nécessaire.

template encoding est l’encodage de text utilisé pour le gabarit. La valeur par défaut est iso-8859-1, ce qui est l’encodage utilisé dans les gabarits d’exemple. Si vous créez des gabarits avec un autre jeu de caractère, vous devez changer cette valeur pour celle de vos gabarits.

language est utilisé pour traduire pywws. Il est optionnel, puisque pywws utilise habituellement la langue par défaut de l’ordinateur tel que configuré par la variable d’environnement LANG. Vous trouverez les langages disponibles dans le sous-dossier translations de votre installation pywws. Si vous configurez une langue qui n’est pas inclue, pywws affichera en anglais.

logdata sync configure la qualité de la synchronisation utilisé par pywws.LogData. Fixer à 0 pour rapide & imprécis ou 1 pour plus lent, mais précis.

rain day threshold is the amount of rain (in mm) that has to fall in one day for it to qualify as a rainy day in the monthly summary data. You must update all your stored data by running pywws.Reprocess after you change this value.

Nouveau dans la version 13.09_r1057: asynchrouous controls the use of a separate upload thread in pywws.LiveLog.

Nouveau dans la version 13.10_r1094: usb activity margin controls the algorithm that avoids the « USB lockup » problem that affects some stations. It sets the number of seconds either side of expected station activity (receiving a reading from outside or logging a reading) that pywws does not get data from the station. If your station is not affected by the USB lockup problem you can set usb activity margin to 0.0.

Nouveau dans la version 13.11_r1102: gnuplot version tells pywws.Plot and pywws.WindRose what version of gnuplot is installed on your computer. This allows them to use version-specific features to give improved plot quality.

Nouveau dans la version 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: dossiers dans lesquels sont emmagasinés les gabarits, etc.

[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/

These entries specify where your text templates and graph templates are stored, where temporary files should be created, where template output (that is not uploaded) should be put, and (if you have one) the location of your calibration module.

live: tâches à accomplir à chaque 48 secondes

[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 are lists of text and plot templates to be processed and, optionally, uploaded to your website.

Modifié dans la version 13.05_r1013: added a 'yowindow.xml' template. Previously yowindow files were generated by a separate module, invoked by a yowindow entry in the [live] section. This older syntax still works, but is deprecated.

logged: tâches à accomplir chaque fois que la station enregistre une lecture

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

Cette section spécifie les tâche devant être réalisées chaque fois qu’une donnée est lue en mode “temps réel” ou chaque fois qu’une tâche horaire cron est exécutée.

services est une liste de “services” auxquels envoyer vos données. Chaque service listé doit avoir un fichier de configuration dans le dossier pywws/services/. Voir ../api/pywws.toservice pour plus de détails.

text and plot are lists of text and plot templates to be processed and, optionally, uploaded to your website.

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

Nouveau dans la version 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 Pré-requis 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: tâches à réaliser à chaque heure

[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']

Cette section spécifie les tâches à réaliser à chaque heure en mode “temps réel” ou exécutées en tant que tâche horaire cron.

services est une liste de “services” auxquels envoyer vos données. Chaque service listé doit avoir un fichier de configuration dans le dossier pywws/services/. Voir ../api/pywws.toservice pour plus de détails.

text and plot are lists of text and plot templates to be processed and, optionally, uploaded to your website.

Modifié dans la version 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.

12 hourly: tâches à réaliser à chaque 12 heures

[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 est une liste de “services” auxquels envoyer vos données. Chaque service listé doit avoir un fichier de configuration dans le dossier pywws/services/. Voir ../api/pywws.toservice pour plus de détails.

text and plot are lists of text and plot templates to be processed and, optionally, uploaded to your website.

daily: tâches à faire à chaque 24 heures

[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 est une liste de “services” auxquels envoyer vos données. Chaque service listé doit avoir un fichier de configuration dans le dossier pywws/services/. Voir ../api/pywws.toservice pour plus de détails.

text and plot are lists of text and plot templates to be processed and, optionally, uploaded to your website.

ftp: configuration du téléversement à un site web

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

Ces entrées fournissent des détails sur votre site web (ou répertoire local) où doivent être transférés les fichier de texte et de graphe traités.

local site spécifie si les fichiers doivent être copiés dans un dossier local ou envoyé sur un site distant. Vous pouvez vouloir fixer ce paramètre si votre serveur web fonctionne sur le même ordinateur qui exécute 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 est l’adresse web de votre site FTP à laquelle transférer vos fichiers.

user et password sont les informations de branchement pour votre site FTP. Votre hébergeur doit vous avoir fourni ces informations.

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 spécifie où les fichiers doivent être stockés sur le site FTP (ou système de fichiers local). Notez que vous devrez peut-être expérimenter avec cela un peu, vous pourriez avoir besoin d’un caractère “/” au début du chemin.

Nouveau dans la version 13.12.dev1120: port spécifie le numéro de port à utiliser. La valeur par défaut est 21 pour FTP, 22 pour SFTP. Votre fournisseur de site web peut vous dire d’utiliser un numéro de port différent.

twitter: configuration pour poster sur Twitter

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

secret and key sont des données d’authentification fournies par Twitter. Pour les définir, exécuter pywws.TwitterAuth.

latitude et longitude sont vos données de localisation et sont optionnelles. Si vous les incluez dans vos “tweets météo” vos utilisateurs pourront voir où est située votre station. Ce qui pourrait aider les utilisateurs à trouver votre station s’ils cherchent par localisation.

underground, metoffice, temperaturnu etc: configuration pour poster sur ces “services”

[underground]
station = IXYZABA5
password = secret

Ces sections contiennent l’information nécessaire pour envoyer vos données sur ces services météo, tel que mot de passe et ID de votre station. Le nom de ces entrées de données dépend du service. L’exemple montré affiche les informations pour Weather Underground.

station est le PWS ID (Identificateur de station) alloué à la station météo par Weather Underground.

password est votre mot de passe pour Weather Underground.

status.ini - format du fichier de status

Ce fichier est crée par pywws et ne doit pas (habituellement) être édité. Les section suivantes sont actuellement utilisées

  • fixed: valeurs copiées à partir des « blocs fixes » de la station météo.
  • clock: information de synchronisation.
  • last update: date et heure de la plus récente tâche complétée.

fixed: valeurs copiées à partir des « blocs fixes » de la station météo

[fixed]
fixed block = {...}

fixed block est toutes les données stockées dans les 256 octets de mémoire de la station. Cela comprend les valeures minimales et maximum, les paramètres de seuil d’alarme, unités de mesure et ainsi de suite.

clock: information de synchronisation

[clock]
station = 1360322930.02
sensor = 1360322743.69

Ces valeurs enregistrent le temps calculé lorsque l’horloge de la station a enregistrée certaines données et lorsque les capteurs extérieurs ont transmis un nouveau jeu de données. Elles sont utilisées pour tenter d’empêcher le plantage de l’interface USB si l’ordinateur accède à la station météo en même temps que l’un ou l’autre de ces événements, un problème commun à de nombreuses stations compatibles EasyWeather. Les durées sont mesurées toutes les 24 heures pour permettre la dérive de l’horloge

last update: date et heure de la plus récente tâche complétée

[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

Ces enregistrement affichent la date et l’heure de la dernière exécution réussie des diverses tâches. Ils sont utilisés pour permettre aux tâches infructueuses (ex. panne de réseau empêchant les téléversements) d’être réessayé après quelques minutes.


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