==== Installation de WeeWx ====
La première chose à faire et de faire les mises à jour:
sudo apt-get update && sudo apt-get -y upgrade
# packages necessaires:
sudo apt-get install python-configobj
sudo apt-get install python-cheetah
sudo apt-get install python-imaging
# nécessaire si on utilise un port série ou USB:
sudo apt-get install python-serial
sudo apt-get install python-usb
# nécessaire si on utilise MySQL:
sudo apt-get install mysql-client
sudo apt-get install python-mysqldb
# nécessaire si on veut utiliser le FTP:
sudo apt-get install ftp
Taper les lignes commençant par sudo une à une ou alors
sudo apt-get install python-configobj python-cheetah python-imaging python-serial python-usb
Téléchargement du ficher Weexw, pour avoir les numéro de version se rendre sur [[http://weewx.com/downloads/|le site de téléchargement]]
Taper:
sudo wget weewx.com/downloads/weewx-X.Y.Z.tar.gz
Nous allons decompresser le fichier (indiquer la version weewx-X.Y.Z)
Ci-dessous la version courante en date du 09/04/16
sudo tar xvfz weewx-3.5.0.tar.gz
Se rendre dans le repertoire decompresser:
cd weewx-3.5.0
Installons le programme
./setup.py build
puis
sudo ./setup.py install
Puis répondez aux questions:
description: Station météo WS1080
altitude: 315, meter
latitude: (valeur en decimal)
longitude: (valeur en decimal)
units [metric]: faire entrée
Installed drivers include:
0) AcuRite (weewx.drivers.acurite)
1) CC3000 (weewx.drivers.cc3000)
2) FineOffsetUSB (weewx.drivers.fousb)
3) Simulator (weewx.drivers.simulator)
4) TE923 (weewx.drivers.te923)
5) Ultimeter (weewx.drivers.ultimeter)
6) Vantage (weewx.drivers.vantage)
7) WMR100 (weewx.drivers.wmr100)
8) WMR200 (weewx.drivers.wmr200)
9) WMR9x8 (weewx.drivers.wmr9x8)
10) WS1 (weewx.drivers.ws1)
11) WS23xx (weewx.drivers.ws23xx)
12) WS28xx (weewx.drivers.ws28xx)
choose a driver: 2 (dans mon cas) pour une station Conrad WS1080
Et voila nous avons entré les paramètres demandés
Pour relancer la configuration:
/home/weewx/bin/wee_config --reconfigure --driver=weewx.drivers.vantage
Nous allons éditer le fichier conf:
sudo nano /home/pi/weewx-3.5.0/weewx.conf
changer le model si besoin
# The station model, e.g., WH1080, WS1090, WS2080, WH3081
model = WS1080
Changer le target_unit
target_unit = METRIC
**CTRL X** pour quitter
Le logiciel est maintenant install pour vérifier si votre station météo répond, taper la commande suivante:
sudo /home/pi/weewx-3.5.0/bin/wee_device
Nous allons éditer wee_device pour enlever les lignes d'informations et conserver uniquement les données météo.
sudo nano /home/pi/weewx-3.5.0/bin/wee_device
ajouter # sur les lignes suivante
# print 'Using configuration file %s' % config_fn
et
# print 'Using %s driver version %s (%s)' % (
# driver_name, driver_vers, driver)
La commande suivante nous donnera que les données météo
sudo /home/pi/weewx-3.5.0/bin/wee_device --current
==== Modification de Logic.tcl ====
Editer Logic.tcl et ajouter les lignes suivantes:
sudo nano /usr/share/svxlink/events.d/local/Logic.tcl
#SEND DTMF CODE 25#
#WEATHER STATION WITH WEEWX
if {$cmd == "25"} {
#ASK DATA
playMsg "SVXCard/Weatherstation" "weatherinfo"
set runcmd [exec /home/pi/weewx-3.5.0/bin/wee_device --current]; #ask weather datas
set splitip [split $runcmd ,]
lassign $splitip status delay outTempBatteryStatus outTemp outHumidity UV radiation rain dateTime windDir pressure windSpeed inHum$
#puts $status
#puts $delay
#puts $outTempBatteryStatus
#TEMPERATURE OUT
puts $outTemp
set outTemp [lindex $outTemp 1]
if {$outTemp != "None"} {
set outTemp [format {%0.1f} [expr $outTemp]]
playMsg "SVXCard/Weatherstation" "tempext";
playTemp $outTemp;
} else {
puts "Temperature exterieur non disponible"
playMsg "SVXCard/Weatherstation" "tempext";
playMsg "SVXCard/Weatherstation" "noavailable";
}
#HUMIDITY OUT
puts $outHumidity
set outHumidity [lindex $outHumidity 1]
if {$outHumidity != "None"} {
playMsg "SVXCard/Weatherstation" "humidityout";
playNumber $outHumidity;
playMsg "Default" "percent";
} else {
puts "Humidité exterieur non disponible"
playMsg "SVXCard/Weatherstation" "humidityext";
playMsg "SVXCard/Weatherstation" "noavailable";
}
#puts $UV
#puts $radiation
puts $rain
#puts $dateTime
#WIND DIRECTION
puts $windDir
set windDir [lindex $windDir 1]
playMsg "SVXCard/Weatherstation" "winddir";
playWindDir $windDir
#WINDSPEED
puts $windSpeed
set windSpeed [lindex $windSpeed 1]
if {$windSpeed != "None"} {
playMsg "SVXCard/Weatherstation" "windspeed";
set windSpeed [format {%0.1f} [expr $windSpeed]]
playNumber $windSpeed;
playMsg "SVXCard/Weatherstation" "kmh";
} else {
puts "Vitesse du vent non disponible"
}
#PRESSURE
puts $pressure
set pressure [lindex $pressure 1]
HUMIDITY OUT
puts $outHumidity
set outHumidity [lindex $outHumidity 1]
if {$outHumidity != "None"} {
playMsg "SVXCard/Weatherstation" "humidityout";
playNumber $outHumidity;
playMsg "Default" "percent";
} else {
puts "Humidité exterieur non disponible"
playMsg "SVXCard/Weatherstation" "humidityext";
playMsg "SVXCard/Weatherstation" "noavailable";
}
#puts $UV
#puts $radiation
puts $rain
#puts $dateTime
#WIND DIRECTION
puts $windDir
set windDir [lindex $windDir 1]
playMsg "SVXCard/Weatherstation" "winddir";
playWindDir $windDir
#WINDSPEED
puts $windSpeed
set windSpeed [lindex $windSpeed 1]
if {$windSpeed != "None"} {
playMsg "SVXCard/Weatherstation" "windspeed";
set windSpeed [format {%0.1f} [expr $windSpeed]]
playNumber $windSpeed;
playMsg "SVXCard/Weatherstation" "kmh";
} else {
puts "Vitesse du vent non disponible"
}
#PRESSURE
puts $pressure
set pressure [lindex $pressure 1]
set pressure [format {%0.1f} [expr $pressure]]
playMsg "SVXCard/Weatherstation" "pressure";
playNumber $pressure;
playMsg "SVXCard/Weatherstation" "hpa";
# TEMPERATURE IN
puts $inTemp
set inTemp [lindex $inTemp 1]
set inTemp [format {%0.1f} [expr $inTemp]]
playMsg "SVXCard/Weatherstation" "tempint";
playTemp $inTemp;
# HUMINIDY IN
puts $inHumidity
set inHumidity [lindex $inHumidity 1]
playMsg "SVXCard/Weatherstation" "humidityin";
playNumber $inHumidity;
playMsg "Default" "percent";
#puts $rxCheckPercent
puts $windGust
puts $rainTotal
#puts $ptr
#puts $usUnits
#WIND GUST DIRECTION
puts $windGustDir
set windDir [lindex $windGustDir 1]
playWindDir $windGustDir
return 1
}
Il est nécessaire d'ajouter un fichier locale.tcl dans le events.d du fichier language. (fr_FR/events.d/locale.tcl) disponible [[https://github.com/F8ASB/fr_FR_Agnes/blob/master/events.d/locale.tcl/| ici]], c'est lui qui va gérer les modifications d'algorithme pour la langue français et la fonction pour la vitesse de vent.
{{youtube>3OgZJOwSX60?medium}}