Installer un contrôleur Z-Wave, RFXCom sur un NAS QNAP. Test avec Docker et VM

Dans ce tutoriel nous allons voir comment installer les modules nécessaires pour supporter la plupart des dongles et passerelles domotiques (Z-Wave, RFXCom, RFlink, bluetooth, sniffer Zigbee..). Le script autorun.sh permet de recharger les modules automatiquement après un redémarrage du NAS. On pourra ainsi utiliser les ports USB du NAS pour brancher une passerelle domotique et l’utiliser sur un serveur domotique fonctionnant sur une machine virtuelle (VM) ou un container docker.

 

Les NAS disposent de plusieurs ports USB qui servent avant tout à faire de la sauvegarde ou du transfert de fichier. Gros problème, la plupart du temps, le système ne charge pas les modules au démarrage. Les passerelles restent totalement inaccessibles au serveur domotique (Jeedom, Domoticz, Home Assistant…).

 

Tutoriel réalisé sur un QNAP TS-251A

Les tests ont été réalisés sur un NAS QNAP TS-251A équipé d’un processeur Intel x86. La méthode devrait fonctionner sur d’autres modèles de la marque à condition qu’ils soient équipés d’un processeur Intel x86. QNAP ne semble pas avoir pris le temps de compiler les drivers pour les processeurs ARM Alpine AL-212 ou Alpine AL-314 qui équipent les modèles d’entrée de gamme (modèles : TS-x28, TS-x31P, TS-231P2, TS-x31X, TS-1635).

Configuration testée

Dernière mise à jour effectuée le: 14 mai 2019 3 h 01 min

Ouvrir l’accès SSH du NAS QNAP

On va devoir mettre les mains dans le moteur du NAS. Pour cela, il va nous falloir un accès SSH. Ouvrez le panneau de configuration de QTS. Dans l’onglet Services de fichier, ouvrez le panneau Telnet / SSH. Cochez l’option Permettre la connexion SSH. Laissez le port 22 par défaut.

nas qnap activate ssh

Créer un script autorun.sh pour charger les drivers au démarrage

La procédure est détaillée assez clairement sur leWiKi officiel de QNAP ici. La procédure est différente en fonction du modèle de NAS. Pour tous les NAS équipés d’un processeur Intel x86 (dont le TS-251A ou TS-251x sont équipés), voici comment faire.

On commence par monter un disque virtuel

mount $(/sbin/hal_app --get_boot_pd port_id=0)6 /tmp/config

On édite le fichier script avec l’éditeur vi standard sous Linux (l’éditeur nano n’est pas installé par défaut 😕 )

 vi /tmp/config/autorun.sh

Taper la lettre a (add) au clavier puis ajoutez les commandes en fonction du module que vous voulez charger au démarrage du système.  Je vous conseille de démarrer au moins ces 4 modules. Vous devriez pouvoir connecter la plupart des dongles Z-Wave et passerelles domotiques (RFLink à base d’Arduino, sniffer Zigbee…)

Module Exemple de matériel
insmod /usr/local/modules/ftdi_sio.ko Contrôleur Z-Wave Conbee
insmod /usr/local/modules/cdcacm.ko Contrôleur Z-Wave Aeotec AEOEZW090-C
insmod /usr/local/modules/cp210x.ko ESP8266, clones Arduino
insmod /usr/local/modules/usbserial.ko ESP8266, clones Arduino
Pour connaitre la liste des drivers disponibles sur votre NAS, exécutez cd /usr/local/modules/ puis ls.

Il ne reste plus qu’à enregistrer le script. Tapez successivement au clavier la touche ESC puis et enfin x pour sauvegarder

Pour rendre le script exécutable

chmod +x /tmp/config/autorun.sh

enfin, on démonte le disque temporaire

umount /tmp/config

Autoriser l’exécution du script au démarrage

Il faut maintenant autoriser l’exécution du script au démarrage. Pour cela, ouvrez le panneau de configuration depuis QTS. Ouvrez l’onglet Matériel et cochez l’option Exécuter les processus définis par l’utilisateur au démarrage (autorun.sh).

Cliquez sur Appliquer pour enregistrer la configuration.

nas qnap autoriser scrip autorun

Vous pouvez vérifier que le script autorun.sh a bien été modifié en cliquant sur le lien entre parenthèses.

nas qnap verifie script autorun.sh

Autoriser le Docker à accéder aux ports USB

Il ne reste plus qu’à donner un accès aux ports USB à vos containers Docker.

Remarque. Si vous n’arrivez pas à accéder aux périphériques connectés aux ports USB, c’est probablement qu’il faut démarrer le container en mode privilège. Pour cela, il faut obligatoirement cocher l’option Run containers in privileged mode avant de créer le container. Cette option n’est plus accessible une fois que le container a été créé.

nas qnap docker usb device privilege mode

Redémarrer le NAS et vérifier que tout fonctionne

Il ne rester plus qu’à redémarrer le NAS. Depuis le gestionnaire, allez dans le menu Admin puis redémarrer.

qnap nas restart menu

Connectez vous au NAS en SSH et exécutez la commande lsusb pour lister les périphériques USB connectés

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics HL-340 USB-Serial adapter ==> RFLink
Bus 001 Device 003: ID 0451:16a8 Texas Instruments, Inc. ==> sniffer zigbee
Bus 001 Device 002: ID 0658:0200 Sigma Designs, Inc.     ==> dongle Z-Wave
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Parfait, maintenant vérifions que les drivers sont correctement chargés ls /dev/ttyA*.

/dev/ttyACM0  /dev/ttyACM1

Astuces Docker

Si vous avez oublié un paramètre, sachez que tous les images des containers sont stockées sur le NAS.

nas qnap dockers images

Il est possible de créer un nouveau container en partant d’une image sans avoir à la re-télécharger depuis le docker hub. Pour cela, il suffit de cliquer sur le +

nas qnap container station create docker image

Je n’ai malheureusement ni les moyens ni le temps de tester l’ensemble des contrôleurs et passerelles domotique disponibles sur le marché. N’hésitez pas à partager vos expériences et conseils en utilisant les commentaires ou le forum.

Inscrivez-vous à la newsletter hebdomadaire

Aucun spam et aucun autre usage ne sera fait de votre email. Vous pouvez vous désinscrire à tout moment.

Promos à ne pas louper

Poster un Commentaire

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

  S’abonner  
Notifier de
Domotique et objets connectés à faire soi-même