Installer un contrôleur Z-Wave, RFXCom sur un NAS QNAP. Test avec Docker et VM • Domotique et objets connectés à faire soi-même

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

44,65€

52,79€

En Stock

3 neufs à partir de 44,65€

1 occasions à partir de 42,83€

89,49€

En Stock

8 neufs à partir de 89,49€

1 occasions à partir de 75,31€

268,90€

299,99€

En Stock

16 neufs à partir de 262,06€

Prix actualisé le 2 octobre 2020 12 h 54 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.

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/cdc–acm.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.

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

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éé.

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.

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.

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 +

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.

Avez-vous aimé cet article ?

[Total: 0 Moyenne: 0]