Page 1 sur 5

[TUTO] Antenne BLEA sur NAS Synology : Docker

Publié : 14 févr. 2017, 20:22
par Masterfion
Bonjour tout le monde, n'étant pas expert Linux certains trouveront probablement quelques améliorations à ce tuto. N'hésitez pas à remonter vos idées. Pour ma part, ça tourne nickel depuis 1 semaine.

NB : je n'ai pas mis le tuto sur le forum mais j'avais d'abord installé l'antenne BLEA sur une Debian Chroot sur mon Synology... ça fonctionne bien aussi mais c'est bien plus propre d'utiliser Docker... Si quelqu'un est intéressé, j'ai mon tuto sous le coude.


Pré-requis :
  • Votre NAS Synology est accessible en SSH sur un port d’écoute qui n’est pas 22 (un peu de bon sens) !
  • Un dongle USB Bluetooth 4.0 est connecté à votre NAS Synology
  • Le plugin “Bluetooth Advertisement” est installé sur votre Jeedom
Depuis l’interface DSM du NAS Synology :
  • Activez le Bluetooth dans le DSM de votre NAS Synology :
    Panneau de configuration > Sans fil > Bluetooth > Avancé : Activer Bluetooth
  • Ouvrez le Centre de paquets puis installez le paquet “Docker” et lancez l’application
  • Depuis l’application Docker :
    Allez dans “Registre” et recherchez le mot clé “ssh”
    Sélectionnez l’image “itscaro/debian-ssh”
    Cliquez sur “Télécharger” et choisissez l’identification “latest” (Debian Jessie à ce jour)
    Allez dans “Images” et patienter pendant le téléchargement de l’image (143 MB)
Se connecter en SSH sur le NAS Synology puis…
  • Créez le container via la commande suivante (“RelayBT-Docker” est le nom donné à mon container) :

    Code : Tout sélectionner

    sudo docker run --name RelayBT-Docker --restart=always --net=host --privileged -itd  -v /dev/bus/usb:/dev/bus/usb itscaro/debian-ssh:jessie
  • Démarrez le container
    > Attention, le port ssh par défaut (TCP 22) est utilisé sur ce container. Je ne sais pas comment réagi le Syno en cas de conflit !
  • Exécutez cette commande pour vous connecter au shell du container depuis la session ssh du Synology :

    Code : Tout sélectionner

    sudo docker exec -it RelayBT-Docker bash
  • Toutes les commandes suivantes seront exécutées dans le shell du container RelayBT-Docker :

    Code : Tout sélectionner

    apt-get update && apt-get upgrade
    apt-get install -y nano sudo htop usbutils
    nano /etc/ssh/sshd_config	>> changez le port d’écoute en 22000 par exemple
    service ssh restart	>> vous êtes déconnecté du shell du container
  • Toujours depuis la session SSH du NAS Synology, reconnectez-vous au shell du container

    Code : Tout sélectionner

    sudo docker exec -it RelayBT-Docker bash
  • Créez un utilisateur dédié au Plugin BLEA (cet utilisateur n’existera pas dans le DSM) :

    Code : Tout sélectionner

    adduser pluginblea
  • Ajoutez cet utilisateur au groupe sudo :

    Code : Tout sélectionner

    adduser pluginblea sudo
  • Editez le fichier sudoers :

    Code : Tout sélectionner

    visudo
    puis modifier le fichier comme suit :

    Code : Tout sélectionner

    # User privilege specification
    root	ALL=(ALL:ALL) ALL
    pluginblea    ALL=(ALL) NOPASSWD: ALL
    # Allow members of group sudo to execute any command
    %sudo   ALL=(ALL) NOPASSWD: ALL
  • Redémarrer le container depuis l’interface du DSM
Se connecter directement en ssh au container RelayBT-Docker…
  • Pour rappel, le port ssh est le 22000 (ou autre si vous l’avez adapté)
  • Testez la commande sudo :

    Code : Tout sélectionner

    sudo ls /var (aucun mot de passe n’est logiquement demandé)
  • Installez les paquets nécessaires à l’exploitation du bluetooth :

    Code : Tout sélectionner

    sudo apt-get install -y bluetooth bluez
  • Récupérez l’identifiant du dongle Bluetooth : hciconfig (hci0 très probablement)
  • Conservez cette session ssh… et passons à la partie Jeedom !
Se connecter à Jeedom…
  • Se rendre dans Plugins > Protocole domotique > Bluetooth Advertisement
  • Cliquez sur “Antennes” puis “Ajouter” et remplissez les champs comme suit…
    Nom: Antenne-Docker (ou autre)
    Ip: IP-de-votre-NAS / Port: 2222 (ou autre si vous l’avez adapté)
    User: pluginblea / Password: mot-de-passe-du-user-blea
    Device: hci0
  • Cliquez sur “Sauvegarder” puis sur “Envoyer les fichiers”
    > Depuis la session ssh Docker, contrôlez la présence des fichiers envoyés :

    Code : Tout sélectionner

    ls /home/pluginblea/blead/resources (doit contenir le dossier “blead” et le fichier “install.sh”)
  • Cliquez sur “Lancer les dépendances”
    > Depuis la session ssh Docker, contrôlez l’installation des dépendances :

    Code : Tout sélectionner

    tail -f /tmp/blea_dependancy (l’install est un peu longue…)
  • Cliquez sur “Lancer” pour démarrer le démon BLEA
    > Depuis la session ssh Docker, contrôlez les logs du démon :

    Code : Tout sélectionner

    tail -f /tmp/blea (s’il n’y a rien, c’est que tout va bien… ou pas !)
  • Fermez ou ouvrez à nouveau la fenêtre “Antennes”...
  • Le coeur de votre antenne doit battre :D

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 20:46
par fwehrle
Sympa ce tuto. Merci à toi. Je garde sous le coude. Y'a juste le port 22 par défaut et pas parametrable du container qui est un peu chiant. Le créateur aurait pu créer un parametre pour ca.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:12
par Masterfion
Alors non, tu te trompe.
Le fichier Docker.file utilisé dans ce container donne simplement l'ordre d'installer le serveur SSH... et par défaut le SSH utilise le port 22. Le reste, c'est une Debian Jessie tout à fait classique. Tu peux donc personnaliser comme tu le souhaite le port TCP du serveur SSH dockérisé (c'est d'ailleurs documenté dans mon tuto).

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:18
par fwehrle
Ok. Mais ca n'empêche pas qu'il aurait pu le rendre parametrable comme c'est souvent le cas avec docker. Comme le mot de passe de l'image officielle mysql par ex.
J'ai bien lu ton tuto, mais ca impliqué de d'abord changer le port ssh du syno pour pouvoir se connecter au container et changer le port. Non?

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:26
par Masterfion
fwehrle a écrit :Ok. Mais ca n'empêche pas qu'il aurait pu le rendre parametrable comme c'est souvent le cas avec docker. Comme le mot de passe de l'image officielle mysql par ex.
En l'état je ne vois pas comment faire (il suffirait de modifier le Docker.file avant de créer le container j'imagine).
fwehrle a écrit :J'ai bien lu ton tuto, mais ca impliqué de d'abord changer le port ssh du syno pour pouvoir se connecter au container et changer le port. Non?
La commande "sudo docker exec -it RelayBT-Docker bash" te permet de prendre le contrôle du container via la sessions SSH que tu as initié avec ton NAS... tu modifie entre autre le port SSH du container puis tu te connecte directement en SSH sur le container.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:39
par fwehrle
Masterfion a écrit :
fwehrle a écrit :Ok. Mais ca n'empêche pas qu'il aurait pu le rendre parametrable comme c'est souvent le cas avec docker. Comme le mot de passe de l'image officielle mysql par ex.
En l'état je ne vois pas comment faire (il suffirait de modifier le Docker.file avant de créer le container j'imagine).
fwehrle a écrit :J'ai bien lu ton tuto, mais ca impliqué de d'abord changer le port ssh du syno pour pouvoir se connecter au container et changer le port. Non?
La commande "sudo docker exec -it RelayBT-Docker bash" te permet de prendre le contrôle du container via la sessions SSH que tu as initié avec ton NAS... tu modifie entre autre le port SSH du container puis tu te connecte directement en SSH sur le container.
Je ne sais pas faire non plus...

Ah oui, pas con le bash, mais ne faut-il pas que le container soit lancé ? (Et donc que le port 22 du syno ne soit pas en conflit avec celui par défaut du container) ou alors j'ai mal compris.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:43
par Masterfion
Bah c'est exactement ce que j'écris en rouge au milieu du Tuto... je n'utilise pas le port 22 sur mon Syno donc je n'ai pas pu voir ce qu'un "conflit de TCP 22" peut faire... je pense que tant que tu es connecté à ton Syno, ça ne fait rien... mais changer le port SSH de son Syno, ça prend 3s !
Et puis si ça foire, un p'tit tour sur DSM et on coupe le container.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:52
par fwehrle
Oui, ok. Je voulais juste éviter de changer le port du syno. Même si comme tu le dis, ca se change rapidement.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:53
par fwehrle
Mais c'est toujours le même bordel avec les container docker qui ne permettent pas de paramétrer le port utilisé et qui impose d'utiliser le mode host.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:54
par fwehrle
Mais ca n'enlève rien à l'utilité de ton tuto hein? :)
Il est top. Je vais peut être essayer de modifier mon container jeedom pour pouvoir utiliser l'antenne bt directement dans jeedom.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 21:56
par Masterfion
Bah oué.... Tu installe ssh et zou...

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 14 févr. 2017, 22:35
par fwehrle
Y'a deja ssh sur jeedom! ;)

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 16 févr. 2017, 22:28
par gpga
Bonjour,

j'essaye de suivre le tuto mais je suis bloqué au niveau de la création du container

sudo docker run --name RelayBT-Docker --restart=always --net=host --privileged -itd -v /dev/bus/usb:/dev/bus/usb itscaro/debian-ssh:jessie

Le container est crée mais il reste bloqué à 'demarrage en cours' ce qui interdit de poursuivre le processus
J'ai rebooté le ANs à tout hasard mais cela ne change rien, le container ne se lance pas...

Une idée ? Merci

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 17 févr. 2017, 09:27
par Masterfion
Un conflit sur le port SSH ?

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 17 févr. 2017, 22:29
par gpga
J'ai mis 22000 comme port SSH au niveau du NAS, je me connecte en SSH sur ce numéro de port,

J'ai changé de numéro de port pour voir si cela avait un impact, il n'y en a pas

Le docker démarre, puis passe en redémarrage et reste bloqué dans cette configuration

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 19 févr. 2017, 21:10
par sfl
Hello Masterfion,

Je serais bien intéressé par le tuto avec pour un chroot, tu pourrais mettre çà en ligne s'il te plait ?

En te remerciant,
Sfl

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 20 févr. 2017, 02:27
par thera314
Une antenne de plus parfaitement fonctionnelle ! Un grand merci pour ton tuto Masterfion.

Re: [TUTO] Antenne BLEA sur Docker Synology

Publié : 20 févr. 2017, 14:08
par Masterfion
sfl a écrit :Je serais bien intéressé par le tuto pour un chroot, tu pourrais mettre çà en ligne s'il te plait ?
Et voilà : viewtopic.php?f=60&t=25063

Re: [TUTO] Antenne BLEA sur NAS Synology : Docker

Publié : 20 févr. 2017, 14:11
par sfl
Masterfion a écrit :
sfl a écrit :Je serais bien intéressé par le tuto pour un chroot, tu pourrais mettre çà en ligne s'il te plait ?
Et voilà : viewtopic.php?f=60&t=25063
You are a Master !
Thanks :-)

Envoyé de mon SM-A310F en utilisant Tapatalk

Re: [TUTO] Antenne BLEA sur NAS Synology : Docker

Publié : 20 févr. 2017, 17:23
par airhic
Bonjour,

J'ai suivi ce tuto avec succès mais j'ai cette erreur lors du lancement du démon:

Code : Tout sélectionner

Traceback (most recent call last):
  File "/home/btuser/blead/resources/blead/blead.py", line 473, in <module>
    globals.IFACE_DEVICE = int(globals.device[-1:])
ValueError: invalid literal for int() with base 10: 'A'
Une idée ?