Interceptor Wifi sur la Froggit – WH6000 : de la théorie …. à la pratique janvier 11, 2021 Dans le dernier article publié, je vous ai expliqué comment on pouvait utiliser une extension (Interceptor téléchargeable ici https://github.com/matthewwall/weewx-interceptor ) pour « détourner » les datas de la station. Oui mais voilà , de la théorie à la pratique ce n’est pas si simple. J’avais échangé avec Patrick , une personne qui a la même station (la FROGGIT WH-6000) et qui, pareil voulait être indépendant des services Weather Undeground et qui m’avait contacté à travers mon formulaire (puis par téléphone). Il avait bien étudié le système et m’avait fourni un fichier docx pour l’installation du système. De la théorie à la pratique , première partie Dans un premier temps, j’ai testé l’extension sur un rpi de test , un weewx + l’extension Interceptor , avec quelques difficultés pour installer le package libpcap , ca a fonctionné et 2 3 lignes de commandes plus tard le systeme etait fonctionnel. Oui mais il faut transposer depuis mon raspberry de test sur le rpi2 de production. De la théorie à la pratique , deuxième partie J’ai donc décidé de préparer mon raspberry Pi de « production » pour passer dans ce mode de fonctionnement. 1er problème : j’avais désactivé la partie WIFI (dongle USB) : impossible de réactiver le wifi sur le raspberry : le dongle est bien détecté mais le driver est introuvable. La solution : #rpi-update et un reboot de la bête. 2ème problème : Paramétrer le wifi ( on trouve ca facilement sur le net , prendre le bon SSID / le bon mot de passe Wifi et générer la clef wpa-psk, pour l’instant la carte est en DHCP mais je pense que je vais fixer l’ip de la carte reseau Wifi , à suivre donc …. 3ème problème : Installer le pre-requis pour que l’installation de Interceptor fonctionne : python-libpcap C’est cette partie qui ma donné du fil a retordre , impossible de faire un apt-get etc … , je me suis donc lancer dans la recherche de la librairie au format .deb Après de nombreuses recherches et de tentatives , j’ai enfin trouvé LA solution : il faut aller ici : https://packages.debian.org/jessie/python-pypcap puis trouver la bonne architecture armhf et enfin trouver le « bon » dépôt : http://ftp.fr.debian.org/debian/pool/main/p/python-pypcap/python-pypcap_1.1.2+debian-2.2_armhf.deb wget http://ftp.fr.debian.org/debian/pool/main/p/python-pypcap/python-pypcap_1.1.2+debian-2.2_armhf.deb Pour l’installation , il suffira de passer par l’outil dpkg pour l’installer. dpkg -i python-pypcap_1.1.2+debian-2.2_armhf.deb L’installation de Interceptor j’ai 2 stations Météo une Oregon Scientifics WMR200 ( qui donne des signes de faiblesse) et la station FROGGIT, on peut tout à fait faire cohabiter 2 voir 3 stations sur le même weewx, (j’ai fait un article la dessus). L’installation de l’extension Interceptor doit se faire en indiquant dans quel fichier de configuration il doit s’installer, puisque je ne vais intercepter que les données de la FROGGIT. 1ere étape : Téléchargement et installation wget -O weewx-interceptor.zip https://github.com/matthewwall/weewx-interceptor/archive/master.zip /home/pi/weewx-4.2.0/bin/wee_extension –install weewx-interceptor.zip 2ème étape : Paramétrage de l’extension dans le fichier de configuration /home/pi/weewx-4.2.0/bin/wee_config --reconfigure --driver=user.interceptor --no-prompt --config=/home/weewx/FROGGIT.conf 3ème étape : le contenu du fichier de configuration de FROGGIT.conf : ############################################################################## [Interceptor] # This section is for the network traffic interceptor driver. # The driver to use: driver = user.interceptor # Specify the hardware device to capture. Options include: # wu-client - any hardware that uses the weather underground protocol device_type = wu-client mode = listen iface = wlan0 pcap_filter = src 192.168.0.36 and dst port 80 ############################################################################## le driver c’est wu-client et le mode sniff ne fonctionne pas chez moi il a fallu que je mette en mode listen , je vais « écouter » sur le port 80 (port classique du http) et l’adresse (192.168.0.36) de la station FROGGIT (il suffit d’utiliser un logiciel gratuit du type https://www.advanced-ip-scanner.com/fr/) Les tests ! j’ai réintégré la station FROGGIT dans mes 2 instances ( fichier weewx-multi sous /etc/default/ , rajout de la valeur « FROGGIT ».) root@raspberrypi:/home/pi# cat /etc/default/weewx-multi WEEWX_INSTANCES="WMR200 FROGGIT" root@raspberrypi:/home/pi# J’ai passé également la station FROGGIT en mode debug en modifiant la ligne debug= 0 ( zero) à debug = 1 tout au début du fichier de configuration de FROGGIT.conf Puis on stoppe et et on exécute weewx à nouveau : # service weewx stop # service weewx start # service weewx status Vous pouvez exécuter également l’extension de façon autonome : PYTHONPATH=/usr/share/weewx python2 /home/pi/weewx-4.2.0/bin/user/interceptor.py --device=wu-client --mode=listen --iface=wlan0 --filter="src 192.168.0.36 and dst port 80" et voici les logs (dans /var/log/syslog) : Jan 10 21:06:22 raspberrypi interceptor.py: interceptor: MainThread: mode is sniff Jan 10 21:06:22 raspberrypi interceptor.py: interceptor: MainThread: sniff iface=wlan0 promiscuous=0 Jan 10 21:06:22 raspberrypi interceptor.py: interceptor: MainThread: sniff filter 'src 192.168.0.36 and dst port 80' Jan 10 21:06:22 raspberrypi interceptor.py: interceptor: MainThread: pypcap (1.1) Jan 10 21:06:22 raspberrypi interceptor.py: interceptor: ServerThread: start sniff server Jan 10 21:09:13 raspberrypi interceptor.py: interceptor: MainThread: mode is listen Jan 10 21:09:13 raspberrypi interceptor.py: interceptor: MainThread: listen on :80 Jan 10 21:09:13 raspberrypi interceptor.py: interceptor: ServerThread: start tcp server Jan 10 21:09:21 raspberrypi interceptor.py: interceptor: ServerThread: GET: ID=Station&PASSWORD=XXXX&action=updateraww&realtime=1&rtfreq=5&dateutc=now&baromin=30.95&tempf=32.0&humidity=95&windspeedmph=0&windgustmph=0&winddir=34&dewptf=30.7&rainin=0&dailyrainin=0&UV=0&indoortempf=68.0&indoorhumidity=52 Jan 10 21:09:21 raspberrypi interceptor.py: interceptor: MainThread: using rain_total 0.0 from dailyrainin Conclusion Ca fonctionne donc avec un peu de recherches ( surtout pour la libraire pytohon-libcap) J’avais posté une aide dans le groupee Google de Weewx : https://groups.google.com/g/weewx-user/c/U0I3vP5AZlo/m/GskZKLS-BwAJ La prochaine étape : la mise en réelle production ( suppression de Weather Undeground comme source fiable et utilisation du sniffer Wifi ) Navigation de l’article Comment bien paramétrer et utiliser l’extension « Interceptor » avec WeewxUn nouveau thème (ou skin) le Belchertown