Installation de satellites snips

Vérification de bon fonctionnement

Avant de se lancer dans une des 2 configurations possibles, je te propose déjà de vérifier que tout se passe bien au niveau de tes snips.

Il faut déjà que ton assistant soit déployé sur tes 2 snips. Si ce n’est pas le cas, alors fais-le.

Tes deux snips doivent être fonctionnels (sauf si tu as un raspberry pi zero). Pour vérifier ça, tu fais un « sam watch » et tu vérifies que tout fonctionne en utilisant le hotword et éventuellement en demandant l’heure, si tu viens de l’article sur l’install de snips. N’hésite pas à t’appuyer sur la partie vérification de l’article précédent si tu veux revérifier vite fait.

Si c’est un raspberry pi, tu peux au moins tester le hotword, le reste ne fonctionnera pas comme tu as pu le lire précédemment si tu as été faire un tour sur l’article cité dans la page précédente.

Nous allons aussi vérifier le réseau et que les 2 snips se voient. Alors, plusieurs possibilités, la première, les 2 adresses IP de tes snips sont fixes et tu les connais. Dans ce cas, tu peux passer à la suite.
Si tu ne connais pas tes IP alors il va y avoir un peu de travail au préalable.

Trouver les adresses IP

Pour ça tu te connectes sur ton snips-bureau par exemple et tu fais

$ ip addr

Ce à quoi il va te répondre un truc du genre

pi@snips-bureau:~ $ ip addr
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether b8:27:eb:c0:07:2f brd ff:ff:ff:ff:ff:ff
3: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether b8:27:eb:95:52:7a brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.15/24 brd 192.168.1.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 fe80::76bc:2d1c:62eb:361d/64 scope link
       valid_lft forever preferred_lft forever
pi@snips-bureau:~ $

Hop hop hop ! Respire, une seule ligne nous intéresse là dedans, c’est celle-ci :

inet 192.168.1.15/24 brd 192.168.1.255 scope global wlan0

Notre adresse IP c’est 192.168.1.15 .

Au passage ça marche aussi sous debian 🙂

Je fais la même commande sur mon snips-maitre :

inet 192.168.1.10/24 brd 192.168.1.255 scope global wlan0

L’adresse IP de mon snips-maitre est 192.168.1.10 .

Test du réseau

maintenant, tu vas te connecter sur « snips-maitre » et exécuter cette commande :

ping snips-bureau

Oui, n’oublie pas, on a appelé notre snips-satellite « snips-bureau ». Si tu lui as donné un autre nom, et bien tu ping un autre nom. Mais sois sûr du nom ! Si tu as un doute, tu peux exécuter « hostname » sur chacun de tes 2 snips pour connaitre leurs noms.
Voici le premier résultat possible du ping

cedcox@snips-maitre:~$ ping snips-bureau
PING snips-bureau.local (192.168.1.15) 56(84) bytes of data.
64 bytes from snips-bureau.local (192.168.1.15): icmp_seq=1 ttl=63 time=1.49 ms
64 bytes from snips-bureau.local (192.168.1.15): icmp_seq=2 ttl=63 time=1.75 ms

Yopla ! Tout va bien, tu peux faire CTRL+C pour arrêter le ping

On tente la même chose depuis notre snips-bureau, on ping notre snips-maitre :

pi@snips-bureau:~ $ ping snips-maitre
ping: snips-maitre: Nom ou service inconnu
pi@snips-bureau:~ $

Bam ! Bon et bien là, ça ne marche pas, il ne connait pas « snips-maitre ». Bon, est-ce qu’en langage IP, il le voit ? Essayons un ping, non plus du nom, mais de l’adresse IP :

pi@snips-bureau:~ $ ping 192.168.1.10
PING 192.168.1.10 (192.168.1.10) 56(84) bytes of data.
64 bytes from 192.168.1.10: icmp_seq=1 ttl=63 time=2.03 ms
64 bytes from 192.168.1.10: icmp_seq=2 ttl=63 time=1.84 ms

Bon, donc en termes de réseau les 2 snips se voient mais snips-bureau ne sait pas relier le nom « snips-maitre » à l’adresse IP.

nous allons donc mettre à jour son fichier hosts. Le fichier hosts d’un raspberry, c’est un fichier que le raspberry va interroger quand il n’a pas réussi à transformer le nom d’une machine en IP. les puristes vont me jeter des cailloux avec cette définition mais ce n’est pas grave; on aura le temps de parler de DNS et tout ça plus tard

Donc tu vas taper ceci sur ton « snips-bureau »

sudo nano /etc/hosts

Et va pouvoir modifier le contenu de ce fichier.

127.0.0.1       localhost
#::1            localhost ip6-localhost ip6-loopback
#ff02::1                ip6-allnodes
#ff02::2                ip6-allrouters

127.0.1.1       snips-bureau

tu auras remarqué avec ton oeil de lynx que j’ai mis des # devant certaines lignes ne t’en préoccupe pas.
Ajoute la ligne suivante au fichier :

192.168.1.10      snips-maitre

Petit point particulier, en général, entre l’adresse IP et le nom, c’est une tabulation (la touche qui est à gauche de la lettre A sur ton clavier).
Bien évidemment, tu mets la bonne adresse IP dans ton cas.

En résumé, si ton snips-maitre ne voit pas ton snips-bureau et/ou inversement, il faut mettre à jour leurs fichiers hosts.
dans le fichier hosts du snips-maitre, tu mets le nom et l’adresse IP du snips-bureau et dans le fichier host du snips-bureau, tu mets l’adresse IP du snips-maitre.

Attention ! Tu ne fais ça que si le ping du nom ne fonctionne pas. En effet, tes snips sont peut-être en DHCP (adresse IP donnée par ta box) et elle fait office de serveur de nom. Si tu fixes tout ça dans un fichier, ça risque de ne pas fonctionner au redémarrage !

Bon, normalement tes 2 snips se voient par leurs noms, donc niveau réseau c’est OK, on peut passer à la suite

10 Comments

  1. Bonjour Ced,
    Tout d’abord, super travail que ces tutos pour la mise en place de Snips, je me suis appuyé à 99% sur tes écrits pour mettre en place mon installation (encore en phase de test pour le moment).

    En bref je dispose de :
    1 Serveur Snips master tournant sur une VM Debian 9.8
    1 Serveur Jeedom sur VM Debian 8.7
    1 Satellite Snips tournant sur un Pi Zero WH + Respeaker 2Mic + HP Mono Adafruit 3351

    Ce qui fonctionne :
    Hotword OK
    App snips Timer, Heure, Jeedom (avec config Jeedom) OK
    Réponse sur le satellite OK

    On pourrait croire que tout fonctionne, hors le soucis que j’ai est que, pour mes tests, dans une pièce au calme, sans bruit dominant (musique, ventilateurs, …) j’interpelle le satellite avec mon « Hey Snips », il réagit, mais une fois sur deux il ne va pas récupérer mon instruction.

    Un SAM WATCH n’indique rien de spécial :

    ##
    SAM WATCH qui indique que tout va bien, match sur le hotword, récupération de l’instruction, analyse et envoi des données pour traitement et réponse TTS si nécessaire
    A la fin du traitement remise en état d’attente du hotword
    ##
    [22:43:11] [Hotword] detected on site SAT01, for model hey_snips
    [22:43:11] [Asr] was asked to stop listening on site SAT01
    [22:43:11] [Hotword] was asked to toggle itself ‘off’ on site SAT01
    [22:43:11] [Dialogue] session with id ‘1fb8dab8-92df-4977-a41f-e669dcd60aa6’ was started on site SAT01
    [22:43:11] [AudioServer] was asked to play a wav of 41.1 kB with id ‘4f29f241-8721-40f9-a976-605240304eb0’ on site SAT01
    [22:43:11] [AudioServer] finished playing wav with id ‘4f29f241-8721-40f9-a976-605240304eb0’
    [22:43:11] [Asr] was asked to listen on site SAT01
    [22:43:27] [Dialogue] session with id ‘1fb8dab8-92df-4977-a41f-e669dcd60aa6’ was ended on site SAT01. The session was ended because one of the component didn’t respond in a timely manner
    [22:43:27] [Asr] was asked to stop listening on site SAT01
    [22:43:27] [Hotword] was asked to toggle itself ‘on’ on site SAT01

    Quelques secondes avant, j’ai pu appelé mon Sat, qui a réagit et a allumé mon bandeau LED « Allume le tableau ».
    Je le ré-interpelle pour cette fois lui demander de l’éteindre, le hotword match, mais aucun enregistrement n’est fait sur la commande dictée ensuite « Eteinds le tableau ». Obligé d’attendre 15 secondes de timeout pour retenter. En règle générale, ça me fait ça quasi une fois sur deux.
    Je n’ai aucune idée de la raison de cette non reconnaissance pseudo aléatoire.

    Aurais-tu une idée? Augmenter / améliorer la qualité du micro ? Lorsque je fait un arecord pour tester la qualité du micro, puis un aplay pour écouter le résultat, je trouve qu’il y a beaucoup de bruit parasite (j’ai conscience du prix réduit du respeaker, et par conséquent, des concessions qui ont dut être faites pour la fabrication).

    Merci par avance pour ton aide Ced, ou à quiquonque a déjà rencontré le problème et réussi à le corriger.

    Pesty.

  2. Bonjour
    Bonjour
    Comment avez vous resolu l envoi constant du son entre le satellite et le master ?
    Y a t il une config pour envoyer l audio qu une fous le hotword detecte ?
    Lionrl

    • Bonjour,

      Pour le moment, officiellement, il n’y a pas de solution. La solution dont je parle est une bidouille. Elle est composée de 2 snips full avec une configuration particulière de mosquitto qui retransfert certains messages sur le mosquitto du snips maître.
      Si j’ai le temps, je ferai un article là dessus, mais ça reste une bidouille avec comme principale contrainte de ne pas avoir d’actions sur les apps…

      Ced

  3. Salut Ced,
    j’ai décidément pas de bol, j’ai reçu mon pi0w, mais à chaque install il me plante tous les services ….je te bip sur Dscd

    Bien vu le tuto 😉

  4. Bonjour Cedcox,
    Super tuto, très bien détaillé. Je découvre ton site suite au post sur SNIPS pour Jeedom.

    De mon côté j’avais 1 VM OK et un rpi3 OK en mode autonome chacun.
    J’ai suivi ton tuto à la lettre et je ne sais pas pourquoi après le redémarrage j’ai quelques soucis :
    – Le fichier asound est vide à chaque redémarrage
    – Du coup logiquen: server-audio : en Not running
    – Malgré la remise en état après chaque redémarrage : pas de déclenchement après prononciation de Jarvis et donc rien dans sam watch

    J’ai mis à jour le post sur le forum jeedom pour pouvoir mettre des captures d’écrans.

    Merci 😉

Poster un Commentaire

Votre adresse de messagerie ne sera pas publiée.


*


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