Table des matières
weeWX
Attention: TOUS ce qui est ici est uniquement valable pour weewx < v5
Description
WeeWX est un logiciel open source, écrit en Python, qui interagit avec les station météo pour produire des graphiques, des rapports et des pages HTML.
Intallation de weeWX avec le module SDR
Installation de weeWX avec le module SDR (software-defined radio). Dans cette configuration vous pouvez réaliser une station météo ultra low cost. Je ne decris pas ici la configuration d'apache ou nginx.
Il faut :
- Un PC sous GNU/Linux ou un raspberry
- Une clé USB capable de recevoir les signaux radio https://doc.ubuntu-fr.org/rtl2832u
- Au moins un capteur transmettant via onde radio 433.9 MHz
Dépendances
En root :
apt-get install cmake libusb-1.0-0-dev build-essential autoconf libtool pkg-config
rtl-sdr
En user :
mkdir meteo && cd meteo git clone git://git.osmocom.org/rtl-sdr.git && cd rtl-sdr && mkdir build && cd build cmake -DINSTALL_UDEV_RULES=ON .. && make -j"$(nproc)"
En root :
make install ldconfig
rtl_433
En user :
git clone https://github.com/merbanan/rtl_433 && cd rtl_433 && mkdir build && cd build cmake .. && make -j"$(nproc)"
En root :
make install
Correction des modules chargés
Dans certain cas les modules de la clé USB radio sont utiliser par d’autre application que weeWX, il faut donc les désactiver.
En root, ajouter les lignes ci-dessous dans /etc/modprobe.d/blacklist.conf
blacklist rtl2830 blacklist rtl2832 blacklist rtl2832_sdr blacklist dvb_usb_v2 blacklist dvb_core blacklist dvb_usb_rtl28xxu blacklist dvb_core blacklist videodev blacklist videobuf2_vmalloc blacklist videobuf2_v4l2 blacklist videobuf2_memops blacklist videobuf2_common
En root, taper `update-initramfs -u && reboot`
weeWX
Installation
En root :
wget -qO - http://weewx.com/keys.html | sudo apt-key add - wget -qO - http://weewx.com/apt/weewx.list | sudo tee /etc/apt/sources.list.d/weewx.list apt-get update apt-get install weewx pip python3-configobj python3-cheetah python3-pil python3-serialpython3-usb python3-pip python3-ephem python3-mysqldb pip install pyephem service weewx stop git clone https://github.com/matthewwall/weewx-sdr.git wee_extension --install weewx-sdr wee_config --reconfigure
Configuration
- Brancher votre clé USB SDR
- Allumer un capteur
- En root taper
rtl_433
ourtl_433 -M newmodel
, et vérifier que vous recevez un signal, si oui continuer
En root taper PYTHONPATH=/usr/share/weewx python3 /usr/share/weewx/user/sdr.py --cmd="rtl_433 -M utc -F json"
, en sortie il doit y avoir quelque chose dans ce genre (si la commande `rtl_433` a fonctionné, et que celle-ci retourne une erreur, relancer jusqu’à que ça fonctionne) :
out:[u'{"time" : "2020-01-02 05:25:34", "model" : "Ambient Weather F007TH Thermo-Hygrometer", "device" : 11, "channel" : 1, "battery" : "OK", "temperature_F" : 32.500, "humidity" : 99, "mic" : "CRC"}\n'] parsed: {'temperature.1:11.AmbientF007THPacket': 32.5, 'humidity.1:11.AmbientF007THPacket': 99.0, 'usUnits': 1, 'dateTime': 1577942734}
Ici il faut ajouter la commande `cmd = rtl_433 -M utc -F json`, les sondes `temperature.1:11.AmbientF007THPacket` et `humidity.1:11.AmbientF007THPacket`, au fichier de configuration de weeWX dans `/etc/weewx/weewx.conf`. Comme ceci:
[SDR] # This section is for the software-defined radio driver. # The driver to use driver = user.sdr path = /usr/local/bin cmd = rtl_433 -M utc -F json [[sensor_map]] outTemp = temperature.1:11.AmbientF007THPacket outHumidity = humidity.1:11.AmbientF007THPacket
Séparé les logs de WeeWX du fichier syslog
ln -s /etc/weewx/rsyslog.d/weewx.conf /etc/rsyslog.d service rsyslog restart sudo ln -s /etc/weewx/logrotate.d/weewx /etc/logrotate.d
Démarrage
En root :
service weewx start
Commandes utiles
wee_reports /etc/weewx/weewx.conf
= force la regeneration des rapports, et du sitetail -f /var/log/syslog | grep -i "weewx"
= lire syslog en livetail -f /var/log/weewx.log
= lire weewx.log en live