ttyUSB0 non reconnu sous Jeedom 4.4 Bullseye

Bonjour,
Afin de pouvoir bénéficier les MAJ du plugin Enocean, je me suis enfin décidé à migrer mon bon vieux Jeedom 4.4 Buster vers un nouveau container docker (Container Manager sous DSM7.2) basée sur l’image jeedom/jeedom:4.4-bullseye du dockerhub.
Les drivers sont à jour depuis dsm7-usb-serial-drivers/modules/apollolake/dsm-7.2 at main · robertklep/dsm7-usb-serial-drivers · GitHub (j’ai un DS918+ donc Apollolake) et fonctionnent parfaitement puisque le plugin Enocean du container Buster accède sans problème au /dev/ttyUSB0 :


Mais le plugin Enocean, avant comme après sa mise à jour, n’arrive pas à voir ce device /dev/ttyUSB0 depuis le container Bullseye :

Les deux containers ont été construits exactement de la même façon depuis le Container Manager de DSM, simplement en lançant un RUN de l’image Docker d’origine, et en renseignant les paramètres requis dans la publication de @Didier3L [Tuto] ⏩ Installation de Jeedom avec Docker et réseau Macvlan (qui n’est plus trop à jour malgré sa maj récente du 09/03/2005 : par example, les drivers de jadahl ne sont plus disponible…).
Bilan des courses, il a fallu que je relance mon ancien container Buster (sans maj du plugin Enocean donc) pour que mes automatismes Jeedom puissent continuer à fonctionner, juste à cause de ce seul problème. Tous mes autres plugins fonctionnaient parfaitement dans le container Bullseye.
Merci d’avance pour vos aides.
Thierry


Informations Jeedom

Core : 4.4.19 (master)
DNS Jeedom : non

Plugin : EnOcean
Version : 2023-12-04 10:35:41 (stable)
Statut Démon : Démarré - (2025-06-15 19:43:44)

Bonjour,

Tu as deux conteneurs qui fonctionnent en même temps ou séparément ?

Concernant les drivers, as tu vérifié en ssh si le synology reconnaît les ports USB ?

Concernant le tuto, as tu noté les deux sections ? Installation et activation

Bonjour,

Je ne fais pas tourner les deux container en même temps, déjà pour m’éviter d’avoir à refaire tous mes routages réseau, j’ai réutilisé le même macvlan.
Et bien entendu, je ne fais surtout pas tourner les deux container en même temps.

Oui le Synology reconnait bien les ports USB et le « montage » du /dev/ttyUSB0 avec la clef USB310 EnOcean.
De toute façon le plugin EnOcean du container en version Buster arrive bien à accéder à la clef puisque je reçois bien toutes les trames EnOcean de mon installation.

J’ai bien noté la section Installation, mais ta publication pour l’installation des drivers pour DSM7 mentionne toujours le site de jadahl (fermé), alors qu’il faut désormais utiliser les drivers disponibles ici https://github.com/robertklep/dsm7-usb-serial-drivers/tree/main/modules/apollolake/dsm-7.2 (pour mon modèle de NAS).

Bonjour,

J’ai l’impression que la question n’a aucun rapport avec le plugin; d’ailleurs je ne vois pas trop ce qui pourrait y être fait.
C’est plutôt une question de config du container.
Je déplace le sujet.

1 « J'aime »

C’est pourtant bien mentionné OBSELETE

Pour les drivers, tu en trouves un peu partout sur le web …
Alors même que certains drivers son toujours dans le synology et qu’il’ faut juste les activer.
As tu essayé le paquet recommandé dans mon tuto ?

Bonjour,

Effectivement @Mips, merci d’avoir déplacé le sujet.

@Didier3L, les paquets mentionnés dans ton sujet (« SynoKernel USB Serial drivers ») imposent d’installer d’autres outils (« SynoCli Kernel Tools ») que je ne souhaite pas forcément installer.
J’ai donc conservé les drivers disponibles ici : https://github.com/robertklep/dsm7-usb-serial-drivers/tree/main/modules/apollolake/dsm-7.2 (pour mon DS918+).

Mais c’est bon, j’ai trouvé la solution et je vais la publier ici pour que tous puissent en profiter.

Thierry

Bonjour,

En réponse à @Loic (je crois) qui m’avait répondu ceci depuis le support Jeedom :

L'utilisation de jeedom en docker c'est en beta il n'y a normalement pas de support dessus. De plus la le soucis est coté os et non dans le code de jeedom ce n'est donc de toute facon pas couvert par le support en DIY (on ne fait l'os que sur les boxs jeedom).
Pour votre soucis jeedom ne fait que lister les port USB qu'il voit sur l'os donc la c'est bien que coté OS il n'y a aucun port USB.

Depuis l’OS de DSM en root :

# 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         0403:6001:0600 00  2.00   12MBit/s 90mA 1IF  (FTDI FT232R USB UART AU00T70F)
  1-1:1.0         (IF) ff:ff:ff 2EPs (Vendor Specific) ftdi_sio ttyUSB0

La clef USB310 est bien listée et rattachée au /dev/ttyUSB0 sous l’os de DSM.
Elle est même très bien reconnue sous DSM 7.2 :

Sous le container « Buster » de Jeedom 4.4 :

# docker container exec 6a****f0 lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
    |__ Port 1: Dev 5, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M

Sous le container « Bullseye » de Jeedom 4.4 :

# docker container exec 6f****0b lsusb -t
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/8p, 480M
    |__ Port 1: Dev 5, If 0, Class=Vendor Specific Class, Driver=ftdi_sio, 12M

Après avoir changé quelques paramètres du container Bullseye (dont « privileged » passé de false à true), j’ai bien tous les devices équivalents au container Buster dans le plugin Enocean (dont le /dev/ttyUSB0) - voir Copies d’écran dans mon message d’origine
Mais pour infos, le plugin en log debug m’a logué ceci au premier démarrage :

[2025-06-22 16:22:09] INFO  : Lancement démon openenocean : sudo python3 /var/www/html/plugins/openenocean/resources/openenoceand/openenoceand.py --device /dev/ttyUSB0 --loglevel debug --socketport 55006 --callback http://192.***.***.240:80/plugins/openenocean/core/php/jeeOpenEnOcean.php --apikey X****k --cycle 0.3 --pid /tmp/jeedom/openenocean/deamon.pid
Traceback (most recent call last):
File "/var/www/html/plugins/openenocean/resources/openenoceand/openenoceand.py", line 27, in <module>
from jeedom.jeedom import jeedom_socket, jeedom_utils, jeedom_com, JEEDOM_SOCKET_MESSAGE
File "/var/www/html/plugins/openenocean/resources/openenoceand/jeedom/jeedom.py", line 22, in <module>
import serial
ModuleNotFoundError: No module named 'serial'
[2025-06-22 16:22:41] ERROR  : Impossible de lancer le démon openenocean, vérifiez le port

J’ai relancé les dépendances, puis le daemon et maintenant le plugin Enocean fonctionne sans problème !

Maintenant que je tiens les bons paramètres pour le container, je vais relancer une installation complète de Jeedom 4.4 dans le container « Bullseye », puis restorer un backup Jeedom plus récent depuis le container « Buster », histoire de repartir d’une installation Jeedom « propre ».

Cordialement,
Thierry