Question récurrente du débutant sur Raspberry et Domoticz, la déclaration et l’utilisation des ports USB sur le Raspberry et leur utilisation au sein de Domoticz.
Car, un peu comme dans Windows, les ports USB affectés à un USB peuvent changer ou tout du moins on aime bien savoir que le rfxcom est USB10 et le z-wave USB11, voyons donc cette méthode dite des « persistent USB »
L’article d’origine ici https://www.domoticz.com/wiki/PersistentUSBDevices
L’exemple ci dessous est celui de la connexion d’ un stick Z-Wave Aeon Labs Serie 2
Installation
Je ne vais pas réinventer la roue, mais passer en revue les trucs incontournables pour la mise en place.
J’ai déjà un module Rfxcom sur le USB, on peut le constater avec un
sudo udevadm info --query=all --name=ttyUSB0
qui affiche plein d’infos et entre autre une ligne ID_VENDOR=RFXCOM dont on se servira par la suite, ou toute autre ligne qui ne se répète qu’une fois sur tous vos USB pourra servir (ID_SERIAL_SHORT est pas mal aussi).
Estimant que le Z-stick devrait être en USB1, un
sudo udevadm info --query=all --name=ttyUSB1
me donne
P: /devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1 N: ttyUSB1 S: serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 S: serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0 E: DEVLINKS=/dev/serial/by-id/usb-Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001-if00-port0 /dev/serial/by-path/platform-bcm2708_usb-usb-0:1.3:1.0-port0 E: DEVNAME=/dev/ttyUSB1 E: DEVPATH=/devices/platform/bcm2708_usb/usb1/1-1/1-1.3/1-1.3:1.0/ttyUSB1/tty/ttyUSB1 E: ID_BUS=usb E: ID_MODEL=CP2102_USB_to_UART_Bridge_Controller E: ID_MODEL_ENC=CP2102x20USBx20tox20UARTx20Bridgex20Controller E: ID_MODEL_FROM_DATABASE=CP210x UART Bridge / myAVR mySmartUSB light E: ID_MODEL_ID=ea60 E: ID_PATH=platform-bcm2708_usb-usb-0:1.3:1.0 E: ID_PATH_TAG=platform-bcm2708_usb-usb-0_1_3_1_0 E: ID_REVISION=0100 E: ID_SERIAL=Silicon_Labs_CP2102_USB_to_UART_Bridge_Controller_0001 E: ID_SERIAL_SHORT=0001 E: ID_TYPE=generic E: ID_USB_DRIVER=cp210x E: ID_USB_INTERFACES=:ff0000: E: ID_USB_INTERFACE_NUM=00 E: ID_VENDOR=Silicon_Labs E: ID_VENDOR_ENC=Siliconx20Labs E: ID_VENDOR_FROM_DATABASE=Cygnal Integrated Products, Inc. E: ID_VENDOR_ID=10c4 E: MAJOR=188 E: MINOR=1 E: SUBSYSTEM=tty E: UDEV_LOG=3 E: USEC_INITIALIZED=139369208365
En effet la ligne ID_Vendor_Enc affiche Silicons Labs, c’est donc bien le Z-Stick AEON qui est sur USB1.
Fixons définitivement cette affectation dans le Raspberry sur un port USB de notre choix: USB11 par exemple.
ATTENTION :
Il est déconseillé de garder USB01,USB02 dans Domoticz à cause des zéros préliminaires et il faut préférer des notations à 2 chiffres sans 0 préliminaires 10,11…(c.f. le wiki de Domoticz (http://www.domoticz.com/wiki/PersistentUSBDevices)
Je nommerai USB11 mon stick Z-Wave.
On fait un
sudo lsusb -v | more
Notez ou copiez les lignes, (avancez par appui sur la touche espace) et trouvez
- idVendor
- idProduct
- iSerial (éventuellement)
idVendor 0x10c4 Cygnal Integrated Products, Inc. idProduct 0xea60 CP210x UART Bridge / myAVR mySmartUSB light
Ici j’ai idVendor=10c4 et IdProduct=ea60
Pour cela installons des USB persistants et afin d’éviter que les ports USB changent à chaque fois (comme dans Windows) , on fixe dans un fichier les liens entre le nom du périphérique et le port USB que l’on veut toujours utiliser.
On configure donc le fichier /etc/udev/rules.d/99-usb-serial.rules
sudo nano /etc/udev/rules.d/99-usb-serial.rules
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", SYMLINK+="ttyUSB11" SUBSYSTEM=="tty", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="ef1c", SYMLINK+="ttyUSB15"
On reconnait les ID_VENDOR notés plus haut.
Un reboot.
Paramétrage Domoticz
Repassez dans la config Domoticz à « Configuration/Matériel »
Ajoutez un matériel Open-Zwave-USB et affectez le selon votre config du fichier 99-usb-serial.rules
Idem pour le RfxCom à lier au USB10
Et voila, maintenant vous devez avoir un périphérique USB définitivement lié à votre Domoticz, elle est pas belle la vie !