En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies nous permettant de réaliser des statistiques

de visites et de vous proposer des informations, ainsi que des services et offres adaptés à vos centres d'intérêt.

Donation

Merci, de soutenir nos gratuiciels et tutoriaux.

Amount:
 EUR

Stations météo personnelle

Contactez-nous

Didier Leboutte

GSM: +32(0)477 385 200

info@leboutte.pro

Le but de ce tuto est de configurer son Raspberry avec Weewx pour sa station météo.

Principe de fonctionnement

Comme Wview, Weewx génère les fichiers html et les images des graphes à intervalles réguliers. La différence est que Weewx est en Python et est configuré non pas par une interface web php comme Wview mais par des fichiers .conf en ligne de commande. A ma connaissance Wview n'a pas encore été porté sur Jessie mais bien Weewx.

Pour le matériel, voir le tuto avec wview. La configuration peut se réaliser sur un Raspberry 1 B+ v1.2, 2 ou 3 avec jessie et pixel.

A la fin de la configuration, vous pourrez obtenir ceci : meteo.leboutte.pro.

Installer Weewx

Weewx

Lancer une session terminal.

Mettre à jour Jessie.

pi@raspberrypi:~ $ sudo apt-get update

pi@raspberrypi:~ $ sudo apt-get upgrade

Vérifier sa version de python, il ne faut pas la version 3.

pi@raspberrypi:~ $ python -V (Attention pas -v verbose)

Normalement, la version devrait être la 2.7.

Maintenant, il faut installer les prérequis pour Weewx.

Répondre Oui (O) ou Yes (Y) si on vous le demande.

pi@raspberrypi:~ $ sudo apt-get install python-configobj
pi@raspberrypi:~ $ sudo apt-get install python-cheetah
pi@raspberrypi:~ $ sudo apt-get install python-imaging
pi@raspberrypi:~ $ sudo apt-get install python-usb
pi@raspberrypi:~ $ sudo apt-get install mysql-client
pi@raspberrypi:~ $ sudo apt-get install python-mysqldb
pi@raspberrypi:~ $ sudo apt-get install ftp
pi@raspberrypi:~ $ sudo apt-get install python-dev
pi@raspberrypi:~ $ sudo apt-get install python-pip
pi@raspberrypi:~ $ sudo pip install pyephem

Maintenant que les prérequis sont installés, nous pouvons passer à l'installation de Weewx.

On se place dans home.

pi@raspberrypi:~ $ cd /home

Téléchargement de Weewx, la version à ce jour est la 3.6.2

pi@raspberrypi:home $ sudo wget http://weewx/downloads/weewx-3.6.2.tar.gz

Décompression de l'archive.

pi@raspberrypi:home $ sudo tar xfvz weewx-3.6.2.tar.gz

On entre dans le dossier de weewx.

pi@raspberrypi:home $ cd weewx-3.6.2

Installation des packages avec Python.

pi@raspberrypi:home/weewx-3.6.2 $ ./setup.py build

pi@raspberrypi:home/weewx-3.6.2 $ sudo ./setup.py install

Lors de l'installation, il vous sera demandé de donner une description (comme un votre lieu), altitude, latitude, longitude, le type de mesure, le type de votre station météo.

C'est fait. On vérifie l'installation.

pi@raspberrypi:home/weewx-3.6.2 $ cd /home/weewx

pi@raspberrypi:home/weewx $ sudo ./bin/weewxd/weewx.conf

Vous devriez voir des valeurs de votre station météo.

Fermer votre session et réouvrir une session terminal pour la suite.

Maintenant, nous allons mettre la mise en route automatique de Weewx au démarrage du Raspberry.

pi@raspberrypi:~ $ cd /home/weewx

pi@raspberrypi:home/weewx $ sudo cp util/init.d/weewx.debian /etc/init.d/weewx
pi@raspberrypi:home/weewx $ sudo chmod +x /etc/init.d/weewx
pi@raspberrypi:home/weewx $ sudo update-rc.d weewx defaults 98
pi@raspberrypi:home/weewx $ sudo /etc/init.d/weewx start

Weewx est installé et démarré!

Suppression de l'archive de Weewx, histoire de "nettoyer" ce qui n'est plus nécessaire.

pi@raspberrypi:home/weewx $ cd /home

pi@raspberrypi:home/weewx $ sudo rm weewx-3.6.2.tar.gz

Installer apache2

Cette installation n'est pas obligatoire si vous avez un hébergement externe ou votre propre serveur web, voir configuration de Weewx via le FTP.

Mais c'est très pratique de pouvoir voir Weewx en action.

procédons à l'installation d'un serveur web sur le Raspberry, nous allons mettre en Apache2.

Ceci n'est pas obligatoire si vous avez suivi l'installation de Weewx.

pi@raspberrypi:~ $ sudo apt-get update

pi@raspberrypi:~ $ sudo apt-get upgrade

Installation d'Apache2. Répondez Yes (Y) si on vous le demande.

pi@raspberrypi:~ $ sudo aptitude install apache2

Apache est installé!

Nous allons mettre les droits au dossier Apache pour facilement administrer les sites.

pi@raspberrypi:~ $ sudo chown -R pi:www-data /var/www/html/
pi@raspberrypi:~ $ sudo chmod -R 770 /var/www/html/

Pour vérifier l'installation d'Apache, dans un navigateur taper http://ip-du-rasp ou http://127.0.0.1 (en local), vous devriez avoir la page d'Apache avec "It's works".

Nous allons mettre un lien symbolique pour Weewx, ainsi vous pourrez aussi utiliser la fonction FTP de weewx si vous le voulez.

pi@raspberrypi:~ $ sudo ln -s /home/weewx/public_html /var/www/html/meteo

Vous pouvez mettre ce que vous voulez à la place de "meteo", voila vous avez accès aux infos de votre météo par http://IP-du-rasp/meteo  ou http://127.0.0.1/meteo (local).

weewx standard

Configuration

Voici mon fichier de configuration (du moins en partie).

pi@raspberrypi:~ $ sudo nano /home/weewx/weewx.conf

 

# WEEWX CONFIGURATION FILE
#
# Copyright (c) 2009-2015 Tom Keffer <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>;
# See the file LICENSE.txt for your rights.

##############################################################################

# This section is for general configuration information.

# Set to 1 for extra debug info, otherwise comment it out or set to zero
debug = 0

# Root directory of the weewx data file hierarchy for this station
WEEWX_ROOT = /home/weewx

# How long to wait before timing out a socket (FTP, HTTP) connection
socket_timeout = 20

# Do not modify this. It is used when installing and updating weewx.
version = 3.6.2

##############################################################################

# This section is for information about the station.

[Station]

# Description of the station location
location = "Didier Leboutte,Aye"

# Latitude and longitude in decimal degrees
latitude = 50.219
longitude = 5.284

# Altitude of the station, with unit it is in. This is downloaded from
# from the station if the hardware supports it.
altitude = 245, meter # Choose 'foot' or 'meter' for unit

# Set to type of station hardware. There must be a corresponding stanza
# in this file with a 'driver' parameter indicating the driver to be used.
station_type = WMR100

# If you have a website, you may specify an URL
station_url = http://meteo.leboutte.pro

# The start of the rain year (1=January; 10=October, etc.). This is
# downloaded from the station if the hardware supports it.
rain_year_start = 1

# Start of week (0=Monday, 6=Sunday)
week_start = 0

##############################################################################

[WMR100]
# This section is for the Oregon Scientific WMR100

# The station model, e.g., WMR100, WMR100N, WMRS200
model = WMR88

# The driver to use:
driver = weewx.drivers.wmr100

##############################################################################

# This section is for uploading data to Internet sites

[StdRESTful]

[[StationRegistry]]
# To register this weather station with weewx, set this to true
register_this_station = true

[[AWEKAS]]
# This section is for configuring posts to AWEKAS.

# If you wish to do this, set the option 'enable' to true,
# and specify a username and password.
enable = false
username = replace_me
password = replace_me

[[CWOP]]
# This section is for configuring posts to CWOP.

# If you wish to do this, set the option 'enable' to true,
# and specify the station ID (e.g., CW1234).
enable = false
station = replace_me

# If this is an APRS (radio amateur) station, uncomment
# the following and replace with a passcode (e.g., 12345).
#passcode = replace_me (APRS stations only)

[[PWSweather]]
# This section is for configuring posts to PWSweather.com.

# If you wish to do this, set the option 'enable' to true,
# and specify a station and password.
enable = false
station = replace_me
password = replace_me

[[WOW]]
# This section is for configuring posts to WOW.

# If you wish to do this, set the option 'enable' to true,
# and specify a station and password.
enable = false
station = replace_me
password = replace_me

[[Wunderground]]
# This section is for configuring posts to the Weather Underground.

# If you wish to do this, set the option 'enable' to true,
# and specify a station (e.g., 'KORHOODR3') and password.
enable = true
station = KORHOORDR3
password = *******

# Set the following to True to have weewx use the WU "Rapidfire"
# protocol. Not all hardware can support it. See the User's Guide.
rapidfire = False

##############################################################################

# This section specifies what reports, using which skins, to generate.

[StdReport]

# Where the skins reside, relative to WEEWX_ROOT
SKIN_ROOT = skins

# Where the generated reports should go, relative to WEEWX_ROOT
HTML_ROOT = public_html

# The database binding indicates which data should be used in reports.
data_binding = wx_binding

# Each of the following subsections defines a report that will be run.

[[StandardReport]]
# See the customizing guide to change the units, plot types and line
# colors, modify the fonts, display additional sensor data, and other
# customizations. Many of those changes can be made here by overriding
# parameters, or by modifying templates within the skin itself.

# The StandardReport uses the 'Standard' skin, which contains the
# images, templates and plots for the report.

skin = sofa

[[[Units]]]
[[[[Groups]]]]
group_altitude = meter
group_speed2 = km_per_hour2
group_pressure = hPa
group_rain = mm
group_rainrate = mm_per_hour
group_temperature = degree_C
group_degree_day = degree_C_day
group_speed = km_per_hour



[[FTP]]
# FTP'ing the results to a webserver is treated as just another report,
# albeit one with an unusual report generator!
skin = Ftp

# If you wish to use FTP, uncomment and fill out the next four lines.
user = userFTP
password = *******
server = ftp.votreserveur.xxx
path = votre-dossier-ftp

# Set to True for an FTP over TLS (FTPS) connection. Not all servers
# support this.
secure_ftp = False

# To upload files from something other than what HTML_ROOT is set
# to above, specify a different HTML_ROOT here.
#HTML_ROOT = public_html

# Most FTP servers use port 21
port = 21

# Set to 1 to use passive mode, zero for active mode
passive = 1

[[RSYNC]]
# rsync'ing to a webserver is treated as just another report
skin = Rsync

# If you wish to use rsync, you must configure passwordless ssh using
# public/private key authentication from the user account that weewx
# runs as to the user account on the remote machine where the files
# will be copied.
#
# The following three lines determine where files will be sent.
#server = replace with the rsync server name, e.g, www.threefools.org
#path = replace with the rsync destination directory (e.g., /weather)
#user = replace with the rsync username

# Rsync can be configured to remove files from the remote server if
# they don't exist under HTML_ROOT locally. USE WITH CAUTION: if you
# make a mistake in the remote path, you could could unintentionally
# cause unrelated files to be deleted. Set to 1 to enable remote file
# deletion, zero to allow files to accumulate remotely.
delete = 0

##############################################################################

# This service acts as a filter, converting the unit system coming from
# the hardware to a unit system in the database.

[StdConvert]

# The target_unit affects only the unit system in the database. Once
# chosen it cannot be changed without converting the entire database.
# Modification of target_unit after starting weewx will result in
# corrupt data - the database will contain a mix of US and METRIC data.
#
# The value of target_unit does not affect the unit system for
# reporting - reports can display US, Metric, or any combination of units.
#
# In most cases, target_unit should be left as the default: US
#
# In particular, those migrating from a standard wview installation
# should use US since that is what the wview database contains.

# DO NOT MODIFY THIS VALUE UNLESS YOU KNOW WHAT YOU ARE DOING!
target_unit = US # Options are 'US', 'METRICWX', or 'METRIC'

##############################################################################

# This section can adjust data using calibration expressions.

[StdCalibrate]

[[Corrections]]
# For each type, an arbitrary calibration expression can be given.
# It should be in the units defined in the StdConvert section.
# Example:
foo = foo + 0.2

##############################################################################

# This section is for quality control checks. If units are not specified,
# values must be in the units defined in the StdConvert section.

[StdQC]

[[MinMax]]
barometer = 26, 32.5, inHg
outTemp = -40, 120, degree_F
inTemp = 10, 120, degree_F
outHumidity = 0, 100
inHumidity = 0, 100
windSpeed = 0, 120, mile_per_hour
pressure = 24, 34.5, inHg

##############################################################################

# This section controls the origin of derived values.

[StdWXCalculate]

[[Calculations]]
# Derived quantities are calculated by this service. Possible values are:
# hardware - use the value provided by hardware
# software - use the value calculated by weewx
# prefer_hardware - use value provide by hardware if available,
# otherwise use value calculated by weewx

pressure = prefer_hardware
barometer = prefer_hardware
altimeter = prefer_hardware
windchill = prefer_hardware
heatindex = prefer_hardware
dewpoint = prefer_hardware
inDewpoint = prefer_hardware
rainRate = hardware
[[Calculatios]]

##############################################################################

# For hardware that supports it, this section controls how often the
# onboard clock gets updated.

[StdTimeSynch]

# How often to check the weather station clock for drift (in seconds)
clock_check = 14400

# How much it can drift before we will correct it (in seconds)
max_drift = 5

##############################################################################

# This section is for configuring the archive service.

[StdArchive]

# If the station hardware supports data logging then the archive interval
# will be downloaded from the station. Otherwise, specify it (in seconds).
archive_interval = 300

# If possible, new archive records are downloaded from the station
# hardware. If the hardware does not support this, then new archive
# records will be generated in software.
# Set the following to "software" to force software record generation.
record_generation = hardware

# Whether to include LOOP data in hi/low statistics
loop_hilo = True

# The data binding used to save archive records
data_binding = wx_binding

##############################################################################

# This section binds a data store to a database.

[DataBindings]

[[wx_binding]]
# The database must match one of the sections in [Databases].
# This is likely to be the only option you would want to change.
database = archive_sqlite
# The name of the table within the database
table_name = archive
# The manager handles aggregation of data for historical summaries
manager = weewx.wxmanager.WXDaySummaryManager
# The schema defines the structure of the database.
# It is *only* used when the database is created.
schema = schemas.wview.schema

##############################################################################

# This section defines various databases.

[Databases]

# A SQLite database is simply a single file
[[archive_sqlite]]
database_type = SQLite
database_name = weewx.sdb

# MySQL
[[archive_mysql]]
database_type = MySQL
database_name = weewx

##############################################################################

# This section defines defaults for the different types of databases.

[DatabaseTypes]

# Defaults for SQLite databases
[[SQLite]]
driver = weedb.sqlite
# Directory in which the database files are located
SQLITE_ROOT = %(WEEWX_ROOT)s/archive

# Defaults for MySQL databases
[[MySQL]]
driver = weedb.mysql
# The host where the database is located
host = localhost
# The user name for logging in to the host
user = weewx
# The password for the user name
password = weewx

##############################################################################

# This section configures the internal weewx engine.

[Engine]

[[Services]]
# This section specifies the services that should be run. They are
# grouped by type, and the order of services within each group
# determines the order in which the services will be run.
prep_services = weewx.engine.StdTimeSynch
data_services = ,
process_services = weewx.engine.StdConvert, weewx.engine.StdCalibrate, weewx.engine.StdQC, weewx.wxservices.StdWXCalculate
archive_services = weewx.engine.StdArchive
restful_services = weewx.restx.StdStationRegistry, weewx.restx.StdWunderground, weewx.restx.StdPWSweather, weewx.restx.StdCWOP, weewx.restx.StdWOW, weewx.restx.StdAWEKAS
report_services = weewx.engine.StdPrint, weewx.engine.StdReport

Valider par CTRL+o ou par CTRL+X et yes et quitter.

Après modification du fichier weewx.conf, ne pas oublier de relancer Weewx.

pi@raspberrypi:~ $ sudo /etc/init.d/weewx stop

pi@raspberrypi:~ $ sudo /etc/init.d/weewx start

Après quelques minutes, Weewx a régénéré les données.

Installation d'un skin

Nous allons voir comment installer deux skins.

Skin Bootstrap

Ce skin est responsive.

Bootstrap

Bootstrap

Installation du skin.

pi@raspberrypi:~ $ cd /home

pi@raspberrypi:/home $ sudo wget https://github.com/brewster76/fuzzy-archer/archive/v2.24.tar.gz

pi@raspberrypi:/home $ cd /home/weewx

pi@raspberrypi:/home/weewx $ sudo bin/wee_extension --install=/home/v2.24.tar.gz

Le skin est installer, il ne reste plus qu'à le mettre en français.

pi@raspberrypi:/home/weewx $ sudo nano /home/weewx/skins/Bootstrap/skin.conf

[Language]

#
# Set a language below and labels will be overridden with any that are specified in
# skins/languages/[language].conf
#
# Choices are: espanol, francais, italian, german

language = francais

Valider par CTRL+o ou par CTRL+X et yes et quitter.

Répéter pour le second fichier skin images de Bootstrap

pi@raspberrypi:/home/weewx $ sudo nano /home/weewx/skins/Images/skin.conf

On supprime l'archive.

pi@raspberrypi:~ $ cd /home

pi@raspberrypi:/home $ sudo rm v2.24.tar.gz

Après modification des fichiers skin.conf, ne pas oublier de relancer Weewx.

pi@raspberrypi:~ $ sudo /etc/init.d/weewx stop

pi@raspberrypi:~ $ sudo /etc/init.d/weewx start

Après quelques minutes, Weewx a régénéré les données. 

Le skin Bootstrap ne prend pas le "dessus" sur le skin Standard ou un autre skin que vous auriez installé.

http://votreIP/weewx/Bootstrap 

Skin Sofaskin

C'est le skin que j'ai utilisé et un peu customizé. Il est responsive.

Sofaskin

sofaskin

On vas d'abord créer un dossier pour le skin.

pi@raspberrypi:~ $ cd /home/weewx/skins

pi@raspberrypi:/home/weewx/skins $ sudo mkdir sofa

On se place dans le dossier créé et on télécharge le skin

pi@raspberrypi:/home/weewx/skins/sofa $ sudo wget http://neoground.com/projects/download/weewx/sofaskin-v1.1.zip

On dézippe l'archive.

pi@raspberrypi:/home/weewx/skins/sofa $ sudo unzip sofaskin-v1.1.zip

Et on supprime l'archive

pi@raspberrypi:/home/weewx/skins/sofa $ sudo rm sofaskin-v1.1.zip

Voila, le skin sofaskin est installé, il faut modifier le fichier weewx.conf et relancer weewx.

pi@raspberrypi:/home/weewx/skins/sofa $ sudo nano /home/weewx/weewx.conf

Et remplacer le skin Standard par le dossier créé, ici sofa. 

[[StandardReport]]
# See the customizing guide to change the units, plot types and line
# colors, modify the fonts, display additional sensor data, and other
# customizations. Many of those changes can be made here by overriding
# parameters, or by modifying templates within the skin itself.

# The StandardReport uses the 'Standard' skin, which contains the
# images, templates and plots for the report.

skin = sofa 

Valider par CTRL+o ou par CTRL+X et yes et quitter.

Pour vous donner des idées, je vous mets mon fichier skin.conf.

pi@raspberrypi:/home/weewx/skins/sofa $ sudo nano /home/weewx/skins/sofa/skin.conf 

###############################################################################
# $Id: skin.conf 2749 2014-11-29 18:15:24Z tkeffer $ #
# Copyright (c) 2010 Tom Keffer <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>; #
# SOFA SKIN (c) 2015 Sven Reifschneider <Cette adresse e-mail est protégée contre les robots spammeurs. Vous devez activer le JavaScript pour la visualiser.>; #
# SOFA SKIN CONFIGURATION FILE #
###############################################################################

[Extras]
# Template Extras

# Current radar image
radar_img = http://meteo.be/meteo/view/fr/65239-Accueil.html?cattouselhtml=1
# Current radar animation (starts on radar_img hover)
radar_gif = http://meteo.be/meteo/view/fr/65239-Accueil.html/image.jpg?caroussem=1&idDummY
# Hyperlink for radar
radar_url = http://meteo.be/meteo/view/fr/65239-Accueil.html

# Lightning map and hyperlink
lightning_map = http://leboutte.ddns.net:8088/videostream.cgi?loginuse=invit&loginpas=invit
#lightning_url = http://www.lightningmaps.org/realtime?lang=de

# URL for another radar (for example full Europe, Frankfurt center)
radar_url_alt = https://wunderground.com/cgi-bin/findweather/hdfForecast?query=50.219%2C5.284&sp=IAYE3
radar_url_alt_text = "Forecast"

# You. Only shows up in footer
you = "Leboutte Informatique"

# Google Analytics ID
googleAnalyticsId = UA-1234567-1

###############################################################################

[Units]
# This section is for managing the selection and formatting of units.

[[Groups]]
# For each group of measurements, this section sets what units to
# use for it.
# NB: The unit is always in the singular. I.e., 'mile_per_hour',
# NOT 'miles_per_hour'
group_altitude = meter # Options are 'foot' or 'meter'
group_degree_day = degree_C_day # Options are 'degree_F_day' or 'degree_C_day'
group_direction = degree_compass
group_moisture = centibar
group_percent = percent
group_pressure = hPa # Options are 'inHg', 'mmHg', 'mbar', or 'hPa'
group_radiation = watt_per_meter_squared
group_rain = mm # Options are 'inch', 'cm', or 'mm'
group_rainrate = mm_per_hour # Options are 'inch_per_hour', 'cm_per_hour', or 'mm_per_hour'
group_speed = km_per_hour # Options are 'mile_per_hour', 'km_per_hour', 'knot', or 'meter_per_second'
group_speed2 = km_per_hour2 # Options are 'mile_per_hour2', 'km_per_hour2', 'knot2', or 'meter_per_second2'
group_temperature = degree_C # Options are 'degree_F' or 'degree_C'
group_uv = uv_index
group_volt = volt

# The following are used internally and should not be changed:
group_count = count
group_interval = minute
group_time = unix_epoch
group_elapsed = second

[[StringFormats]]
# This section sets the string formatting for each type of unit.
centibar = %.0f
cm = %.2f
cm_per_hour = %.2f
degree_C = %.1f
degree_F = %.1f
degree_compass = %.0f
foot = %.0f
hPa = %.0f
hour = %.1f
inHg = %.3f
inch = %.2f
inch_per_hour = %.2f
km_per_hour = %.0f
km_per_hour2 = %.1f
knot = %.0f
knot2 = %.1f
mbar = %.0f
meter = %.0f
meter_per_second = %.1f
meter_per_second2 = %.1f
mile_per_hour = %.0f
mile_per_hour2 = %.1f
mm = %.1f
mmHg = %.1f
mm_per_hour = %.1f
percent = %.0f
second = %.0f
uv_index = %.0f
volt = %.1f
watt_per_meter_squared = %.0f
NONE = " N/A"

[[Labels]]
# This section sets a label to be used for each type of unit.
centibar = " cb"
cm = " cm"
cm_per_hour = " cm/h"
degree_C = °C
degree_F = °F
degree_compass = °
foot = " feet"
hPa = " hPa"
inHg = " inHg"
inch = " in"
inch_per_hour = " in/h"
km_per_hour = " km/h"
km_per_hour2 = " km/h"
knot = " knoten"
knot2 = " knoten"
mbar = " mbar"
meter = " meter"
meter_per_second = " m/s"
meter_per_second2 = " m/s"
mile_per_hour = " mph"
mile_per_hour2 = " mph"
mm = " mm"
mmHg = " mmHg"
mm_per_hour = " mm/h"
percent = %
volt = " V"
watt_per_meter_squared = " W/m²"
day = " Tag", " Tage"
hour = " Stunde", " Stunden"
minute = " Minute", " Minuten"
second = " Sekunde", " Sekunden"
NONE = ""

[[TimeFormats]]
# This section sets the string format to be used for each time scale.
# The values below will work in every locale, but may not look
# particularly attractive. See the Customizing Guide for alternatives.

day = %X
week = %X (%A)
month = %x %X
year = %x %X
rainyear = %x %X
current = %x %X
ephem_day = %X
ephem_year = %x %X

[[Ordinates]]
# The ordinal directions. The last one should be for no wind direction
directions = N, NNE, NE, ENE, E, ESE, SE, SSE, S, SSW, SW, WSW, W, WNW, NW, NNW, N/A

[[DegreeDays]]
# This section sets the base temperatures used for the calculation
# of heating and cooling degree-days.

# Base temperature for heating days, with unit:
heating_base = 65, degree_F
# Base temperature for cooling days, with unit:
cooling_base = 65, degree_F

[[Trend]]
time_delta = 10800 # 3 hours
time_grace = 300 # 5 minutes

###############################################################################

[Labels]
# Labels used in this skin
# Set to hemisphere abbreviations suitable for your location:
hemispheres = N, S, E, W
# Formats to be used for latitude whole degrees, longitude whole degrees,
# and minutes:
latlon_formats = "%02d", "%03d", "%05.2f"

[[Generic]]
# Generic labels, keyed by an observation type.
barometer = Barometer
dewpoint = Dew Point
heatindex = Heat Index
inHumidity = Inside Humidity
inTemp = Inside Temperature
outHumidity = Outside Humidity
outTemp = Outside Temperature
radiation = Radiation
rain = Rain
rainRate = Rain Rate
rxCheckPercent = ISS Signal Quality
UV = UV Index
windDir = Wind Direction
windGust = Gust Speed
windGustDir = Gust Direction
windSpeed = Wind Speed
windchill = Wind Chill
windgustvec = Gust Vector
windvec = Wind Vector

# This one is probably specific to my station!
extraTemp1 = Pond Temperature

###############################################################################

[Almanac]
# The labels to be used for the phases of the moon:
moon_phases = New, Waxing crescent, First quarter, Waxing gibbous, Full, Waning gibbous, Last quarter, Waning crescent

###############################################################################

[CheetahGenerator]
# This section is used by the generator CheetahGenerator, and specifies
# which files are to be generated from which template.
# Possible encodings are 'html_entities', 'utf8', or 'strict_ascii'
encoding = html_entities

[[SummaryByMonth]]
# Reports that summarize "by month"
[[[NOAA_month]]]
encoding = utf8
template = NOAA/NOAA-YYYY-MM.txt.tmpl

[[SummaryByYear]]
# Reports that summarize "by year"
[[[NOAA_year]]]
encoding = utf8
template = NOAA/NOAA-YYYY.txt.tmpl

[[ToDate]]
# Reports that show statistics "to date", such as day-to-date,
# week-to-date, month-to-date, etc.
[[[day]]]
template = index.html.tmpl

[[[week]]]
template = week.html.tmpl

[[[month]]]
template = month.html.tmpl

[[[year]]]
template = year.html.tmpl

[[[RSS]]]
template = RSS/weewx_rss.xml.tmpl

###############################################################################

[CopyGenerator]
# This section is used by the generator CopyGenerator

# List of files to be copied only the first time the generator runs
copy_once = css/main.css, js/*, .htaccess, 404.html, robots.txt, touch-icon.png

###############################################################################

[ImageGenerator]

# This section lists all the images to be generated, what SQL types are to
# be included in them, along with many plotting options, such as color or
# font. There's a default for almost everything, if not specified below.
# Nevertheless, I have explicitly put in values, to make it easy to see
# and understand the options.
#
# Fonts can be anything accepted by the Python Imaging Library (PIL), which
# is currently truetype (.ttf), or PIL's own font format (.pil). See
# http://www.pythonware.com/library/pil/handbook/imagefont.htm for more
# details. Note that "font size" is only used with truetype (.ttf)
# fonts. For others, font size is determined by the bit-mapped size,
# usually encoded in the file name (e.g., courB010.pil). If a font cannot
# be found, then a default font will be used.
#
# Colors can be specified any of three ways:
# 1. Notation 0xBBGGRR;
# 2. Notation #RRGGBB; or
# 3. Using an English name, such as 'yellow', or 'blue'.
# So, 0xff0000, #0000ff, or 'blue' would all specify a pure blue color.

image_width = 800
image_height = 300
image_background_color = 0xffffff

chart_background_color = 0xffffff
chart_gridline_color = 0xdbdbdb

top_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
top_label_font_size = 12

unit_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
unit_label_font_size = 10
unit_label_font_color = 0x000000

bottom_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
bottom_label_font_size = 12
bottom_label_font_color = 0x000000

axis_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
axis_label_font_size = 10
axis_label_font_color = 0x000000

# Options for the compass rose, used for progressive vector plots
rose_label = N
rose_label_font_path = /usr/share/fonts/truetype/droid/DroidSans-Bold.ttf
rose_label_font_size = 10
rose_label_font_color = 0x000000

# Default colors for the plot lines. These can be overridden for
# individual lines using option 'color'
chart_line_colors = 0xb48242, 0x4242b4, 0x42b442

# Type of line. Only 'solid' or 'none' is offered now
line_type = 'solid'

# Size of marker in pixels
marker_size = 8
# Type of marker. Pick one of 'cross', 'x', 'circle', 'box', or 'none'
marker_type = 'none'

# Default fill colors for bar charts. These can be overridden for
# individual bar plots using option 'fill_color'
chart_fill_colors = 0xc4b272, 0x7272c4, 0x72c472

# The following option merits an explanation. The y-axis scale used for
# plotting can be controlled using option 'yscale'. It is a 3-way tuple,
# with values (ylow, yhigh, min_interval). If set to "None", a parameter is
# set automatically, otherwise the value is used. However, in the case of
# min_interval, what is set is the *minimum* y-axis tick interval.
yscale = None, None, None

# For progressive vector plots, you can choose to rotate the vectors.
# Positive is clockwise.
# For my area, westerlies overwhelmingly predominate, so by rotating
# positive 90 degrees, the average vector will point straight up.
vector_rotate = 90

# This defines what fraction of the difference between maximum and minimum
# horizontal chart bounds is considered a gap in the samples and should not
# be plotted.
line_gap_fraction = 0.01
bar_gap_fraction = 0.20

# This controls whether day/night bands will be shown. They only look good
# on the day and week plots.
show_daynight = true
# These control the appearance of the bands if they are shown. 0xBBGGRR
# Sofa Skin blue orange:
# Night: #f0fdff Day: #fefff0 Edge: #f0fffb
daynight_day_color = 0xf0fffe
daynight_night_color = 0xfffdf0
daynight_edge_color = 0xfbfff0

## What follows is a list of subsections, each specifying a time span, such
## as a day, week, month, or year. There's nothing special about them or
## their names: it's just a convenient way to group plots with a time span
## in common. You could add a time span [[biweek_images]] and add the
## appropriate time length, aggregation strategy, etc., without changing
## any code.
##
## Within each time span, each sub-subsection is the name of a plot to be
## generated for that time span. The generated plot will be stored using
## that name, in whatever directory was specified by option 'HTML_ROOT'
## in weewx.conf.
##
## With one final nesting (four brackets!) is the sql type of each line to
## be included within that plot.
##
## Unless overridden, leaf nodes inherit options from their parent

# Default plot and aggregation. Can get overridden at any level.
plot_type = line
aggregate_type = none
width = 1
time_length = 86400 # == 24 hours

[[day_images]]
x_label_format = %H:%M
bottom_label_format = %x %X
time_length = 97200 # == 27 hours

[[[daybarometer]]]
[[[[barometer]]]]

[[[daytempdew]]]
[[[[outTemp]]]]
[[[[dewpoint]]]]

[[[daytempchill]]]
[[[[windchill]]]]
[[[[heatindex]]]]

[[[dayrain]]]
# Make sure the y-axis increment is at least 0.02 for the rain plot
yscale = None, None, 0.02
plot_type = bar
[[[[rain]]]]
aggregate_type = sum
aggregate_interval = 3600
label = Rain (hourly total)

[[[dayrx]]]
[[[[rxCheckPercent]]]]

[[[daypond]]]
yscale = None, None, 0.5
[[[[extraTemp1]]]]

[[[daywind]]]
[[[[windSpeed]]]]
[[[[windGust]]]]

[[[dayinside]]]
[[[[inTemp]]]]

[[[daywinddir]]]
# Hardwire in the y-axis scale for wind direction
yscale = 0.0, 360.0, 45.0
[[[[windDir]]]]

[[[daywindvec]]]
[[[[windvec]]]]
plot_type = vector

[[[dayradiation]]]
[[[[radiation]]]]

[[[dayuv]]]
yscale = 0, 16, 1
[[[[UV]]]]

[[week_images]]
x_label_format = %d
bottom_label_format = %x %X
time_length = 604800 # == 7 days
aggregate_type = avg
aggregate_interval = 3600

[[[weekbarometer]]]
[[[[barometer]]]]

[[[weektempdew]]]
[[[[outTemp]]]]
[[[[dewpoint]]]]

[[[weektempchill]]]
[[[[windchill]]]]
[[[[heatindex]]]]

[[[weekrain]]]
yscale = None, None, 0.02
plot_type = bar
[[[[rain]]]]
aggregate_type = sum
aggregate_interval = 86400
label = Rain (daily total)

[[[weekpond]]]
yscale = None, None, 0.5
[[[[extraTemp1]]]]

[[[weekrx]]]
[[[[rxCheckPercent]]]]

[[[weekwind]]]
[[[[windSpeed]]]]
[[[[windGust]]]]
aggregate_type = max

[[[weekinside]]]
[[[[inTemp]]]]

[[[weekwinddir]]]
yscale = 0.0, 360.0, 45.0
[[[[windDir]]]]

[[[weekwindvec]]]
[[[[windvec]]]]
plot_type = vector

[[[weekradiation]]]
[[[[radiation]]]]

[[[weekuv]]]
yscale = 0, 16, 1
[[[[UV]]]]

[[month_images]]
x_label_format = %d
bottom_label_format = %x %X
time_length = 2592000 # == 30 days
aggregate_type = avg
aggregate_interval = 10800 # == 3 hours
show_daynight = false

[[[monthbarometer]]]
[[[[barometer]]]]

[[[monthtempdew]]]
[[[[outTemp]]]]
[[[[dewpoint]]]]

[[[monthtempchill]]]
[[[[windchill]]]]
[[[[heatindex]]]]

[[[monthrain]]]
yscale = None, None, 0.02
plot_type = bar
[[[[rain]]]]
aggregate_type = sum
aggregate_interval = 86400
label = Rain (daily total)

[[[monthpond]]]
yscale = None, None, 0.5
[[[[extraTemp1]]]]

[[[monthrx]]]
[[[[rxCheckPercent]]]]

[[[monthwind]]]
[[[[windSpeed]]]]
[[[[windGust]]]]
aggregate_type = max

[[[monthinside]]]
[[[[inTemp]]]]

[[[monthwinddir]]]
yscale = 0.0, 360.0, 45.0
[[[[windDir]]]]

[[[monthwindvec]]]
[[[[windvec]]]]
plot_type = vector

[[[monthradiation]]]
[[[[radiation]]]]

[[[monthuv]]]
yscale = 0, 16, 1
[[[[UV]]]]

[[year_images]]
x_label_format = %m/%d
bottom_label_format = %x %X
time_length = 31536000 # == 365 days
aggregate_type = avg
aggregate_interval = 86400
show_daynight = false

[[[yearbarometer]]]
[[[[barometer]]]]

[[[yeartempdew]]]
[[[[outTemp]]]]
[[[[dewpoint]]]]

# Daily high/lows:
[[[yearhilow]]]
[[[[hi]]]]
data_type = outTemp
aggregate_type = max
label = High
[[[[low]]]]
data_type = outTemp
aggregate_type = min
label = Low Temperature

[[[yearwind]]]
[[[[windSpeed]]]]
[[[[windGust]]]]
aggregate_type = max

[[[yeartempchill]]]
[[[[windchill]]]]
[[[[heatindex]]]]

[[[yearrain]]]
yscale = None, None, 0.02
plot_type = bar
[[[[rain]]]]
aggregate_type = sum
# aggregate_interval = 2629800 # Magic number: the length of a nominal month
aggregate_interval = 604800 # == 1 week
label = Rain (weekly total)

[[[yearpond]]]
yscale = None, None, 0.5
[[[[extraTemp1]]]]

[[[yearrx]]]
[[[[rxCheckPercent]]]]

[[[yearinside]]]
[[[[inTemp]]]]

[[[yearwinddir]]]
yscale = 0.0, 360.0, 45.0
[[[[windDir]]]]

[[[yearwindvec]]]
[[[[windvec]]]]
plot_type = vector

[[[yearradiation]]]
[[[[radiation]]]]

[[[yearuv]]]
yscale = 0, 16, 1
[[[[UV]]]]

###############################################################################

#
# The list of generators that are to be run:
#
[Generators]
generator_list = weewx.cheetahgenerator.CheetahGenerator, weewx.imagegenerator.ImageGenerator, weewx.reportengine.CopyGenerator

Image prête à l'emploi

Voici une image prête à l'emploi avec Jessie & Pixel, weewx en mode "simulator", les skins Standard, Bootstrap, Sofaskin et apache2 installés.

Avant de l'utiliser, il faut la dézipper, celle-ci est au format .7z.

Dézipper, il faut une carte de 16Go minimum.

Compte : pi

Mot de passe par défaut de pi : raspberry

IP : DHCP, mettre une IP fixe.

Pour l'utiliser avec votre station météo, il faut reconfigurer weewx.

pi@raspberrypi:~ $ cd /home/weewx

pi@raspberrypi:home/weewx $ sudo ./bin/wee_config --reconfigure

pi@raspberrypi:home/weewx $ sudo reboot