[tuto] Station météo sur NAS TS-x53 avec Weewx

Les tutoriaux rédigés par les membres
Répondre
Tryphon
Padawan
Messages : 78
Enregistré le : 01 mars 2015

[tuto] Station météo sur NAS TS-x53 avec Weewx

Message par Tryphon » 03 janv. 2016 19:52

Mise à jour : installation dans QTS 4.3

J'ai migré vers la version 4.3 du firmware et comme je m'y attendais j'ai dû réinstaller ma station météo et d'autres bricoles (NAS Qnap TS-653). J'en ai profité pour télécharger la dernière version du logiciel Weewx qui intègre plus de pilotes de stations météo connectées en USB. J'utilise une station météo de marque AcuRite et ce n'est pas un hasard : elle est bon marché et suffisamment précise pour mes besoins. J'ai eu de bonnes surprises : le nouveau QTS simplifie beaucoup l'installation d'une station météo et d'un contrôleur solaire. Cela devrait encourager davantage les qnapiens intéressés. Voici donc.

1) Installer le QPKG QPython2 2.7.13.0 disponible sur ce forum (merci QoolBox).

La version de PIL n'est pas entièrement fonctionnelle car elle déclenche une erreur :

File "/share/CACHEDEV1_DATA/.qpkg/QPython2/lib/python2.7/site-packages/PIL/Image.py", line 69, in <module>
Jun 20 06:25:37 SERVER user.info weewx[5054]: **** raise ImportError("The _imaging extension was built for another "
Jun 20 06:25:37 SERVER user.info weewx[5054]: **** ImportError: The _imaging extension was built for another version of Pillow or PIL

Il suffit de désinstaller PIL et d'installer la dernière version de Pillow. Ouvrez une console SSH et allez dans /opt/QPython2/bin puis :

Code : Tout sélectionner

./pip uninstall PIL
./pip uninstall pillow
./pip install pillow
Si ce raccourci n'existe pas, créez-le :

Code : Tout sélectionner

ln -s /opt/QPython2/bin/python2.7 /usr/bin/python
2) Télécharger Weewx 3.7.1 et décompactez-le dans /share/Public par exemple.

Si ce n'est pas déjà fait, connectez votre station météo USB à votre NAS.

En console, allez dans le répertoire d'installation de weewx-3.7.1

Renseignez la variable home dans le fichier setup.cfg :

Code : Tout sélectionner

home = /share/YourNAS_Volume/.qpkg/weewx
Procédez à la compilation et à l'installation de Weewx (http://www.weewx.com/docs/setup.htm):

Code : Tout sélectionner

chmod +x setup.py
./setup.py build
./setup.py install
Vous aurez peut-être besoin de paramétrer plus finement Weewx, et c'est dans ce fichier que vous pouvez le faire :

/share/YourNAS_Volume/.qpkg/weewx/weewx.conf

Le site web de Weewx est très bien documenté : http://www.weewx.com/

et vous y trouverez tous les raffinements nécessaires.

3) Intégrez Weewx dans Apache

Créez apache-weewx.conf

Code : Tout sélectionner

vi /etc/config/apache/extra/apache-weewx.conf
et collez ce code (remplacez YourNAS_Volume par le nom de volume de votre NAS):

Code : Tout sélectionner

<IfModule alias_module>
Alias /weewx /share/YourNAS_Volume/.qpkg/weewx/public_html
<Directory /share/YourNAS_Volume/.qpkg/weewx/public_html>
  Options FollowSymlinks
  AllowOverride None
  Order allow,deny
  Allow from all
</Directory>
</IfModule>
Editez apache.conf :

Code : Tout sélectionner

# vi /etc/config/apache/apache.conf
Ajoutez-y :

Code : Tout sélectionner

Include /etc/config/apache/extra/apache-weewx.conf
à la fin du fichier.

J'ai créé ce petit code pour permettre l'affichage de la page html de Weewx :

Code : Tout sélectionner

vi /share/YourNAS_Volume/.qpkg/weewx/app_proxy_update.sh
(vous pouvez créer ce fichier où vous voulez)

Insérez ce qui suit :

Code : Tout sélectionner

/etc/init.d/Qthttpd.sh restart
echo ProxyPass "/weewx/" "http://127.0.0.1:80/weewx/" retry=0 >> /etc/app_proxy.conf
/etc/init.d/thttpd.sh restart
Exécutez-le :

Code : Tout sélectionner

sh /share/YourNAS_Volume/.qpkg/weewx/app_proxy_update.sh
4) Programme de démarrage de Weewx

Créez ce fichier (remplacez YourNAS_Volume par le nom de volume de votre NAS):

Code : Tout sélectionner

vi /share/YourNAS_Volume/.qpkg/weewx/startwx.sh
et placez-y ce code :

Code : Tout sélectionner

#!/bin/sh

WEEWX_BIN="/share/YourNAS_Volume/.qpkg/weewx/bin/weewxd"
WEEWX_CFG="/share/YourNAS_Volume/.qpkg/weewx/weewx.conf"
PIDWEEWX="/var/run/weewx.pid"
PIDRVBUS="/var/run/rvbus.pid"

# COUNT="$(/opt/bin/pidof weewxd | /opt/bin/wc -w)"
# PIDs="$(/opt/bin/echo -e "${COUNT}" | /opt/bin/tr -d '[[:space:]]')"


# PYTHON="/opt/QPtyhon2/bin/python2.7"
if [ ! -f /usr/bin/python ]
then
  ln -s /opt/QPython2/bin/python2.7 /usr/bin/python
fi

/sbin/syslogd -m0

case "$1" in
  "start")
      echo "Starting WeeWX."
      /sbin/log_tool -t 0 -a "Starting WeeWX..."
      taskactivity=$(ps | grep "weewxd" | grep -v "grep")
      if [ -n "$taskactivity" ]
      then
        echo "WeeWX is already running."
      else                                   
        ${WEEWX_BIN} -d ${WEEWX_CFG}
        echo $! > ${PIDWEEWX}
        echo "WeeWX Started at `/bin/date -R`"
      fi
      /sbin/log_tool -t 0 -a "WeeWx Started."
      ;;
                                                     
    "stop")
         echo "Stopping WeeWX..."
         if [ -f ${PIDWEEWX} ] ; then
           killall -9 weewxd
           rm ${PIDWEEWX}
           echo "WeeWX stopped."
           /sbin/log_tool -t 0 -a "WeeWX stopped."
         else
           echo "It does not appear WeeWX is running."
         fi
         ;;
                                                                                          
    *)
         echo "$0 [start|stop]"
         ;;
                                                                                                                  
esac
Voilà, tout y est. Pour démarrer Weewx :

Code : Tout sélectionner

sh /share/YourNAS_Volume/.qpkg/weewx/startwx.sh start
Pour voir le log :

Code : Tout sélectionner

tail -f /var/log/messages
Après le lancement de Weewx, il faut attendre au moins 5 minutes pour que les premières données entrent dans la base de données.

ENFIN, ouvrez votre navigateur sur votre ordinateur client et entrez l'adresse :

http://IP_DE_VOTRE_NAS/weewx/

Si vous êtes chanceux, vous verrez vos données météo en temps réel!

Si vous avez un nom de domaine par lequel vous accédez à votre NAS à distance :

http://yourdomain:8080/weewx/

vous permet de consulter vos données météo où que vous soyez.

Conclusion : Weewx est un logiciel léger et très modulable pour qui connaît un peu Python. En effet, j'ai connecté en USB une interface RS485 pour que le NAS communique avec le contrôleur Resol Deltasol MX de mes panneaux solaires. En bidouillant un peu, Weewx est capable de récupérer les données solaires et de les intégrer à sa page html.

Ancienne version : installation dans QTS 4.2

Je l'avais promis et le voici !

Ce tutoriel est pour le moment une ébauche fonctionnelle expliquant comment connecter une station météo via le logiciel Weewx directement sur un NAS Qnap.

Il y a de nombreuses limitations dont certaines, je n'en doute pas, seront facilement levées par vos contributions. Je dois bien l'avouer, mes connaissances informatiques, surtout intuitives, restent encore fragmentaires.

Cela dit, quel bonheur de voir apparaître la page web de Weewx affichant les données de ma station météo.

Tout d'abord, je remercie Sar6e qui le premier a présenté le même tutoriel : http://forum.qnap.com/viewtopic.php?t=95822, sans oublier Dave qui a permis la réalisation d'un pilote AcuRite sous Linux : http://www.desert-home.com et tous les autres contributeurs dans ce forum et ailleurs. L'originalité de ce tutoriel réside dans le choix de la station météo :

AcuRite modèle 01036

un matériel complet, bon marché et facile à trouver. Évidemment ce qui suit s'adapte aisément avec les autres modèles AcuRite.

Avant de commencer, notez que ce tutoriel ne se substitue pas à la documentation en ligne de Weewx : http://www.weewx.com/docs/setup.htm mais aide à installer ce qu'il manque au Qnap pour supporter Weewx et le pilote AcuRite.

J'ai installé Weewx 3.3.1 dans un NAS Qnap TS-653 sous QTS 4.2.0 et j'ai obtenu une connexion USB directe avec une station météo de marque AcuRite. C'est ce qu'il vous faut, ou l'équivalent, pour profiter pleinement de ce tutoriel.

Trêve de bavardage et commençons ...

La station AcuRite doit être en mode "USB 3" ou "USB 4" pour l'envoie des données par câble USB (suivez les indications de la documentation de l'appareil).

Connectez la station (USB) et connectez-vous au NAS en console SSH. Trouver sur quel port est connecté la station :

Code : Tout sélectionner

# lsusb
Si vous repérez l'idVendor et l'idProduct suivant : ID 24c0:0003, c'est que la station AcuRite est connectée.

Sur le NAS, les prérequis sont les suivants :
Activer MySQL
Installer phpMyAdmin (QPKG)
Installer Python (QPKG)
ou
QPython2 (QPKG disponible sur ce forum grâce à QoolBox)
Installer Optware puis l'IPKG gcc ou QnapWare puis l'OPKG gcc

Seulement pour le QPKG Python (et donc inutile pour QPython2)
Téléchargez à l'adresse https://pypi.python.org/pypi?%3Aaction=index et décompactez les modules Python suivants dans /share/Public

Code : Tout sélectionner

# cd /share/Public
# tar -xvfz module.tar.gz
ou module est dans cette liste:

configobj
cheetah
pil (Python Imaging Library (PIL))
pyephem
six
(pyserial pour une station météo connectée en mode serial, ce qui n'est pas le cas des modèles AcuRite)

Compilez et installez ces modules (supprimez le dossier build s'il y en a un dans ces module sinon les sources ne sont pas recompilés):

Code : Tout sélectionner

# cd /share/Public/module.nnn
# rm -r build
# python setup.py install
Recommencez pour chacun des modules.

Dans ce qui suit, vous devez disposer d'une distribution Debian ou Ubuntu fonctionnelle et complète sur un ordinateur (ou demandez à quelqu'un d'effectuer l'opération suivante pour vous). Dans tous les cas, téléchargez et décompactez sur votre ordinateur

pyusb-0.4.3

que vous pouvez trouver là par exemple : http://sourceforge.net/projects/pyusb/f ... 0.x/0.4.3/

Oui, je sais, c'est un vieux module pyusb mais pour le moment le pilote AcuRite ne fonctionne qu'avec cette version. Attention, pyusb doit être recompilé comme suit sur votre ordinateur en installant tout d'abord :

1) python (PyUSB is useless without it)
2) gcc (the compiler, linker, etc.)
3) python-dev (includes header files needed to compile PyUSB)
4) libusb-dev (C library upon which PyUSB is based)

Tapez:

Code : Tout sélectionner

# sudo apt-get update
# sudo apt-get install python gcc python-dev libusb-dev
Puis compilez pyusb

Code : Tout sélectionner

# cd /chemin/vers/sources/pyusb-0.4.3
# python setup.py install
Transférer le dossier pyusb-0.4.3 de votre ordinateur vers votre NAS dans /share/Public. Dans la console SSH,

Code : Tout sélectionner

# cd /share/Public/pyusb-0.4.3
# python setup.py install
Au cas où vous devriez recommencer l'installation d'un module (quelque chose s'est mal passé) ...
1) Désinstaller le module voulu
# cd /share/Public/module.nnn
# python setup.py install --record install-files.txt
# cat install-files.txt | xargs rm -rf
2) Corrigez le problème selon l'erreur indiquée (si c'est possible) et reprenez l'installation du module

Pour le module mysqldb inclus dans Python il faut ajouter un chemin dans PATH. Cela se fait dans le fichier ~/.bashrc en y ajoutant cette ligne :

export PATH=$PATH:/usr/local/mysql/bin

(je n'ai pas réussi à l'inclure plus proprement par la méthode autorun, plus propre : $PATH mise à jour ne survit pas à la fin de l'exécution de autorun.sh)

Installer weewx selon : http://www.weewx.com/docs/setup.htm,

1) Téléchargez l'archive weewx-X.Y.Z.tar.gz (X.Y.Z = 3.3.1 à ce jour) et décompactez là dans /share/Public

Code : Tout sélectionner

# cd /share/Public/weewx-X.Y.Z
# tar -xvfz weewx-X.Y.Z.tar.gz
2) Configurez l'installation

Code : Tout sélectionner

# cd weewx-X.Y.Z
# vi setup.cfg
Changez la ligne home=/home/weewx par

home=/share/CACHEDEV1_DATA/.qpkg/weewx

Attention : CACHEDEV1_DATA est le nom de volume des données de MON NAS. Verifiez le nom de volume de votre NAS et changez la ligne ci-dessus au besoin.

3) Installez Weewx

Code : Tout sélectionner

# python setup.py build
# pyhton setup.py install
Chercher sur l'internet la latitude, la longitute (google map) et l'altitude (http://www.daftlogic.com/sandbox-google ... titude.htm) du lieu où est installée la station météo.

Continuez l'installation en suivant les instructions.

Vous devez finir les réglages à la main en éditant /share/CACHEDEV1_DATA/.qpkg/weewx/weewx.conf, et dans mon cas, j'ai adapté la section [AcuRite] :

[AcuRite]
# This section is for AcuRite weather stations.

# The station model, e.g., 'AcuRite 01025' or 'AcuRite 02032C'
model = AcuRite 01036

# The driver to use:
driver = weewx.drivers.acurite
use_constants = true
ignore_bounds = true

Pour voir Weewx fonctionner sur le serveur, il faut renseigner Apache. Créer ce fichier (adapter le nom de volume) :

Code : Tout sélectionner

# vi /etc/config/apache/extra/apache-weewx.conf
<IfModule alias_module>
Alias /weewx /share/CACHEDEV1_DATA/.qpkg/weewx/public_html
<Directory /share/CACHEDEV1_DATA/.qpkg/weewx/public_html>
Options FollowSymlinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</IfModule>

Sauvegardez le fichier et poursuivez :

Code : Tout sélectionner

# vi /etc/config/apache/apache.conf
Ajoutez

Include /etc/config/apache/extra/apache-weewx.conf

à la fin du fichier.

Redémarrez Apache :

Code : Tout sélectionner

# /etc/init.d/Qthttpd.sh restart
Activez le log pour weewx :

Code : Tout sélectionner

# /sbin/syslogd -m0
Démarrez Weewx en Daemon :

Code : Tout sélectionner

# /share/CACHEDEV1_DATA/.qpkg/weewx/bin/weewxd -d /share/CACHEDEV1_DATA/.qpkg/weewx/weewx.conf
Puis :

Code : Tout sélectionner

# tail -f /var/log/messages
pour voir ce qui se passe ... S'il y a des problèmes, c'est ici qu'ils apparaîtront.

Après le lancement de Weewx, il faut attendre au moins 5 minutes pour que les premières données entrent dans la base de données.

ENFIN, ouvrez votre navigateur sur votre ordinateur client et entrez l'adresse :

http://IP_DE_VOTRE_NAS/weewx

Si vous êtes chanceux, vous verrez vos données météo en temps réel!

Pour arrêter Weewx :

Code : Tout sélectionner

# /share/CACHEDEV1_DATA/.qpkg/weewx/bin/weewxd -x /share/CACHEDEV1_DATA/.qpkg/weewx/weewx.conf
Il y a de nombreux problèmes à résoudre mais le plus gros est fait. Avec votre contribution, je l'espère, ces problèmes devraient se résoudre, et je mettrais à jour le tutoriel en conséquence. Avec le temps, je corrigerai aussi les défauts cosmétiques de cette présentation.
Modifié en dernier par Tryphon le 29 juin 2017 14:33, modifié 6 fois.
TS-559, TS653 8Go, NMP1000

Avatar du membre
FX Cachem
Site Admin
Messages : 8763
Enregistré le : 08 décembre 2013
Professionnel : Non
Localisation : Paris
Contact :

Re: [tuto] Station météo AcuRite sur NAS TS-x53 avec Weewx

Message par FX Cachem » 03 janv. 2016 21:41

Nom d'un petit bonhomme... :o En voila un super Tuto !!!
Merci Tryphon pour le partage, très sympa ;)
Blogueur sur Cachem et administrateur du Forum des NAS
NAS : Synology DS412+ | QNAP TS-470 Pro | ASUSTOR AS-302T

Tryphon
Padawan
Messages : 78
Enregistré le : 01 mars 2015

Re: [tuto] Station météo AcuRite sur NAS TS-x53 avec Weewx

Message par Tryphon » 04 janv. 2016 04:07

Je suis heureux d'en faire profiter. Le processus Weewx est stable depuis plusieurs heures et je verrai demain ce qu'il en est. 8-)
TS-559, TS653 8Go, NMP1000

Tryphon
Padawan
Messages : 78
Enregistré le : 01 mars 2015

Re: [tuto] Station météo sur NAS TS-x53 avec Weewx

Message par Tryphon » 25 juin 2017 16:51

Bonjour,

J'ai mis à jour le tutoriel pour QTS 4.3.
TS-559, TS653 8Go, NMP1000

Avatar du membre
FX Cachem
Site Admin
Messages : 8763
Enregistré le : 08 décembre 2013
Professionnel : Non
Localisation : Paris
Contact :

Re: [tuto] Station météo sur NAS TS-x53 avec Weewx

Message par FX Cachem » 25 juin 2017 18:42

Tryphon a écrit :
25 juin 2017 16:51
J'ai mis à jour le tutoriel pour QTS 4.3.
Bravo ! ;)
Blogueur sur Cachem et administrateur du Forum des NAS
NAS : Synology DS412+ | QNAP TS-470 Pro | ASUSTOR AS-302T

Répondre

Retourner vers « Tutoriaux »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 2 invités