Sonoff Zigbee dongle-P : pas de création de ttyUSBx ni ttyACMx, ni serial

Mon problème

Bonjour,

Je crois que je suis arrivé au bout des recherches possibles, j’ai essayé les centaines de solutions trouvées sur le net, mais ça ne fonctionne pas : la clef est bien reconnue sur mon DS218+ comme une Sonoff Zigbee 3.0 USB Dongle Plus (jai aussi vérifié le modèle en regardant le chip quand je l’ai flashée). Mais les points positifs s’arrêtent là.

Sur un raspberry PI3, elle est reconnue en ttyUSB0, j’arrive à faire tourner Z2M, et à envoyer les infos sur mon brooker MQTT. Mais mon PI ne sert qu’au développement et je souhaite brancher ma clef sur le DS218+ où se trouve HA (machine de production).

Mais sa connection sur le DS218+ ne change absolument rien au contenu du répertoire /dev : ttyUSBx ni ttyACMx, ni serial. Rien ne change ! Seul la page « information » du panneau de configuration de DSM m’indique la connexion ou la déconnexion de la clef.

Alors je soumets le résulat de quelques commandes à votre analyse :

patrick@monsyno:/$ ls /dev/ttyu*
/dev/ttyu0  /dev/ttyu1  /dev/ttyu2  /dev/ttyu3  /dev/ttyu4  /dev/ttyu5  /dev/ttyu6  /dev/ttyu7  /dev/ttyu8  /dev/ttyu9  /dev/ttyua  /dev/ttyub  /dev/ttyuc  /dev/ttyud  /dev/ttyue  /dev/ttyuf

patrick@monsyno:/$ lsusb
|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-1         10c4:ea60:0100 00  2.00   12MBit/s 100mA 1IF  (ITead Sonoff Zigbee 3.0 USB Dongle Plus 1031a082341aec118d0a7fe5f01c6278)
  |__1-2         05e3:0610:0655 09  2.10  480MBit/s 100mA 1IF  (GenesysLogic USB2.1 Hub ffffffd6ffffffa3ffffffebffffffc0) hub
    |__1-2.3     0001:0000:0100 00  1.00  1.5MBit/s 100mA 1IF  (MEC MEC0002 ffffff86ffffffb6ffffff86ffffffb6)
  |__1-3         0a12:0001:8891 e0  2.00   12MBit/s 100mA 2IFs ( ffffff84ffffffb5fffffff4ffffffd4)
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation 7F00970B89CA6048)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__2-2         05e3:0626:0655 09  3.20 5000MBit/s 0mA 1IF  (GenesysLogic USB3.1 Hub ffffffd6ffffffa3ffffffebffffffcb) hub

patrick@monsyno:/$ lsmod | grep serial
usbserial              22534  1 ftdi_sio
usbcore               210297  13 etxhci_hcd,usblp,uhci_hcd,usb_storage,usbserial,ehci_hcd,ehci_pci,usbhid,ftdi_sio,cdc_acm,xhci_hcd,xhci_pci
patrick@DS218PMS:/$ lsusb -cui
|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-1         10c4:ea60:0100 00  2.00   12MBit/s 100mA 1IF  (ITead Sonoff Zigbee 3.0 USB Dongle Plus 1031a082341aec118d0a7fe5f01c6278)
  1-1:1.0         (IF) ff:00:00 2EPs ()
  |__1-2         05e3:0610:0655 09  2.10  480MBit/s 100mA 1IF  (GenesysLogic USB2.1 Hub ffffffd6ffffffa3ffffffebffffffc0) hub
    |__1-2.3     0001:0000:0100 00  1.00  1.5MBit/s 100mA 1IF  (MEC MEC0002 ffffff86ffffffb6ffffff86ffffffb6)
   1-2.3:1.0      (IF) 03:00:00 1EP  () usbfs
  |__1-3         0a12:0001:8891 e0  2.00   12MBit/s 100mA 2IFs ( ffffff84ffffffb5fffffff4ffffffd4)
  1-3:1.0         (IF) e0:01:01 3EPs ()
  1-3:1.1         (IF) e0:01:01 2EPs ()
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation 7F00970B89CA6048)
  1-4:1.0         (IF) 08:06:50 2EPs () usb-storage host3 (synoboot)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub

J’ai essayé aussi bien en installant les paquets de Vincent FORTIER du centre de comunauté par le gestionnaire de paquets. Mais j’ai aussi essayé avec les drivers à cette adresse en suivant bien le tutoriel de @robertklep et ses recommandations dans les demandes de résolution de problème de son github :
https://github.com/robertklep/dsm7-usb-serial-drivers/tree/main/modules/apollolake/dsm-7.2

J’ai même essayé avec un autre Dongle identique.

Le DS218+ n’ayant pas de port USB2, j’ai tenté sur ses 3 ports USB3, avec et sans rallonge (rallonge conseillée sur des raspberry PI).

Bref, je vais laisser tomber car ça fait plusieurs jours gâchés en vain, même si quelqu’un a une suggestion de génie, je prends. Merci !

Ma configuration


DS218+
DSM 7.2.1-69057 Update 4


c’est un problème classique avec tous les systèmes de virtualisation.
tu dois présenter tes devices USB (hardware) à tes machines virtuelles, du moins ta clef sonoff à ta VM home assistant. et pas à une autre VM, ce qui mettrait la grouille.

suivant les versions d’hyperviseur, la manière diffère.

et comme linux renumérote les ports à chaque insert d’une nouvelle clef ou un changement d’emplacement, je te recommande de ne te baser QUE sur le /dev/serial/by-id et pas sur le /dev/ttyXXX

mais à part te dire qu’il faut voir du coté synology, je ne peut pas t’aider plus…

2 « J'aime »

Salut
Comme l’indique @bentou, c’est un classique (pas vu dans les centaines de solutions testées ??)
Regarde la notion de passthrough comme là

1 « J'aime »

Bonjour et merci pour vos réponses.
Hélas, cela ne correspond pas à ma situation. Mon HA est sous Docker (…Container avec cette version de DSM). Donc, pas de pass-trough comme pour une VM.
Que ce soit en cherchant des TTY ou des serial, je n’ai rien car serial n’est même crée dans /dev. D’où par exemple la réponse suivante :

patrick@monDS218:~$ ls /dev/ser*
ls: cannot access '/dev/ser*': No such file or directory

Bonjour,
regarde dans la doc, il y a une explication pour une installation sur Synology et comment activer l’USB.

Hello,
essaye plutot

ls /dev/ttyU* :wink:
ou encore
ls /dev/ttyA*

et en règle générale, mets un « -i » après ton grep

@Patrick_MX , je te conseille de lire cette discussion : Accès Sonoff Zigbee sur docker sur NAS Synology - Entraide Home Assistant - Home Assistant Communauté Francophone (hacf.fr)
Je suis aussi passé par là à l’époque pour installer ma clé Sonoff sur mon Synology en Container.
Ca fonctionne maintenant chez moi depuis pas mal de temps sans soucis en suivant les 2 points:

  • installation du Package sur le Synology
  • création du petit script qui se lance au redémarrage du Syno
1 « J'aime »

Bonjour.
Merci d’avoir pris la peine de me répondre. Hélas, j’ai déjà testé toutes ces recettes…

Comme indiqué dans le post de départ, j’ai vraiment essayé beaucoup de choses :

  • avec le paquet de vincent FORTIER (SynoKernel USB Serial drivers)
  • avec téléchargement des derniers drivers (un petit sudo wget -P /lib/modules https://github.com/robertklep/dsm7-usb-serial-drivers/raw/main/modules/apollolake/dsm-7.2/cp210x.ko) pour le cp210x ainsi que pour les autres
  • lancement du script par planificateur de tâches mais aussi lignes de commandes directement en SSH
|/sbin/modprobe usbserial
/sbin/modprobe ftdi_sio
/sbin/modprobe cdc-acm
chmod 777 /dev/ttyUSB0
chmod 777 /dev/ttyACM0

Quand en lignes de commandes par SSH, j’ai essayé :

  • avec sudo pour chaque ligne
  • puis après avec sudo su

Avant donc de faire passer cette clef sous Z2M (et parler VM ou container Docker), il faudrait bien sûr qu’elle ait un port accessible. Pour l’heure, je l’ai branché sur un Raspberry Pi et mon HA récupère uniquement depuis le borker MQTT. Face à mon impuissance, je viens de commander une SM SMZB-06 (la version POE avec CP21x pour m’affranchir de ce problème par USB). On verra bien si elle fonctionne aussi bien que la Sonoff. Si certains sont intéressés, un des rares articles qui en parlent, qui plus est en langue de Molière, est paru hier justement et en fait la description allèchante :

Mais en attendant sa livraison dans quelques jours, si un geek de linux avait une idée de génie pour mon problème de ports… Je déteste rester sur un problème irrésolu même si mon esprit n’est plus aussi vif que quand j’étais « plus jeune ». Je voudrais comprendre pourquoi ça ne marche pas et comment résoudre ça.

Tu as essayé tous les ports USB possibles de ton Syno.
C’est tout de même étrange qu’avec une configuration assez similaire (mon Syno est un DS1621xs+), l’installation du package et du script, la clé a éré reconnue directement par ZHA chez moi.
Sur mon Syno aussi, il n’y a que des ports USB 3, et ça ne semble pas le déranger. Seule différence, j’ai mis une rallonge USB.
Dans le centre d’info de ton Syno, il ne voit pas la clé?
Ci-dessous un extrait de ce que j’ai:

1 « J'aime »

J’ai essayé :

  • avec et sans rallonge sur le port avant (physiquement facile d’accès).
  • uniquement derrière une rallonge sur un des ports arrière (ramené en façade de mon rack 19’ donc facile d’accès)
  • jamais essayé sur le 3ème port à l’arrière (connecté au no-break mais surtout difficile d’accès car je dois aller à l’arrière du rack 19")

Mais ça fait quand même 2 ports USB (sur 3) testés avec un résultat identique

Actuellement, le centre d’information ne marque plus Sonoff... (photo en bas de message).
Mais après certains de mes essais, oui il était bien reconnu comme tel.

Si le centre d’information ne liste pas le périphérique, HA ne pourra en effet pas le voir.
Le package et le script listé avant permettent normalement de faire reconnaître le périphérique USB. Avec tous les essais que tu as fait, il doit y avoir des conflits. As-tu toujours le package installé (en fait j’en vois 2 chez moi, voir ci-dessous):
image

Tu dis qu’à un moment, la clé Sonoff apparaissait. A ce moment là, le problème est donc dans HA. As-tu redemarré HA, puis ZHA lorsque le périphérique était visible dans le Centre d’Information?

Bonjour,
Effectivement, l’installation de Synokernel USB serial drivers installe maintenant automatiquement aussi les outils Synocli Kernel Tools. Par contre, la désisnstallation de fait bien en 2 étapes (j’ai fait des désinstallation-réinstallation de nombreuses fois pour tester les différentes méthodes trouvées).
J’ai bien les deux installés.


et

(…)
(j’ai eu une idée, donc je laisse ce brouillon de réponse en suspens…) :sleeping:
(…)
Me revoilou et mon idée était bonne :trophy:, alors j’explique.

:warning:Pour les « pressés », c’est la version de cp210x.ko qui n’était pas bonne. :warning:

Après une énième install-désinstall des drivers du paquets, j’ai cherché à savoir quelle version cp210x.ko était incluse. Résultat : c’est celle pour DSM7.1, de mai 2023 (voir détails ici).
Or j’avais appris en chemin que @robertklep avait sorti la version pour DSM7.2 depuis et en avais d’ailleurs tenté l’installation en lignes de commande… C’est là que j’ai commis une erreur : je n’ai pas vérifié que ces fichiers écrasaient bien les versions plus anciennes. Donc, je suis allé vérifier de ce pas :

patrick@monNAS:/lib/modules$ du -h cp21*
12K     cp210x.ko
272K    cp210x.ko.1
272K    cp210x.ko.2
patrick@monNAS:/lib/modules$ sudo mv cp210x.ko cp210x.ko.bak
Password:
patrick@monNAS:/lib/modules$ sudo mv cp210x.ko.1 cp210x.ko

Vous remarquez : le fichier ne faisait que 12ko au lieu des 272ko espérés… :astonished:

Après quoi, les petites commandes (ou le lancement du script par root) et j’ai aussi fait :

patrick@monNAS:/dev$ sudo chmod +x /usr/local/etc/rc.d/usb-serial-drivers.sh
patrick@monNAS:/dev$ sudo /usr/local/etc/rc.d/usb-serial-drivers.sh start

Et après cette dernière commande, un ttyUSB0 est bien apparu dans /dev !!!

Yes, I’m on the right way ! … comme disait un célèbre poor alone some cowboy…

Je vous livre la vérification faite immédiatement après ces dernières commandes : hourra, c’est bien ma ma Sonoff qui est sur ttyUSB0.

patrick@monNAS:/dev$ lsusb -cui
|__usb1          1d6b:0002:0404 09  2.00  480MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub
  |__1-1         10c4:ea60:0100 00  2.00   12MBit/s 100mA 1IF  (ITead Sonoff Zigbee 3.0 USB Dongle Plus 1031a082341aec118d0a7fe5f01c6278)
  1-1:1.0         (IF) ff:00:00 2EPs () cp210x ttyUSB0
  |__1-2         05e3:0610:0655 09  2.10  480MBit/s 100mA 1IF  (GenesysLogic USB2.1 Hub ffffffd6ffffffa3ffffffebffffffc0) hub
    |__1-2.3     0001:0000:0100 00  1.00  1.5MBit/s 100mA 1IF  (MEC MEC0002 ffffff86ffffffb6ffffff86ffffffb6)
   1-2.3:1.0      (IF) 03:00:00 1EP  () usbfs
  |__1-3         0a12:0001:8891 e0  2.00   12MBit/s 100mA 2IFs ( ffffff84ffffffb5fffffff4ffffffd4)
  1-3:1.0         (IF) e0:01:01 3EPs ()
  1-3:1.1         (IF) e0:01:01 2EPs ()
  |__1-4         f400:f400:0100 00  2.00  480MBit/s 200mA 1IF  (Synology DiskStation 7F00970B89CA6048)
  1-4:1.0         (IF) 08:06:50 2EPs () usb-storage host3 (synoboot)
|__usb2          1d6b:0003:0404 09  3.00 5000MBit/s 0mA 1IF  (Linux 4.4.302+ xhci-hcd xHCI Host Controller 0000:00:15.0) hub

Donc demain, je terminerai le reste (setup de Z2M dans un container séparé avec éventuellement les chmod et autres détails qui me manquent pour pas perdre le ttyUSB en cas de reboot de DSM).

Merci en tous cas d’avoir essayé de m’aider !!! :pray:

1 « J'aime »