Lancer une règle udev lors de la connexion d'une enceinte bluetooth

Bonjour à tous. :slight_smile:

J’ai acquis une enceinte bluetooth JBL GO, l’idée est de lancer un script quelconque lors de sa connexion avec mon ordinateur.

J’ai lu divers sujet à ce propos par-ci, par-là mais aucun ne m’a réellement aidé.

Voici où j’en suis actuellement :

1 - J’ai récupéré les informations que j’ai pu avec udevadm lorsque la connexion s’effectue :

Résumé
user@fremen:~$ udevadm monitor -upk
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[21234.414824] add      /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:256 (bluetooth)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:256
DEVTYPE=link
SEQNUM=2795
SUBSYSTEM=bluetooth

UDEV  [21234.416920] add      /devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:256 (bluetooth)
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0/hci0:256
DEVTYPE=link
SEQNUM=2795
SUBSYSTEM=bluetooth
SYSTEMD_ALIAS=/sys/subsystem/bluetooth/devices/hci0:256
SYSTEMD_WANTS=bluetooth.target
TAGS=:systemd:
USEC_INITIALIZED=234414825

2 - J’ai récupérer toutes informations à propos du dongle que je pouvais, lorsque l’enceinte est connectée

Résumé
user@fremen:~# udevadm info --attribute-walk /sys/class/bluetooth/hci0

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0/bluetooth/hci0':
    KERNEL=="hci0"
    SUBSYSTEM=="bluetooth"
    DRIVER==""

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4/1-1.4:1.0':
    KERNELS=="1-1.4:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="btusb"
    ATTRS{bInterfaceProtocol}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceClass}=="e0"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{authorized}=="1"
    ATTRS{bNumEndpoints}=="03"
    ATTRS{supports_autosuspend}=="1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1/1-1.4':
    KERNELS=="1-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="e0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="3"
    ATTRS{bMaxPower}=="100mA"
    ATTRS{idProduct}=="07dc"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="451216"
    ATTRS{bDeviceSubClass}=="01"
    ATTRS{maxchild}=="0"
    ATTRS{bcdDevice}=="0001"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="8087"
    ATTRS{speed}=="12"
    ATTRS{removable}=="removable"
    ATTRS{ltm_capable}=="no"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{busnum}=="1"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{devpath}=="1.4"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumInterfaces}==" 2"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1/1-1':
    KERNELS=="1-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="2"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{idProduct}=="8000"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="1327"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{maxchild}=="8"
    ATTRS{bcdDevice}=="0004"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="8087"
    ATTRS{speed}=="480"
    ATTRS{removable}=="fixed"
    ATTRS{ltm_capable}=="no"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{busnum}=="1"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{devpath}=="1"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumInterfaces}==" 1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0/usb1':
    KERNELS=="usb1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="09"
    ATTRS{manufacturer}=="Linux 4.10.8-20170410 ehci_hcd"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="1"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{idProduct}=="0002"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="615"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{maxchild}=="2"
    ATTRS{bcdDevice}=="0410"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="1d6b"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{speed}=="480"
    ATTRS{authorized_default}=="1"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{removable}=="unknown"
    ATTRS{ltm_capable}=="no"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{busnum}=="1"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{devpath}=="0"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumInterfaces}==" 1"

  looking at parent device '/devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{subsystem_device}=="0x061f"
    ATTRS{vendor}=="0x8086"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{msi_bus}=="1"
    ATTRS{device}=="0x9c26"
    ATTRS{local_cpulist}=="0-3"
    ATTRS{class}=="0x0c0320"
    ATTRS{driver_override}=="(null)"
    ATTRS{companion}==""
    ATTRS{local_cpus}=="f"
    ATTRS{enable}=="0"
    ATTRS{irq}=="21"
    ATTRS{revision}=="0x04"
    ATTRS{broken_parity_status}=="0"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{subsystem_vendor}=="0x1028"

  looking at parent device '/devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

3 - J’ai tenté de créer une règle udev :

Résumé
ACTION=="add", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/touch /tmp/bt_connected"
ACTION=="remove", SUBSYSTEM=="bluetooth", RUN+="/usr/bin/touch /tmp/bt_disconnected"

Au final… Rien ne fonctionne. :smiley:
Est-ce qu’un adepte des règles pourrait m’éclairer ?
Merci d’avance